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 #define BIOS_CHARACTERISTICS_PCI_SUPPORTED (1 << 7)
11 #define BIOS_CHARACTERISTICS_PC_CARD (1 << 8)
12 #define BIOS_CHARACTERISTICS_PNP (1 << 9)
13 #define BIOS_CHARACTERISTICS_APM (1 << 10)
14 #define BIOS_CHARACTERISTICS_UPGRADEABLE (1 << 11)
15 #define BIOS_CHARACTERISTICS_SHADOW (1 << 12)
16 #define BIOS_CHARACTERISTICS_BOOT_FROM_CD (1 << 15)
17 #define BIOS_CHARACTERISTICS_SELECTABLE_BOOT (1 << 16)
18 #define BIOS_CHARACTERISTICS_BIOS_SOCKETED (1 << 17)
20 #define BIOS_EXT1_CHARACTERISTICS_ACPI (1 << 0)
21 #define BIOS_EXT2_CHARACTERISTICS_TARGET (1 << 2)
23 #define SMBIOS_STATE_SAFE 3
25 SMBIOS_BIOS_INFORMATION=0,
26 SMBIOS_SYSTEM_INFORMATION=1,
27 SMBIOS_SYSTEM_ENCLOSURE=3,
28 SMBIOS_PROCESSOR_INFORMATION=4,
29 SMBIOS_CACHE_INFORMATION=7,
30 SMBIOS_SYSTEM_SLOTS=9,
31 SMBIOS_PHYS_MEMORY_ARRAY=16,
32 SMBIOS_MEMORY_DEVICE=17,
33 SMBIOS_MEMORY_ARRAY_MAPPED_ADDRESS=19,
34 SMBIOS_SYSTEM_BOOT_INFORMATION=32,
35 SMBIOS_ONBOARD_DEVICES_EXTENDED_INFORMATION=41,
36 SMBIOS_END_OF_TABLE=127,
37 } smbios_struct_type_t;
47 u8 formwatted_area[5];
48 u8 intermediate_anchor_string[5];
49 u8 intermediate_checksum;
50 u16 struct_table_length;
51 u32 struct_table_address;
53 u8 smbios_bcd_revision;
54 } __attribute__((packed));
62 u16 bios_start_segment;
65 u64 bios_characteristics;
66 u8 bios_characteristics_ext1;
67 u8 bios_characteristics_ext2;
68 u8 system_bios_major_release;
69 u8 system_bios_minor_release;
73 } __attribute__((packed));
88 } __attribute__((packed));
100 u8 power_supply_state;
105 u8 number_of_power_cords;
107 u8 element_record_length;
109 } __attribute__((packed));
111 struct smbios_type4 {
115 u8 socket_designation;
118 u8 processor_manufacturer;
120 u8 processor_version;
126 u8 processor_upgrade;
136 u16 processor_characteristics;
137 u16 processor_family2;
139 } __attribute__((packed));
141 struct smbios_type16 {
147 u8 memory_error_correction;
148 u32 maximum_capacity;
149 u16 memory_error_information_handle;
150 u16 number_of_memory_devices;
151 u64 extended_maximum_capacity;
153 } __attribute__((packed));
155 struct smbios_type17 {
159 u16 phys_memory_array_handle;
160 u16 memory_error_information_handle;
180 } __attribute__((packed));
182 struct smbios_type32 {
189 } __attribute__((packed));
192 SMBIOS_DEVICE_TYPE_OTHER = 0x01,
193 SMBIOS_DEVICE_TYPE_UNKNOWN,
194 SMBIOS_DEVICE_TYPE_VIDEO,
195 SMBIOS_DEVICE_TYPE_SCSI,
196 SMBIOS_DEVICE_TYPE_ETHERNET,
197 SMBIOS_DEVICE_TYPE_TOKEN_RING,
198 SMBIOS_DEVICE_TYPE_SOUND,
199 SMBIOS_DEVICE_TYPE_PATA,
200 SMBIOS_DEVICE_TYPE_SATA,
201 SMBIOS_DEVICE_TYPE_SAS,
202 } smbios_onboard_device_type;
204 struct smbios_type41 {
208 u8 reference_designation;
211 u8 device_type_instance;
212 u16 segment_group_number;
214 u8 function_number: 3;
217 } __attribute__((packed));
219 struct smbios_type127 {
224 } __attribute__((packed));