6 unsigned long smbios_write_tables(unsigned long start
);
7 int smbios_add_string(char *start
, const char *str
);
8 int smbios_string_table_len(char *start
);
10 const char *smbios_mainboard_serial_number(void);
11 const char *smbios_mainboard_version(void);
13 #define BIOS_CHARACTERISTICS_PCI_SUPPORTED (1 << 7)
14 #define BIOS_CHARACTERISTICS_PC_CARD (1 << 8)
15 #define BIOS_CHARACTERISTICS_PNP (1 << 9)
16 #define BIOS_CHARACTERISTICS_APM (1 << 10)
17 #define BIOS_CHARACTERISTICS_UPGRADEABLE (1 << 11)
18 #define BIOS_CHARACTERISTICS_SHADOW (1 << 12)
19 #define BIOS_CHARACTERISTICS_BOOT_FROM_CD (1 << 15)
20 #define BIOS_CHARACTERISTICS_SELECTABLE_BOOT (1 << 16)
21 #define BIOS_CHARACTERISTICS_BIOS_SOCKETED (1 << 17)
23 #define BIOS_EXT1_CHARACTERISTICS_ACPI (1 << 0)
24 #define BIOS_EXT2_CHARACTERISTICS_TARGET (1 << 2)
26 #define SMBIOS_STATE_SAFE 3
28 SMBIOS_BIOS_INFORMATION
=0,
29 SMBIOS_SYSTEM_INFORMATION
=1,
30 SMBIOS_SYSTEM_ENCLOSURE
=3,
31 SMBIOS_PROCESSOR_INFORMATION
=4,
32 SMBIOS_CACHE_INFORMATION
=7,
33 SMBIOS_SYSTEM_SLOTS
=9,
35 SMBIOS_PHYS_MEMORY_ARRAY
=16,
36 SMBIOS_MEMORY_DEVICE
=17,
37 SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS
=19,
38 SMBIOS_SYSTEM_BOOT_INFORMATION
=32,
39 SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION
=41,
40 SMBIOS_END_OF_TABLE
=127,
41 } smbios_struct_type_t
;
51 u8 formwatted_area
[5];
52 u8 intermediate_anchor_string
[5];
53 u8 intermediate_checksum
;
54 u16 struct_table_length
;
55 u32 struct_table_address
;
57 u8 smbios_bcd_revision
;
58 } __attribute__((packed
));
66 u16 bios_start_segment
;
69 u64 bios_characteristics
;
70 u8 bios_characteristics_ext1
;
71 u8 bios_characteristics_ext2
;
72 u8 system_bios_major_release
;
73 u8 system_bios_minor_release
;
77 } __attribute__((packed
));
92 } __attribute__((packed
));
104 u8 power_supply_state
;
109 u8 number_of_power_cords
;
111 u8 element_record_length
;
113 } __attribute__((packed
));
115 struct smbios_type4
{
119 u8 socket_designation
;
122 u8 processor_manufacturer
;
124 u8 processor_version
;
130 u8 processor_upgrade
;
140 u16 processor_characteristics
;
141 u16 processor_family2
;
143 } __attribute__((packed
));
145 struct smbios_type15
{
157 u8 log_type_descriptors
;
158 u8 log_type_descriptor_length
;
160 } __attribute__((packed
));
163 SMBIOS_EVENTLOG_ACCESS_METHOD_IO8
= 0,
164 SMBIOS_EVENTLOG_ACCESS_METHOD_IO8X2
,
165 SMBIOS_EVENTLOG_ACCESS_METHOD_IO16
,
166 SMBIOS_EVENTLOG_ACCESS_METHOD_MMIO32
,
167 SMBIOS_EVENTLOG_ACCESS_METHOD_GPNV
,
171 SMBIOS_EVENTLOG_STATUS_VALID
= 1, /* Bit 0 */
172 SMBIOS_EVENTLOG_STATUS_FULL
= 2, /* Bit 1 */
175 struct smbios_type16
{
181 u8 memory_error_correction
;
182 u32 maximum_capacity
;
183 u16 memory_error_information_handle
;
184 u16 number_of_memory_devices
;
185 u64 extended_maximum_capacity
;
187 } __attribute__((packed
));
189 struct smbios_type17
{
193 u16 phys_memory_array_handle
;
194 u16 memory_error_information_handle
;
214 } __attribute__((packed
));
216 struct smbios_type32
{
223 } __attribute__((packed
));
225 struct smbios_type38
{
234 u8 base_address_modifier
;
236 } __attribute__((packed
));
239 SMBIOS_DEVICE_TYPE_OTHER
= 0x01,
240 SMBIOS_DEVICE_TYPE_UNKNOWN
,
241 SMBIOS_DEVICE_TYPE_VIDEO
,
242 SMBIOS_DEVICE_TYPE_SCSI
,
243 SMBIOS_DEVICE_TYPE_ETHERNET
,
244 SMBIOS_DEVICE_TYPE_TOKEN_RING
,
245 SMBIOS_DEVICE_TYPE_SOUND
,
246 SMBIOS_DEVICE_TYPE_PATA
,
247 SMBIOS_DEVICE_TYPE_SATA
,
248 SMBIOS_DEVICE_TYPE_SAS
,
249 } smbios_onboard_device_type
;
251 struct smbios_type41
{
255 u8 reference_designation
;
258 u8 device_type_instance
;
259 u16 segment_group_number
;
261 u8 function_number
: 3;
264 } __attribute__((packed
));
266 struct smbios_type127
{
271 } __attribute__((packed
));