Chameleon

Chameleon Svn Source Tree

Root/trunk/i386/libsaio/smbios.h

1/*
2 * Copyright (c) 1998-2009 Apple Computer, Inc. All rights reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * The contents of this file constitute Original Code as defined in and
7 * are subject to the Apple Public Source License Version 1.1 (the
8 * "License"). You may not use this file except in compliance with the
9 * License. Please obtain a copy of the License at
10 * http://www.apple.com/publicsource and read it before using this file.
11 *
12 * This Original Code and all software distributed under the License are
13 * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
14 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
15 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the
17 * License for the specific language governing rights and limitations
18 * under the License.
19 *
20 * @APPLE_LICENSE_HEADER_END@
21 */
22
23#ifndef __LIBSAIO_SMBIOS_H
24#define __LIBSAIO_SMBIOS_H
25
26
27/* Based on System Management BIOS Reference Specification v2.5 */
28// http://dmtf.org/sites/default/files/standards/documents/DSP0134_2.8.0.pdf
29
30typedef uint8_t SMBString;
31typedef uint8_t SMBByte;
32typedef uint16_t SMBWord;
33typedef uint32_t SMBDWord;
34typedef uint64_t SMBQWord;
35
36
37typedef struct DMIEntryPoint
38{
39 SMBByte anchor[5];
40 SMBByte checksum;
41 SMBWord tableLength;
42 SMBDWord tableAddress;
43 SMBWord structureCount;
44 SMBByte bcdRevision;
45} __attribute__((packed)) DMIEntryPoint;
46
47typedef struct SMBEntryPoint
48{
49 SMBByte anchor[4];
50 SMBByte checksum;
51 SMBByte entryPointLength;
52 SMBByte majorVersion;
53 SMBByte minorVersion;
54 SMBWord maxStructureSize;
55 SMBByte entryPointRevision;
56 SMBByte formattedArea[5];
57 DMIEntryPoint dmi;
58} __attribute__((packed)) SMBEntryPoint;
59
60/* Header common to all SMBIOS structures */
61typedef struct SMBStructHeader
62{
63SMBBytetype;
64SMBBytelength;
65SMBWordhandle;
66//SMBByte*data;
67} __attribute__((packed)) SMBStructHeader;
68
69#define SMB_STRUCT_HEADER SMBStructHeader header;
70
71typedef struct SMBAnchor
72{
73const SMBStructHeader *header;
74const uint8_t *next;
75const uint8_t *end;
76} SMBAnchor;
77
78#define SMB_ANCHOR_IS_VALID(x)\
79((x) && ((x)->header) && ((x)->next) && ((x)->end))
80
81#define SMB_ANCHOR_RESET(x)\
82bzero(x, sizeof(typedef struct SMBAnchor));
83
84/*
85 =======================
86 SMBIOS structure types.
87 ======================= */
88enum
89{
90kSMBTypeBIOSInformation= 0, // BIOS information (Type 0)
91kSMBTypeSystemInformation= 1, // System Information (Type 1)
92kSMBTypeBaseBoard= 2, // BaseBoard Information (Type 2)
93kSMBTypeSystemEnclosure= 3, // System Chassis Information (Type 3)
94kSMBTypeProcessorInformation= 4, // Processor Information (Type 4)
95// Memory Controller Information (Type 5) Obsolete
96kSMBTypeMemoryModule= 6, // Memory Module Information (Type 6) Obsolete
97kSMBTypeCacheInformation= 7, // Cache Information (Type 7)
98// Port Connector Information (Type 8)
99kSMBTypeSystemSlot= 9, // System Slots (Type 9)
100// On Board Devices Information (Type 10) Obsolete
101kSMBOEMStrings= 11 ,// OEM Strings (Type 11)
102// System Configuration Options (Type 12)
103// BIOS Language Information (Type 13)
104// Group Associations (Type 14)
105// System Event Log (Type 15)
106kSMBTypePhysicalMemoryArray= 16, // Physical Memory Array (Type 16)
107kSMBTypeMemoryDevice= 17, // Memory Device (Type 17)
108kSMBType32BitMemoryErrorInfo= 18, // 32-Bit Memory Error Information (Type 18)
109// Memory Array Mapped Address (Type 19)
110// Memory Device Mapped Address (Type 20)
111// Built-in Pointing Device (Type 21)
112// Portable Battery (Type 22)
113// System Reset (Type 23)
114// Hardware Security (Type 24)
115// System Power Controls (Type 25)
116// Voltage Probe (Type 26)
117// Cooling Device (Type 27)
118// Temperature Probe (Type 28)
119// Electrical Current Probe (Type 29)
120// Out-of-Band Remote Access (Type 30)
121// Boot Integrity Service (BIS) Entry Point (Type 31)
122// System Boot Information (Type 32)
123kSMBType64BitMemoryErrorInfo= 33, // 64-Bit Memory Error Information (Type 33)
124// Managment Device (Type 34)
125// Managment Device Component (Type 35)
126// Management Device Threshold Data (Type 36)
127// Memory Channel (Type 37)
128// IPMI Device Information (Type 38)
129// System Power Supply (Type 39)
130// Additional Information (Type 40)
131// Onboard Devices Extended Information (Type 41)
132// Management Controlle Host Interface (Type 42)
133
134// Inactive (Type 126)
135kSMBTypeEndOfTable= 127, // End-of-Table (Type 127)
136
137// Apple Specific Structures
138kSMBTypeFirmwareVolume= 128, // FirmwareVolume (TYPE 128)
139kSMBTypeMemorySPD= 130, // MemorySPD (TYPE 130)
140kSMBTypeOemProcessorType= 131, // Processor Type (Type 131)
141kSMBTypeOemProcessorBusSpeed= 132 // Processor Bus Speed (Type 132)
142//kSMBTypeOemPlatformFeature= 133 // Platform Feature (Type 133)
143};
144
145/* =======================
146 BIOS Information (Type 0)
147 ========================= */
148typedef struct SMBBIOSInformation
149{
150 SMB_STRUCT_HEADER
151 SMBString vendor; // BIOS vendor name
152 SMBString version; // BIOS version
153 SMBWord startSegment; // BIOS segment start
154 SMBString releaseDate; // BIOS release date
155 SMBByte romSize; // BIOS ROM Size (n); 64K * (n+1) bytes
156 SMBQWord characteristics; // supported BIOS functions
157 // Bungo
158 SMBByte characteristicsExt1; // BIOS characteristics extension byte 1
159 SMBByte characteristicsExt2; // BIOS characteristics extension byte 2
160 SMBByte releaseMajor; // BIOS release (major)
161 SMBByte releaseMinor; // BIOS release (minor)
162 SMBByte ECreleaseMajor; // Embedded Controller firmware release (major)
163 SMBByte ECreleaseMinor; // Embedded Controller firmware release (minor)
164} __attribute__((packed)) SMBBIOSInformation;
165
166/* =========================
167 System Information (Type 1)
168 =========================== */
169typedef struct SMBSystemInformation
170{
171 // 2.0+ spec (8 bytes)
172 SMB_STRUCT_HEADER
173 SMBString manufacturer;
174 SMBString productName;
175 SMBString version;
176 SMBString serialNumber;
177 // 2.1+ spec (25 bytes)
178 SMBByte uuid[16]; // can be all 0 or all 1's
179 SMBByte wakeupReason; // reason for system wakeup
180 // 2.4+ spec (27 bytes)
181 SMBString skuNumber;
182 SMBString family;
183} __attribute__((packed)) SMBSystemInformation;
184
185/* =========================================
186 Base Board (or Module) Information (Type 2)
187 =========================================== */
188typedef struct SMBBaseBoard
189{
190SMB_STRUCT_HEADER // Type 2
191SMBStringmanufacturer;
192SMBStringproduct;
193SMBStringversion;
194SMBStringserialNumber;
195SMBStringassetTag;// Bungo: renamed from assetTagNumber folowing convention
196SMBByte featureFlags;// Collection of flag that identify features of this baseboard
197SMBStringlocationInChassis;
198SMBWord chassisHandle;
199SMBByte boardType;// Type of board
200SMBByte numberOfContainedHandles;
201//SMBWord containedObjectHandles[1];
202// 0 - 255 contained handles go here but we do not include
203// them in our structure. Be careful to use numberOfContainedHandles
204// times sizeof(SMBWord) when computing the actual record size,
205// if you need it.
206} __attribute__((packed)) SMBBaseBoard;
207
208/* ====================================
209 Values for boardType in Type 2 records
210 ====================================== */
211enum
212{
213 kSMBBaseBoardUnknown = 0x01,// Unknow
214 kSMBBaseBoardOther = 0x02,// Other
215 kSMBBaseBoardServerBlade = 0x03,// Server Blade
216 kSMBBaseBoardConnectivitySwitch = 0x04,// Connectivity Switch
217 kSMBBaseBoardSystemMgmtModule = 0x05,// System Management Module
218 kSMBBaseBoardProcessorModule = 0x06,// Processor Module
219 kSMBBaseBoardIOModule = 0x07,// I/O Module
220 kSMBBaseBoardMemoryModule = 0x08,// Memory Module
221 kSMBBaseBoardDaughter = 0x09,// Daughter Board
222 kSMBBaseBoardMotherboard = 0x0A,// Motherboard (includes processor, memory, and I/O)
223 kSMBBaseBoardProcessorMemoryModule = 0x0B,// Processor/Memory Module
224 kSMBBaseBoardProcessorIOModule = 0x0C,// Processor/IO Module
225 kSMBBaseBoardInterconnect = 0x0D// Interconnect board
226};
227
228/* =======================
229 System Enclosure (Type 3)
230 ========================= */
231typedef struct SMBSystemEnclosure
232{
233SMB_STRUCT_HEADER // Type 3
234SMBString manufacturer;
235SMBByte chassisType;// System Enclosure Indicator
236SMBString version;// Board Number?
237SMBString serialNumber;
238SMBString assetTag;// Bungo: renamed from assetTagNumber folowing convention
239SMBByte bootupState;// State of enclosure when when it was last booted
240SMBByte powerSupplyState;// State of enclosure's power supply when last booted
241SMBByte thermalState;// Thermal state of the enclosure when last booted
242SMBByte securityStatus;// Physical security status of the enclosure when last booted
243SMBDWord oemDefined;// OEM- or BIOS vendor-specific information
244SMBByte height;// Height of the enclosure, in 'U's
245SMBByte numberOfPowerCords;// Number of power cords associated with the enclosure or chassis
246SMBByte containedElementCount;// Number of Contained Element record that follow, in the range 0 to 255
247//SMBByte containedElementRecord;// Byte leght of each Contained Element record that follow, in the range 0 to 255
248//SMBByte containedElements;// Elements, possibly defined by other SMBIOS structures present in chassis
249//SMBString skuNumber;// Number of null-terminated string describing the chassis or enclosure SKU number (2.7+)
250} __attribute__((packed)) SMBSystemEnclosure;
251
252// Bungo: values for SMBSystemEnclosure.chassisType
253enum {
254 kSMBchassisOther = 0x01,
255 kSMBchassisUnknown = 0x02,
256 kSMBchassisDesktop = 0x03,
257 kSMBchassisLPDesktop = 0x04,
258 kSMBchassisPizzaBox = 0x05,
259 kSMBchassisMiniTower = 0x06,
260 kSMBchassisTower = 0x07,
261 kSMBchassisPortable = 0x08,
262 kSMBchassisLaptop = 0x09,
263 kSMBchassisNotebook = 0x0A,
264 kSMBchassisHandHeld = 0x0B,
265 kSMBchassisDockingStation = 0x0C,
266 kSMBchassisAllInOne = 0x0D,
267 kSMBchassisSubNotebook = 0x0E,
268 // ... fill up if needed ;-)
269 kSMBchassisLunchBox = 0x10,
270 // ... fill up if needed ;-)
271 kSMBchassisBladeEnclosing = 0x1D
272};
273
274/* ============================
275 Processor Information (Type 4)
276 ============================== */
277typedef struct SMBProcessorInformation
278{
279// 2.0+ spec (26 bytes)
280SMB_STRUCT_HEADER // Type 4
281SMBString socketDesignation;
282SMBByte processorType; // CPU = 3
283SMBByte processorFamily; // processor family enum
284SMBString manufacturer;
285SMBQWord processorID; // based on CPUID
286SMBString processorVersion;
287SMBByte voltage; // bit7 cleared indicate legacy mode
288SMBWord externalClock; // external clock in MHz
289SMBWord maximumClock; // max internal clock in MHz
290SMBWord currentClock; // current internal clock in MHz
291SMBByte status;
292SMBByte processorUpgrade; // processor upgrade enum
293// 2.1+ spec (32 bytes)
294SMBWord L1CacheHandle;
295SMBWord L2CacheHandle;
296SMBWord L3CacheHandle;
297// 2.3+ spec (35 bytes)
298SMBString serialNumber;
299SMBString assetTag;
300SMBString partNumber;
301// 2.5+ spec (40 bytes)
302SMBByte coreCount;
303SMBByte coreEnabled;
304SMBByte threadCount;
305//SMBWord processorFuncSupport;
306// 2.6+ spec (42 bytes)
307//SMBWord processorFamily2;
308} __attribute__((packed)) SMBProcessorInformation;
309
310#define kSMBProcessorInformationMinSize 26
311
312/* ========================================
313 Values for processorType in Type 4 records
314 ======================================== */
315enum
316{
317kSMBprocessorTypeOther = 0x01,
318kSMBprocessorTypeUnknown = 0x02,
319kSMBprocessorTypeCPU = 0x03,
320kSMBprocessorTypeMPU = 0x04,
321kSMBprocessorTypeDSP = 0x05,
322kSMBprocessorTypeGPU = 0x06
323};
324
325/* ======================================================================
326 Memory Controller Information (Type 5) Obsolete since SMBIOS version 2.1
327 ======================================================================== */
328typedef struct SMBMemoryControllerInfo {
329SMB_STRUCT_HEADER
330SMBByteerrorDetectingMethod;
331SMBByteerrorCorrectingCapability;
332SMBBytesupportedInterleave;
333SMBBytecurrentInterleave;
334SMBBytemaxMemoryModuleSize;
335SMBWordsupportedSpeeds;
336SMBWordsupportedMemoryTypes;
337SMBBytememoryModuleVoltage;
338SMBBytenumberOfMemorySlots;
339} __attribute__((packed)) SMBMemoryControllerInfo;
340
341/* ==================================================================
342 Memory Module Information (Type 6) Obsolete since SMBIOS version 2.1
343 ==================================================================== */
344typedef struct SMBMemoryModule
345{
346 SMB_STRUCT_HEADER // Type 6
347 SMBString socketDesignation;
348 SMBByte bankConnections;
349 SMBByte currentSpeed;
350 SMBWord currentMemoryType;
351 SMBByte installedSize;
352 SMBByte enabledSize;
353 SMBByte errorStatus;
354} __attribute__((packed)) SMBMemoryModule;
355
356#define kSMBMemoryModuleSizeNotDeterminable 0x7D
357#define kSMBMemoryModuleSizeNotEnabled 0x7E
358#define kSMBMemoryModuleSizeNotInstalled 0x7F
359
360/* ========================
361 Cache Information (Type 7)
362 ========================== */
363typedef struct SMBCacheInformation
364{
365 SMB_STRUCT_HEADER // Type 7
366 SMBString socketDesignation;
367 SMBWord cacheConfiguration;
368 SMBWord maximumCacheSize;
369 SMBWord installedSize;
370 SMBWord supportedSRAMType;
371 SMBWord currentSRAMType;
372 SMBByte cacheSpeed;
373 SMBByte errorCorrectionType;
374 SMBByte systemCacheType;
375 SMBByte associativity;
376} __attribute__((packed)) SMBCacheInformation;
377
378/* ===================
379 System Slots (Type 9)
380 ===================== */
381typedef struct SMBSystemSlot
382{
383 // 2.0+ spec (12 bytes)
384SMB_STRUCT_HEADER
385SMBString slotDesignation;
386SMBByte slotType;
387SMBByte slotDataBusWidth;
388SMBByte currentUsage;
389SMBByte slotLength;
390SMBWord slotID;
391SMBByte slotCharacteristics1;
392// 2.1+ spec (13 bytes)
393SMBByte slotCharacteristics2;
394// 2.6+ spec (17 bytes)
395//SMBWordsegmentGroupNumber;
396//SMBBytebusNumber;
397//SMBBytedeviceFunctionNumber;
398} __attribute__((packed)) SMBSystemSlot;
399
400/* ===================
401 OEM Strings (Type 11)
402 ===================== */
403typedef struct SMBOEMStrings
404{
405SMB_STRUCT_HEADER // Type 11
406SMBBytecount;// number of strings
407} __attribute__((packed)) SMBOEMStrings;
408
409/* =============================
410 Physical Memory Array (Type 16)
411 =============================== */
412typedef struct SMBPhysicalMemoryArray
413{
414// 2.1+ spec (15 bytes)
415SMB_STRUCT_HEADER // Type 16
416SMBByte physicalLocation; // physical location
417SMBByte arrayUse; // the use for the memory array
418SMBByte errorCorrection; // error correction/detection method
419SMBDWord maximumCapacity; // maximum memory capacity in kilobytes
420SMBWord errorHandle; // handle of a previously detected error
421SMBWord numMemoryDevices; // number of memory slots or sockets
422// 2.7+ spec
423//SMBQWord extMaximumCapacity;// maximum memory capacity in bytes
424} __attribute__((packed)) SMBPhysicalMemoryArray;
425
426/* ================
427 Memory Array - Use
428 ================== */
429enum
430{
431 kSMBMemoryArrayUseOther = 0x01,
432 kSMBMemoryArrayUseUnknown = 0x02,
433 kSMBMemoryArrayUseSystemMemory = 0x03,
434 kSMBMemoryArrayUseVideoMemory = 0x04,
435 kSMBMemoryArrayUseFlashMemory = 0x05,
436 kSMBMemoryArrayUseNonVolatileMemory = 0x06,
437 kSMBMemoryArrayUseCacheMemory = 0x07
438};
439
440/* ===================================
441 Memory Array - Error Correction Types
442 ===================================== */
443enum
444{
445 kSMBMemoryArrayErrorCorrectionTypeOther = 0x01,
446 kSMBMemoryArrayErrorCorrectionTypeUnknown = 0x02,
447 kSMBMemoryArrayErrorCorrectionTypeNone = 0x03,
448 kSMBMemoryArrayErrorCorrectionTypeParity = 0x04,
449 kSMBMemoryArrayErrorCorrectionTypeSingleBitECC = 0x05,
450 kSMBMemoryArrayErrorCorrectionTypeMultiBitECC = 0x06,
451 kSMBMemoryArrayErrorCorrectionTypeCRC = 0x07
452};
453
454/* =====================
455 Memory Device (Type 17)
456 ======================= */
457typedef struct SMBMemoryDevice
458{
459// 2.1+ spec (21 bytes)
460SMB_STRUCT_HEADER // Type 17
461SMBWord arrayHandle; // handle of the parent memory array
462SMBWord errorHandle; // handle of a previously detected error
463SMBWord totalWidth; // total width in bits; including ECC bits
464SMBWord dataWidth; // data width in bits
465SMBWord memorySize; // bit15 is scale, 0 = MB, 1 = KB
466SMBByte formFactor; // memory device form factor
467SMBByte deviceSet; // parent set of identical memory devices
468SMBString deviceLocator; // labeled socket; e.g. "SIMM 3"
469SMBString bankLocator; // labeled bank; e.g. "Bank 0" or "A"
470SMBByte memoryType; // type of memory
471SMBWord memoryTypeDetail; // additional detail on memory type
472// 2.3+ spec (27 bytes)
473SMBWord memorySpeed; // speed of device in MHz (0 for unknown)
474SMBString manufacturer;
475SMBString serialNumber;
476SMBString assetTag;
477SMBString partNumber;
478// 2.6+ spec (28 bytes)
479//SMBByte attributes;
480// 2.7+ spec
481//SMBDWord memoryExtSize;
482//SMBWord confMemClkSpeed;
483// 2.8+ spec
484//SMBWord minimumVolt;
485//SMBWord maximumVolt;
486//SMBWord configuredVolt;
487} __attribute__((packed)) SMBMemoryDevice;
488
489/* ===================================
490 Memory Array Mapped Address (Type 19)
491 ===================================== */
492//typedef struct SMBMemoryArrayMappedAddress
493//{
494 // 2.1+ spec
495//SMB_STRUCT_HEADER // Type 19
496//SMBDWord startingAddress;
497//SMBDWord endingAddress;
498//SMBWord arrayHandle;
499//SMBByte partitionWidth;
500// 2.7+ spec
501//SMBQWord extStartAddress;
502//SMBQWord extEndAddress;
503//} __attribute__((packed)) SMBMemoryArrayMappedAddress;
504
505/* ====================================
506 Memory Device Mapped Address (Type 20)
507 ====================================== */
508//typedef struct SMBMemoryDeviceMappedAddress
509//{
510// 2.1+ spec
511//SMB_STRUCT_HEADER // Type 20
512//SMBDWord startingAddress;
513//SMBDWord endingAddress;
514//SMBWord arrayHandle;
515//SMBByte partitionRowPosition;
516//SMBByte interleavePosition;
517//SMBByte interleaveDataDepth;
518// 2.7+ spec
519//SMBQWord extStartAddress;
520//SMBQWord extEndAddress;
521//} __attribute__((packed)) SMBMemoryDeviceMappedAddress;
522
523/* =====================================================
524 Firmware Volume Description (Apple Specific - Type 128)
525 ======================================================= */
526enum
527{
528FW_REGION_RESERVED = 0,
529FW_REGION_RECOVERY = 1,
530FW_REGION_MAIN = 2,
531FW_REGION_NVRAM = 3,
532FW_REGION_CONFIG = 4,
533FW_REGION_DIAGVAULT = 5,
534
535NUM_FLASHMAP_ENTRIES = 8
536};
537
538typedef struct FW_REGION_INFO
539{
540SMBDWord StartAddress;
541SMBDWord EndAddress;
542} __attribute__((packed)) FW_REGION_INFO;
543
544/* ========
545 (Type 128)
546 ========== */
547typedef struct SMBFirmwareVolume
548{
549SMB_STRUCT_HEADER// Type 128
550SMBByte RegionCount;
551SMBByte Reserved[3];
552SMBDWord FirmwareFeatures;
553SMBDWord FirmwareFeaturesMask;
554SMBByte RegionType[ NUM_FLASHMAP_ENTRIES ];
555FW_REGION_INFO FlashMap[ NUM_FLASHMAP_ENTRIES ];
556} __attribute__((packed)) SMBFirmwareVolume;
557
558/* ===========================================
559 Memory SPD Data (Apple Specific - Type 130)
560 ============================================= */
561typedef struct SMBMemorySPD
562{
563SMB_STRUCT_HEADER// Type 130
564SMBWord Type17Handle;
565SMBWord Offset;
566SMBWord Size;
567SMBWord Data[];
568} __attribute__((packed)) SMBMemorySPD;
569
570/* ============================================
571 OEM Processor Type (Apple Specific - Type 131)
572 ============================================== */
573typedef struct SMBOemProcessorType
574{
575SMB_STRUCT_HEADER// Type131
576SMBWord ProcessorType;
577} __attribute__((packed)) SMBOemProcessorType;
578
579/* =================================================
580 OEM Processor Bus Speed (Apple Specific - Type 132)
581 =================================================== */
582typedef struct SMBOemProcessorBusSpeed
583{
584SMB_STRUCT_HEADER// Type 132
585SMBWord ProcessorBusSpeed; // MT/s unit
586} __attribute__((packed)) SMBOemProcessorBusSpeed;
587
588/* ==============================================
589 OEM Platform Feature (Apple Specific - Type 133)
590 ================================================ */
591struct SMBOemPlatformFeature
592{
593SMB_STRUCT_HEADER// Type 133
594SMBWord PlatformFeature;
595} __attribute__((packed)) SMBOemPlatformFeature;
596
597//----------------------------------------------------------------------------------------------------------
598
599/* From Foundation/Efi/Guid/Smbios/SmBios.h */
600/* Modified to wrap Data4 array init with {} */
601#define EFI_SMBIOS_TABLE_GUID {0xeb9d2d31, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d}}
602
603#define SMBIOS_ORIGINAL0
604#define SMBIOS_PATCHED1
605
606extern void *getSmbios(int which);
607extern void readSMBIOSInfo(SMBEntryPoint *eps);
608extern void setupSMBIOSTable(void);
609
610extern void decodeSMBIOSTable(SMBEntryPoint *eps);
611
612
613#endif /* !__LIBSAIO_SMBIOS_H */
614

Archive Download this file

Revision: 2361