Index: trunk/i386/libsaio/smbios_decode.c =================================================================== --- trunk/i386/libsaio/smbios_decode.c (revision 2350) +++ trunk/i386/libsaio/smbios_decode.c (revision 2351) @@ -392,8 +392,11 @@ DBG("Memory Device:\n"); DBG("\tDevice Locator: %s\n", SMBStringForField((SMBStructHeader *)structHeader, structHeader->deviceLocator, neverMask)); DBG("\tBank Locator: %s\n", SMBStringForField((SMBStructHeader *)structHeader, structHeader->bankLocator, neverMask)); - DBG("\tMemory Type: %s\n", SMBMemoryDeviceTypes[structHeader->memoryType]); - + if (structHeader->memoryType > kSMBMemoryDeviceTypeCount) { + DBG("\tMemory Type: %s\n", OutOfSpecStr); + } else { + DBG("\tMemory Type: %s\n", SMBMemoryDeviceTypes[structHeader->memoryType]); + } if (minorVersion < 0x03 || structHeader->header.length < 0x1B) { return; } @@ -469,11 +472,15 @@ decodeProcessorInformation((SMBProcessorInformation *)structHeader); break; - //case 6: // kSMBTypeMemoryModule: // Type 6 + //case kSMBTypeMemoryModule: // Type 6 // decodeMemoryModule((SMBMemoryModule *)structHeader); // break; - //case 11: // kSMBOEMStrings: // Type 11 + //case kSMBTypeSystemSlot: // Type 9 + // decodeSMBTypeSystemSlot((SMBOEMStrings *)structHeader); + // break; + + //case kSMBOEMStrings: // Type 11 // decodeSMBOEMStrings((SMBOEMStrings *)structHeader); // break; @@ -482,6 +489,7 @@ break; //kSMBTypeMemoryArrayMappedAddress: // Type 19 + // break; /* Skip all Apple Specific Structures */ case kSMBTypeFirmwareVolume: // Type 128 @@ -498,6 +506,8 @@ //kSMBTypeOemPlatformFeature: // Type 133 + // break; + case kSMBTypeEndOfTable: // Type 127 /* Skip, to be added at the end */ break; Index: trunk/i386/libsaio/smbios.h =================================================================== --- trunk/i386/libsaio/smbios.h (revision 2350) +++ trunk/i386/libsaio/smbios.h (revision 2351) @@ -297,12 +297,12 @@ SMBString serialNumber; SMBString assetTag; SMBString partNumber; - // 2.5+ spec (38 bytes) + // 2.5+ spec (40 bytes) // SMBByte coreCount; // SMBByte coreEnabled; // SMBByte threadCount; -// SMBWord processorCharacteristics; - // 2.6+ spec +// SMBWord processorFuncSupport; + // 2.6+ spec (42 bytes) // SMBWord processorFamily2; } __attribute__((packed)) SMBProcessorInformation; @@ -312,6 +312,19 @@ Memory Controller Information (Type 5) Obsoleted since SMBIOS version 2.1 ========================================================================= */ +//typedef struct SMBMemoryControllerInfo { +// SMB_STRUCT_HEADER +// SMBByte errorDetectingMethod; +// SMBByte errorCorrectingCapability; +// SMBByte supportedInterleave; +// SMBByte currentInterleave; +// SMBByte maxMemoryModuleSize; +// SMBWord supportedSpeeds; +// SMBWord supportedMemoryTypes; +// SMBByte memoryModuleVoltage; +// SMBByte numberOfMemorySlots; +//} __attribute__((packed)) SMBMemoryControllerInfo; + /* =================================================================== Memory Module Information (Type 6) Obsoleted since SMBIOS version 2.1 ===================================================================== */ @@ -365,10 +378,10 @@ SMBByte slotCharacteristics1; // 2.1+ spec (13 bytes) SMBByte slotCharacteristics2; - // 2.6+ spec + // 2.6+ spec (17 bytes) // SMBWord segmentGroupNumber; // SMBByte busNumber; -// SMBByte devFuncNumber; +// SMBByte deviceFunctionNumber; } __attribute__((packed)) SMBSystemSlot; /* =================== @@ -449,8 +462,8 @@ SMBString serialNumber; SMBString assetTag; SMBString partNumber; - // 2.6+ spec -// SMBByte memoryAtributes; + // 2.6+ spec (28 bytes) +// SMBByte attributes; // 2.7+ spec // SMBDWord memoryExtSize; // SMBWord confMemClkSpeed; @@ -559,6 +572,15 @@ SMBWord ProcessorBusSpeed; // MT/s unit } __attribute__((packed)) SMBOemProcessorBusSpeed; +/* ============================================== + OEM Platform Feature (Apple Specific - Type 133) + ================================================ */ +struct SMBOemPlatformFeature +{ + SMB_STRUCT_HEADER + SMBWord PlatformFeature; +} __attribute__((packed)) SMBOemPlatformFeature; + //---------------------------------------------------------------------------------------------------------- /* From Foundation/Efi/Guid/Smbios/SmBios.h */