Index: trunk/Chameleon.xcodeproj/project.pbxproj =================================================================== --- trunk/Chameleon.xcodeproj/project.pbxproj (revision 2287) +++ trunk/Chameleon.xcodeproj/project.pbxproj (revision 2288) @@ -97,9 +97,7 @@ 360A04BC1861F48F0091F464 /* smbios_getters.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = smbios_getters.c; sourceTree = ""; }; 360A04BD1861F48F0091F464 /* smbios_getters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = smbios_getters.h; sourceTree = ""; }; 360A04BE1861F48F0091F464 /* smbios.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = smbios.c; sourceTree = ""; }; - 360A04BF1861F48F0091F464 /* smbios.c.diff */ = {isa = PBXFileReference; lastKnownFileType = text; path = smbios.c.diff; sourceTree = ""; }; 360A04C01861F48F0091F464 /* smbios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = smbios.h; sourceTree = ""; }; - 360A04C11861F48F0091F464 /* smbios.h.diff */ = {isa = PBXFileReference; lastKnownFileType = text; path = smbios.h.diff; sourceTree = ""; }; 360A04C21861F48F0091F464 /* spd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = spd.c; sourceTree = ""; }; 360A04C31861F48F0091F464 /* spd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = spd.h; sourceTree = ""; }; 360A04C41861F48F0091F464 /* stringTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = stringTable.c; sourceTree = ""; }; @@ -3419,9 +3417,7 @@ 360A04BC1861F48F0091F464 /* smbios_getters.c */, 360A04BD1861F48F0091F464 /* smbios_getters.h */, 360A04BE1861F48F0091F464 /* smbios.c */, - 360A04BF1861F48F0091F464 /* smbios.c.diff */, 360A04C01861F48F0091F464 /* smbios.h */, - 360A04C11861F48F0091F464 /* smbios.h.diff */, 360A04C21861F48F0091F464 /* spd.c */, 360A04C31861F48F0091F464 /* spd.h */, 360A04C41861F48F0091F464 /* stringTable.c */, Index: trunk/i386/libsaio/aml_generator.c =================================================================== --- trunk/i386/libsaio/aml_generator.c (revision 2287) +++ trunk/i386/libsaio/aml_generator.c (revision 2288) @@ -21,12 +21,12 @@ case AML_CHUNK_DWORD: case AML_CHUNK_QWORD: case AML_CHUNK_ALIAS: - verbose("aml_add_to_parent: node doesn't support child nodes!\n"); + verbose("aml_add_to_parent: Node doesn't support child nodes!\n"); return false; case AML_CHUNK_NAME: if (parent->First) { - verbose("aml_add_to_parent: name node supports only one child node!\n"); + verbose("aml_add_to_parent: Name node supports only one child node!\n"); return false; } break; @@ -78,7 +78,7 @@ // Free node if (node->Buffer) free(node->Buffer); - + free(node); } @@ -183,11 +183,11 @@ unsigned int aml_fill_name(struct aml_chunk* node, const char* name) { - if (!node) + if (!node) return 0; - + int len = strlen(name), offset = 0, count = len / 4; - + if ((len % 4) > 1 || count == 0) { verbose("aml_fill_name: pathname %s has incorrect length! Must be 4, 8, 12, 16, etc...\n", name); @@ -195,7 +195,7 @@ } unsigned int root = 0; - + if ((len % 4) == 1 && name[0] == '\\') root++; @@ -234,7 +234,7 @@ if (node) { node->Type = AML_CHUNK_SCOPE; - + aml_fill_name(node, name); } @@ -248,21 +248,21 @@ if (node) { node->Type = AML_CHUNK_NAME; - + aml_fill_name(node, name); } - + return node; } struct aml_chunk* aml_add_package(struct aml_chunk* parent) { struct aml_chunk* node = aml_create_node(parent); - + if (node) { node->Type = AML_CHUNK_PACKAGE; - + node->Length = 1; node->Buffer = malloc(node->Length); } @@ -273,17 +273,17 @@ struct aml_chunk* aml_add_alias(struct aml_chunk* parent, const char* name1, const char* name2) { struct aml_chunk* node = aml_create_node(parent); - + if (node) { node->Type = AML_CHUNK_ALIAS; - + node->Length = 8; node->Buffer = malloc(node->Length); aml_fill_simple_name(node->Buffer, name1); aml_fill_simple_name(node->Buffer+4, name2); } - + return node; } @@ -304,7 +304,7 @@ if (node) { node->Size = 0; - + // Calculate child nodes size struct aml_chunk* child = node->First; unsigned char child_count = 0; @@ -312,9 +312,9 @@ while (child) { child_count++; - + node->Size += aml_calculate_size(child); - + child = child->Next; } @@ -353,17 +353,17 @@ node->Size += 1 + node->Length; break; } - + return node->Size; } - + return 0; } unsigned int aml_write_byte(unsigned char value, char* buffer, unsigned int offset) { buffer[offset++] = value; - + return offset; } @@ -371,7 +371,7 @@ { buffer[offset++] = value & 0xff; buffer[offset++] = value >> 8; - + return offset; } @@ -381,7 +381,7 @@ buffer[offset++] = (value >> 8) & 0xff; buffer[offset++] = (value >> 16) & 0xff; buffer[offset++] = (value >> 24) & 0xff; - + return offset; } @@ -395,7 +395,7 @@ buffer[offset++] = (value >> 40) & 0xff; buffer[offset++] = (value >> 48) & 0xff; buffer[offset++] = (value >> 56) & 0xff; - + return offset; } @@ -405,7 +405,7 @@ { memcpy(buffer + offset, value, size); } - + return offset + size; } @@ -426,14 +426,14 @@ buffer[offset++] = (size >> 4) & 0xff; buffer[offset++] = (size >> 12) & 0xff; } - else + else { buffer[offset++] = 0xc0 | (size & 0xf); buffer[offset++] = (size >> 4) & 0xff; buffer[offset++] = (size >> 12) & 0xff; buffer[offset++] = (size >> 20) & 0xff; } - + return offset; } @@ -442,7 +442,7 @@ if (node && buffer) { unsigned int old = offset; - + switch (node->Type) { case AML_CHUNK_NONE: @@ -455,7 +455,7 @@ offset = aml_write_size(node->Size-1, buffer, offset); offset = aml_write_buffer(node->Buffer, node->Length, buffer, offset); break; - + case AML_CHUNK_BYTE: if (node->Buffer[0] == 0x0 || node->Buffer[0] == 0x1) { @@ -467,7 +467,7 @@ offset = aml_write_buffer(node->Buffer, node->Length, buffer, offset); } break; - + case AML_CHUNK_WORD: case AML_CHUNK_DWORD: case AML_CHUNK_QWORD: @@ -476,13 +476,13 @@ offset = aml_write_byte(node->Type, buffer, offset); offset = aml_write_buffer(node->Buffer, node->Length, buffer, offset); break; - + default: break; } struct aml_chunk* child = node->First; - + while (child) { offset = aml_write_node(child, buffer, offset); Index: trunk/i386/libsaio/aml_generator.h =================================================================== --- trunk/i386/libsaio/aml_generator.h (revision 2287) +++ trunk/i386/libsaio/aml_generator.h (revision 2288) @@ -29,10 +29,10 @@ { unsigned char Type; unsigned int Length; - char* Buffer; - + char* Buffer; + unsigned int Size; - + struct aml_chunk* Next; struct aml_chunk* First; struct aml_chunk* Last; @@ -58,4 +58,4 @@ unsigned int aml_calculate_size(struct aml_chunk* node); unsigned int aml_write_node(struct aml_chunk* node, char* buffer, unsigned int offset); -#endif /* !__LIBSAIO_AML_GENERATOR_H */ \ No newline at end of file +#endif /* !__LIBSAIO_AML_GENERATOR_H */ Index: trunk/i386/libsaio/smbios.c =================================================================== --- trunk/i386/libsaio/smbios.c (revision 2287) +++ trunk/i386/libsaio/smbios.c (revision 2288) @@ -139,43 +139,67 @@ #define KDefaultBoardAssetTagNumber "Pro-Enclosure" // ErmaC #define kDefaultLocatioInChassis "Part Component" // ErmaC -// defaults for a Mac mini +//=========== Mac mini =========== #define kDefaultMacminiFamily "Macmini" #define kDefaultMacmini "Macmini1,1" #define kDefaultMacminiBIOSVersion " MM21.88Z.009A.B00.0903051113" +// MacMini5,1 Mac-8ED6AF5B48C039E1 - MM51.88Z.0077.B0F.1110201309 +// MacMini5,2 Mac-4BC72D62AD45599E +// MacMini5,3 -// defaults for a MacBook +// MacMini 6,1 - Mac-F65AE981FFA204ED +// MacMini 6,2 +//#define kDefaultMacmini62 "Macmini6,2" +//#define kDefaultMacmini62BIOSVersion " MM61.88Z.0106.B00.1208091121" +//#define kDefaultMacmini62BoardProduct "Mac-F65AE981FFA204ED" +//#define kDefaultMacmini62BIOSReleaseDate "10/14/2012" + +//=========== MacBook =========== #define kDefaultMacBookFamily "MacBook" #define kDefaultMacBook "MacBook4,1" #define kDefaultMacBookBIOSVersion " MB41.88Z.0073.B00.0903051113" - -// defaults for a MacBook Pro +//=========== MacBookAir =========== +// MacBookAir4,1 - Mac-C08A6BB70A942AC2 +// MacBookAir4,2 - Mac-742912EFDBEE19B3 +// MacBookAir6,1 - Mac-35C1E88140C3E6CF - MBA61.88Z.0099.B04.1309271229 +// MacBookAir6,2 - Mac-7DF21CB3ED6977E5 - MBA62.88Z.00EF.B00.1205221442 +//=========== MacBookPro =========== #define kDefaultMacBookProFamily "MacBookPro" #define kDefaultMacBookPro "MacBookPro4,1" #define kDefaultMacBookProBIOSVersion " MBP41.88Z.0073.B00.0903051113" +// MacBookPro8,1 - Mac-94245B3640C91C81 - MBP81.88Z.0047.B24.1110141131 +// MacBookPro8,2 - Mac_94245A3940C91C80 +// MacBookPro8,3 - Mac-942459F5819B171B +// MacBookPro11,2 - Mac-3CBD00234E554E41 - MBP112.88Z.0138.B02.1310181745 +// MacBookPro11,3 - Mac-2BD1B31983FE1663 - MBP112.88Z.0138.B02.1310181745 -// defaults for an iMac +//=========== iMac =========== #define kDefaultiMacFamily "iMac" #define kDefaultiMac "iMac8,1" #define kDefaultiMacBIOSVersion " IM81.88Z.00C1.B00.0903051113" -// defaults for an iMac11,1 core i3/i5/i7 +// iMac10,1 +// iMac11,1 core i3/i5/i7 #define kDefaultiMacNehalem "iMac11,1" #define kDefaultiMacNehalemBIOSVersion " IM111.88Z.0034.B00.0903051113" +// iMac11,2 +// iMac11,3 // defaults for an iMac12,1 #define kDefaultiMacSandy "iMac12,1" #define kDefaultiMacSandyBIOSVersion " IM121.88Z.0047.B00.1102091756" -// defaults for a Mac Pro +//=========== MacPro =========== #define kDefaultMacProFamily "MacPro" #define kDefaultMacPro "MacPro3,1" #define kDefaultMacProBIOSVersion " MP31.88Z.006C.B05.0903051113" // defaults for a Mac Pro 4,1 core i7/Xeon #define kDefaultMacProNehalem "MacPro4,1" -#define kDefaultMacProNehalemBIOSVersion " MP41.88Z.0081.B04.0903051113" +#define kDefaultMacProNehalemBIOSVersion " MP41.88Z.0081.B08.1001221313" // defaults for a Mac Pro 5,1 core i7/Xeon #define kDefaultMacProWestmere "MacPro5,1" #define kDefaultMacProWestmereBIOSVersion " MP51.88Z.007F.B03.1010071432" #define kDefaultMacProWestmereBIOSReleaseDate "10/07/2010" +// defaults for a Mac Pro 6,1 +// MacPro6,1 - Mac-F60DEB81FF30ACF6 - MP61.88Z.0116.B00.1311020956 //------------------------------------------------------------------------------------------------------------------------- @@ -309,7 +333,7 @@ {kSMBTypeBaseBoard, kSMBString, getFieldOffset(SMBBaseBoard, locationInChassis), kSMBBaseBoardLocationInChassisKey, NULL, &defaultBaseBoard.locationInChassis }, // SMboardlocation - Part Component - {kSMBTypeBaseBoard, kSMBByte,getFieldOffset(SMBBaseBoard, boardType), + {kSMBTypeBaseBoard, kSMBByte, getFieldOffset(SMBBaseBoard, boardType), kSMBBaseBoardTypeKey,NULL, &defaultBaseBoard.boardType }, // SMboardtype - 10 (Motherboard) all model, 11 (Processor+Memory Module) MacPro // Index: trunk/i386/libsaio/smbios_decode.c =================================================================== --- trunk/i386/libsaio/smbios_decode.c (revision 2287) +++ trunk/i386/libsaio/smbios_decode.c (revision 2288) @@ -134,7 +134,7 @@ DBG("\tManufacturer: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->manufacturer)); DBG("\tType: %d\n", structHeader->type); DBG("\tVersion: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->version)); - DBG("\tSerial Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber)); + DBG("\tSerial Number: ** PRIVATE **\n"); //%s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->serialNumber)); DBG("\tAsset Tag Number: %s\n", getSMBStringForField((SMBStructHeader *)structHeader, structHeader->assetTagNumber)); // Boot-up State: // Power Supply State Index: trunk/i386/libsaio/smbios.h =================================================================== --- trunk/i386/libsaio/smbios.h (revision 2287) +++ trunk/i386/libsaio/smbios.h (revision 2288) @@ -227,7 +227,6 @@ /* ======================= System Enclosure (Type 3) ========================= */ - typedef struct SMBSystemEnclosure { SMB_STRUCT_HEADER // Type 3