Annotation of qemu/roms/seabios/src/smbios.h, revision 1.1.1.1

1.1       root        1: #ifndef __SMBIOS_H
                      2: #define __SMBIOS_H
                      3: 
                      4: // smbios.c
                      5: void smbios_init(void);
                      6: 
                      7: /* SMBIOS entry point -- must be written to a 16-bit aligned address
                      8:    between 0xf0000 and 0xfffff.
                      9:  */
                     10: struct smbios_entry_point {
                     11:     char anchor_string[4];
                     12:     u8 checksum;
                     13:     u8 length;
                     14:     u8 smbios_major_version;
                     15:     u8 smbios_minor_version;
                     16:     u16 max_structure_size;
                     17:     u8 entry_point_revision;
                     18:     u8 formatted_area[5];
                     19:     char intermediate_anchor_string[5];
                     20:     u8 intermediate_checksum;
                     21:     u16 structure_table_length;
                     22:     u32 structure_table_address;
                     23:     u16 number_of_structures;
                     24:     u8 smbios_bcd_revision;
                     25: } PACKED;
                     26: 
                     27: /* This goes at the beginning of every SMBIOS structure. */
                     28: struct smbios_structure_header {
                     29:     u8 type;
                     30:     u8 length;
                     31:     u16 handle;
                     32: } PACKED;
                     33: 
                     34: /* SMBIOS type 0 - BIOS Information */
                     35: struct smbios_type_0 {
                     36:     struct smbios_structure_header header;
                     37:     u8 vendor_str;
                     38:     u8 bios_version_str;
                     39:     u16 bios_starting_address_segment;
                     40:     u8 bios_release_date_str;
                     41:     u8 bios_rom_size;
                     42:     u8 bios_characteristics[8];
                     43:     u8 bios_characteristics_extension_bytes[2];
                     44:     u8 system_bios_major_release;
                     45:     u8 system_bios_minor_release;
                     46:     u8 embedded_controller_major_release;
                     47:     u8 embedded_controller_minor_release;
                     48: } PACKED;
                     49: 
                     50: /* SMBIOS type 1 - System Information */
                     51: struct smbios_type_1 {
                     52:     struct smbios_structure_header header;
                     53:     u8 manufacturer_str;
                     54:     u8 product_name_str;
                     55:     u8 version_str;
                     56:     u8 serial_number_str;
                     57:     u8 uuid[16];
                     58:     u8 wake_up_type;
                     59:     u8 sku_number_str;
                     60:     u8 family_str;
                     61: } PACKED;
                     62: 
                     63: /* SMBIOS type 3 - System Enclosure (v2.3) */
                     64: struct smbios_type_3 {
                     65:     struct smbios_structure_header header;
                     66:     u8 manufacturer_str;
                     67:     u8 type;
                     68:     u8 version_str;
                     69:     u8 serial_number_str;
                     70:     u8 asset_tag_number_str;
                     71:     u8 boot_up_state;
                     72:     u8 power_supply_state;
                     73:     u8 thermal_state;
                     74:     u8 security_status;
                     75:     u32 oem_defined;
                     76:     u8 height;
                     77:     u8 number_of_power_cords;
                     78:     u8 contained_element_count;
                     79:     // contained elements follow
                     80: } PACKED;
                     81: 
                     82: /* SMBIOS type 4 - Processor Information (v2.0) */
                     83: struct smbios_type_4 {
                     84:     struct smbios_structure_header header;
                     85:     u8 socket_designation_str;
                     86:     u8 processor_type;
                     87:     u8 processor_family;
                     88:     u8 processor_manufacturer_str;
                     89:     u32 processor_id[2];
                     90:     u8 processor_version_str;
                     91:     u8 voltage;
                     92:     u16 external_clock;
                     93:     u16 max_speed;
                     94:     u16 current_speed;
                     95:     u8 status;
                     96:     u8 processor_upgrade;
                     97:     u16 l1_cache_handle;
                     98:     u16 l2_cache_handle;
                     99:     u16 l3_cache_handle;
                    100: } PACKED;
                    101: 
                    102: /* SMBIOS type 16 - Physical Memory Array
                    103:  *   Associated with one type 17 (Memory Device).
                    104:  */
                    105: struct smbios_type_16 {
                    106:     struct smbios_structure_header header;
                    107:     u8 location;
                    108:     u8 use;
                    109:     u8 error_correction;
                    110:     u32 maximum_capacity;
                    111:     u16 memory_error_information_handle;
                    112:     u16 number_of_memory_devices;
                    113: } PACKED;
                    114: 
                    115: /* SMBIOS type 17 - Memory Device
                    116:  *   Associated with one type 19
                    117:  */
                    118: struct smbios_type_17 {
                    119:     struct smbios_structure_header header;
                    120:     u16 physical_memory_array_handle;
                    121:     u16 memory_error_information_handle;
                    122:     u16 total_width;
                    123:     u16 data_width;
                    124:     u16 size;
                    125:     u8 form_factor;
                    126:     u8 device_set;
                    127:     u8 device_locator_str;
                    128:     u8 bank_locator_str;
                    129:     u8 memory_type;
                    130:     u16 type_detail;
                    131: } PACKED;
                    132: 
                    133: /* SMBIOS type 19 - Memory Array Mapped Address */
                    134: struct smbios_type_19 {
                    135:     struct smbios_structure_header header;
                    136:     u32 starting_address;
                    137:     u32 ending_address;
                    138:     u16 memory_array_handle;
                    139:     u8 partition_width;
                    140: } PACKED;
                    141: 
                    142: /* SMBIOS type 20 - Memory Device Mapped Address */
                    143: struct smbios_type_20 {
                    144:     struct smbios_structure_header header;
                    145:     u32 starting_address;
                    146:     u32 ending_address;
                    147:     u16 memory_device_handle;
                    148:     u16 memory_array_mapped_address_handle;
                    149:     u8 partition_row_position;
                    150:     u8 interleave_position;
                    151:     u8 interleaved_data_depth;
                    152: } PACKED;
                    153: 
                    154: /* SMBIOS type 32 - System Boot Information */
                    155: struct smbios_type_32 {
                    156:     struct smbios_structure_header header;
                    157:     u8 reserved[6];
                    158:     u8 boot_status;
                    159: } PACKED;
                    160: 
                    161: /* SMBIOS type 127 -- End-of-table */
                    162: struct smbios_type_127 {
                    163:     struct smbios_structure_header header;
                    164: } PACKED;
                    165: 
                    166: #endif // smbios.h

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.