Annotation of qemu/roms/seabios/src/smbios.h, revision 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.