Annotation of qemu/hw/smbios.h, revision 1.1.1.1

1.1       root        1: #ifndef QEMU_SMBIOS_H
                      2: #define QEMU_SMBIOS_H
                      3: /*
                      4:  * SMBIOS Support
                      5:  *
                      6:  * Copyright (C) 2009 Hewlett-Packard Development Company, L.P.
                      7:  *
                      8:  * Authors:
                      9:  *  Alex Williamson <alex.williamson@hp.com>
                     10:  *
                     11:  * This work is licensed under the terms of the GNU GPL, version 2.  See
                     12:  * the COPYING file in the top-level directory.
                     13:  *
                     14:  */
                     15: 
                     16: int smbios_entry_add(const char *t);
                     17: void smbios_add_field(int type, int offset, int len, void *data);
                     18: uint8_t *smbios_get_table(size_t *length);
                     19: 
                     20: /*
                     21:  * SMBIOS spec defined tables
                     22:  */
                     23: 
                     24: /* This goes at the beginning of every SMBIOS structure. */
                     25: struct smbios_structure_header {
                     26:     uint8_t type;
                     27:     uint8_t length;
                     28:     uint16_t handle;
                     29: } __attribute__((__packed__));
                     30: 
                     31: /* SMBIOS type 0 - BIOS Information */
                     32: struct smbios_type_0 {
                     33:     struct smbios_structure_header header;
                     34:     uint8_t vendor_str;
                     35:     uint8_t bios_version_str;
                     36:     uint16_t bios_starting_address_segment;
                     37:     uint8_t bios_release_date_str;
                     38:     uint8_t bios_rom_size;
                     39:     uint8_t bios_characteristics[8];
                     40:     uint8_t bios_characteristics_extension_bytes[2];
                     41:     uint8_t system_bios_major_release;
                     42:     uint8_t system_bios_minor_release;
                     43:     uint8_t embedded_controller_major_release;
                     44:     uint8_t embedded_controller_minor_release;
                     45: } __attribute__((__packed__));
                     46: 
                     47: /* SMBIOS type 1 - System Information */
                     48: struct smbios_type_1 {
                     49:     struct smbios_structure_header header;
                     50:     uint8_t manufacturer_str;
                     51:     uint8_t product_name_str;
                     52:     uint8_t version_str;
                     53:     uint8_t serial_number_str;
                     54:     uint8_t uuid[16];
                     55:     uint8_t wake_up_type;
                     56:     uint8_t sku_number_str;
                     57:     uint8_t family_str;
                     58: } __attribute__((__packed__));
                     59: 
                     60: /* SMBIOS type 3 - System Enclosure (v2.3) */
                     61: struct smbios_type_3 {
                     62:     struct smbios_structure_header header;
                     63:     uint8_t manufacturer_str;
                     64:     uint8_t type;
                     65:     uint8_t version_str;
                     66:     uint8_t serial_number_str;
                     67:     uint8_t asset_tag_number_str;
                     68:     uint8_t boot_up_state;
                     69:     uint8_t power_supply_state;
                     70:     uint8_t thermal_state;
                     71:     uint8_t security_status;
                     72:     uint32_t oem_defined;
                     73:     uint8_t height;
                     74:     uint8_t number_of_power_cords;
                     75:     uint8_t contained_element_count;
                     76:     // contained elements follow
                     77: } __attribute__((__packed__));
                     78: 
                     79: /* SMBIOS type 4 - Processor Information (v2.0) */
                     80: struct smbios_type_4 {
                     81:     struct smbios_structure_header header;
                     82:     uint8_t socket_designation_str;
                     83:     uint8_t processor_type;
                     84:     uint8_t processor_family;
                     85:     uint8_t processor_manufacturer_str;
                     86:     uint32_t processor_id[2];
                     87:     uint8_t processor_version_str;
                     88:     uint8_t voltage;
                     89:     uint16_t external_clock;
                     90:     uint16_t max_speed;
                     91:     uint16_t current_speed;
                     92:     uint8_t status;
                     93:     uint8_t processor_upgrade;
                     94:     uint16_t l1_cache_handle;
                     95:     uint16_t l2_cache_handle;
                     96:     uint16_t l3_cache_handle;
                     97: } __attribute__((__packed__));
                     98: 
                     99: /* SMBIOS type 16 - Physical Memory Array
                    100:  *   Associated with one type 17 (Memory Device).
                    101:  */
                    102: struct smbios_type_16 {
                    103:     struct smbios_structure_header header;
                    104:     uint8_t location;
                    105:     uint8_t use;
                    106:     uint8_t error_correction;
                    107:     uint32_t maximum_capacity;
                    108:     uint16_t memory_error_information_handle;
                    109:     uint16_t number_of_memory_devices;
                    110: } __attribute__((__packed__));
                    111: /* SMBIOS type 17 - Memory Device
                    112:  *   Associated with one type 19
                    113:  */
                    114: struct smbios_type_17 {
                    115:     struct smbios_structure_header header;
                    116:     uint16_t physical_memory_array_handle;
                    117:     uint16_t memory_error_information_handle;
                    118:     uint16_t total_width;
                    119:     uint16_t data_width;
                    120:     uint16_t size;
                    121:     uint8_t form_factor;
                    122:     uint8_t device_set;
                    123:     uint8_t device_locator_str;
                    124:     uint8_t bank_locator_str;
                    125:     uint8_t memory_type;
                    126:     uint16_t type_detail;
                    127: } __attribute__((__packed__));
                    128: 
                    129: /* SMBIOS type 19 - Memory Array Mapped Address */
                    130: struct smbios_type_19 {
                    131:     struct smbios_structure_header header;
                    132:     uint32_t starting_address;
                    133:     uint32_t ending_address;
                    134:     uint16_t memory_array_handle;
                    135:     uint8_t partition_width;
                    136: } __attribute__((__packed__));
                    137: 
                    138: /* SMBIOS type 20 - Memory Device Mapped Address */
                    139: struct smbios_type_20 {
                    140:     struct smbios_structure_header header;
                    141:     uint32_t starting_address;
                    142:     uint32_t ending_address;
                    143:     uint16_t memory_device_handle;
                    144:     uint16_t memory_array_mapped_address_handle;
                    145:     uint8_t partition_row_position;
                    146:     uint8_t interleave_position;
                    147:     uint8_t interleaved_data_depth;
                    148: } __attribute__((__packed__));
                    149: 
                    150: /* SMBIOS type 32 - System Boot Information */
                    151: struct smbios_type_32 {
                    152:     struct smbios_structure_header header;
                    153:     uint8_t reserved[6];
                    154:     uint8_t boot_status;
                    155: } __attribute__((__packed__));
                    156: 
                    157: /* SMBIOS type 127 -- End-of-table */
                    158: struct smbios_type_127 {
                    159:     struct smbios_structure_header header;
                    160: } __attribute__((__packed__));
                    161: 
                    162: #endif /*QEMU_SMBIOS_H */

unix.superglobalmegacorp.com