Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
smbios.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SMBIOS::Size< T >
 
struct  SMBIOS::Handle
 
struct  SMBIOS::Header
 
struct  SMBIOS::Structures
 

Namespaces

namespace  SMBIOS
 

Macros

#define ENUMERATIONS
 
#define STRUCTURES
 
#define State_ENUMERATORS
 
#define ECC_ENUMERATORS
 
#define BiosFlags_ENUMERATORS
 
#define BiosFlags1_ENUMERATORS
 
#define BiosFlags2_ENUMERATORS
 
#define Bios_FIELDS
 
#define SystemWakeUpType_ENUMERATORS
 
#define System_FIELDS
 
#define BaseboardFlags_ENUMERATORS
 
#define BaseboardType_ENUMERATORS
 
#define Baseboard_FIELDS
 
#define ChassisType_ENUMERATORS
 
#define ChassisSecurityStatus_ENUMERATORS
 
#define Chassis_FIELDS
 
#define ProcessorType_ENUMERATORS
 
#define ProcessorStatus_ENUMERATORS
 
#define ProcessorUpgrade_ENUMERATORS
 
#define ProcessorFlags_ENUMERATORS
 
#define Processor_FIELDS
 
#define CacheMode_ENUMERATORS
 
#define CacheLocation_ENUMERATORS
 
#define CacheConfigurationFlags_ENUMERATORS
 
#define CacheFlags_ENUMERATORS
 
#define CacheType_ENUMERATORS
 
#define CacheAssociativity_ENUMERATORS
 
#define Cache_FIELDS
 
#define PortConnectorType_ENUMERATORS
 
#define PortType_ENUMERATORS
 
#define PortConnector_FIELDS
 
#define SystemSlotType_ENUMERATORS
 
#define SystemSlotBusWidth_ENUMERATORS
 
#define SystemSlotUsage_ENUMERATORS
 
#define SystemSlotLength_ENUMERATORS
 
#define SystemSlotFlags1_ENUMERATORS
 
#define SystemSlotFlags2_ENUMERATORS
 
#define SystemSlot_FIELDS
 
#define OnBoardDeviceType_ENUMERATORS
 
#define OnBoardDevices_FIELDS
 
#define MemoryArrayLocation_ENUMERATORS
 
#define MemoryArrayUse_ENUMERATORS
 
#define MemoryArray_FIELDS
 
#define MemoryDeviceFormFactor_ENUMERATORS
 
#define MemoryDeviceType_ENUMERATORS
 
#define MemoryDeviceTypeFlags_ENUMERATORS
 
#define MemoryDevice_FIELDS
 
#define MemoryArrayMappedAddress_FIELDS
 
#define MemoryDeviceMappedAddress_FIELDS
 
#define PortableBatteryChemistry_ENUMERATORS
 
#define PortableBattery_FIELDS
 
#define VoltageProbeLocation_ENUMERATORS
 
#define VoltageProbe_FIELDS
 
#define CoolingDeviceType_ENUMERATORS
 
#define CoolingDevice_FIELDS
 
#define TemperatureProbeLocation_ENUMERATORS
 
#define TemperatureProbe_FIELDS
 
#define SystemBootStatus_ENUMERATORS
 
#define SystemBoot_FIELDS
 
#define ManagementDeviceType_ENUMERATORS
 
#define ManagementDeviceAddressType_ENUMERATORS
 
#define ManagementDevice_FIELDS
 
#define ManagementDeviceComponent_FIELDS
 
#define ManagementDeviceThreshold_FIELDS
 
#define SystemPowerSupplyCharacteristics_ENUMERATORS
 
#define SystemPowerSupplyType_ENUMERATORS
 
#define SystemPowerSupplyInputSwitching_ENUMERATORS
 
#define SystemPowerSupply_FIELDS
 
#define OnboardDevices2_FIELDS
 
#define ENUM(enumerator, value)   enumerator = value,
 
#define ENUMERATION(name, type)
 
#define FIELD(flags, type, name, units)   type name;
 
#define STRUCTURE(name, id)
 
#define STRUCTURE(name, id)   name* name##_;
 

Enumerations

enum  SMBIOS::FieldFlags { SMBIOS::F_DERIVED = 1 , SMBIOS::F_INTERNAL = 2 , SMBIOS::F_HEX = 4 }
 

Functions

const Structures * SMBIOS::GetStructures ()
 
std::string SMBIOS::StringizeStructures (const Structures *structures)
 

Macro Definition Documentation

◆ Baseboard_FIELDS

#define Baseboard_FIELDS
Value:
FIELD(0, const char*, manufacturer, "")\
FIELD(0, const char*, product, "")\
FIELD(0, const char*, version, "")\
FIELD(0, const char*, serialNumber, "")\
FIELD(0, const char*, assetTag, "")\
FIELD(0, BaseboardFlags, flags, "")\
FIELD(0, const char*, location, "")\
FIELD(0, Handle, hChassis, "")\
FIELD(0, BaseboardType, type, "")\
/* omit subsequent fields because we can't handle the variable-length contained objects */
#define FIELD(flags, type, name, units)
Definition: smbios.h:1187

◆ BaseboardFlags_ENUMERATORS

#define BaseboardFlags_ENUMERATORS
Value:
ENUM(motherboard, 0x01)\
ENUM(requires_add_in, 0x02)\
ENUM(removable, 0x04)\
ENUM(replaceable, 0x08)\
ENUM(hot_swappable, 0x10)
#define ENUM(enumerator, value)
Definition: smbios.h:1168

◆ BaseboardType_ENUMERATORS

#define BaseboardType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(blade, 3)\
ENUM(connectivity_switch, 4)\
ENUM(system_management, 5)\
ENUM(processor, 6)\
ENUM(io, 7)\
ENUM(memory, 8)\
ENUM(daughter, 9)\
ENUM(motherboard, 10)\
ENUM(processor_memory, 11)\
ENUM(processor_io, 12)\
ENUM(interconnect, 13)
Definition: io.cpp:33

◆ Bios_FIELDS

#define Bios_FIELDS
Value:
FIELD(0, const char*, vendor, "")\
FIELD(0, const char*, version, "")\
FIELD(F_HEX, u16, startSegment, "")\
FIELD(0, const char*, releaseDate, "")\
FIELD(F_INTERNAL, u8, encodedSize, "")\
FIELD(0, BiosFlags, flags, "")\
FIELD(F_HEX, u32, vendorFlags, "")\
FIELD(0, BiosFlags1, flags1, "")\
FIELD(0, BiosFlags2, flags2, "")\
FIELD(F_DERIVED, Size<size_t>, size, "")
@ F_HEX
Definition: smbios.h:134
@ F_INTERNAL
Definition: smbios.h:131
@ F_DERIVED
Definition: smbios.h:127
static Vendors vendor
Definition: x86_x64.cpp:170
uint8_t u8
Definition: types.h:37
uint16_t u16
Definition: types.h:38
uint32_t u32
Definition: types.h:39

◆ BiosFlags1_ENUMERATORS

#define BiosFlags1_ENUMERATORS
Value:
ENUM(acpi, 0x01)\
ENUM(usb_legacy, 0x02)\
ENUM(agp, 0x04)\
ENUM(boot_i2o, 0x08)\
ENUM(boot_ls_120, 0x10)\
ENUM(boot_zip_drive, 0x20)\
ENUM(boot_1394, 0x40)\
ENUM(smart_battery, 0x80)

◆ BiosFlags2_ENUMERATORS

#define BiosFlags2_ENUMERATORS
Value:
ENUM(bios_boot, 0x01)\
ENUM(function_key_boot, 0x02)\
ENUM(targeted_content_distribution, 0x04)\
ENUM(uefi, 0x08)\
ENUM(virtual_machine, 0x10)

◆ BiosFlags_ENUMERATORS

#define BiosFlags_ENUMERATORS
Value:
ENUM(isa, 0x10)\
ENUM(mca, 0x20)\
ENUM(eisa, 0x40)\
ENUM(pci, 0x80)\
ENUM(pcmcia, 0x100)\
ENUM(plug_and_play, 0x200)\
ENUM(apm, 0x400)\
ENUM(upgradable, 0x800)\
ENUM(shadowing, 0x1000)\
ENUM(vl_vesa, 0x2000)\
ENUM(escd, 0x4000)\
ENUM(boot_cd, 0x8000)\
ENUM(selectable_boot, 0x10000)\
ENUM(socketed_rom, 0x20000)\
ENUM(boot_pcmcia, 0x40000)\
ENUM(edd, 0x80000)\
ENUM(int13a, 0x100000)\
ENUM(int13b, 0x200000)\
ENUM(int13c, 0x400000)\
ENUM(int13d, 0x800000)\
ENUM(int13e, 0x1000000)\
ENUM(int13f, 0x2000000)\
ENUM(int5, 0x4000000)\
ENUM(int9, 0x8000000)\
ENUM(int14, 0x10000000)\
ENUM(int17, 0x20000000)\
ENUM(int10, 0x40000000)\
ENUM(pc_98, 0x80000000)

◆ Cache_FIELDS

#define Cache_FIELDS
Value:
FIELD(0, const char*, designation, "")\
FIELD(0, CacheConfigurationFlags, configuration, "")\
FIELD(F_INTERNAL, u16, maxSize16, "")\
FIELD(F_INTERNAL, u16, installedSize16, "")\
FIELD(0, CacheFlags, supportedFlags, "")\
FIELD(0, CacheFlags, currentFlags, "")\
FIELD(0, u8, speed, " ns")\
FIELD(0, ECC, ecc, "")\
FIELD(0, CacheType, type, "")\
FIELD(0, CacheAssociativity, m_Associativity, "")\
FIELD(F_DERIVED, size_t, level, "") /* 1..8 */\
FIELD(F_DERIVED, CacheLocation, location, "")\
FIELD(F_DERIVED, CacheMode, mode, "")\
FIELD(F_DERIVED, Size<u64>, maxSize, "")\
FIELD(F_DERIVED, Size<u64>, installedSize, "")

◆ CacheAssociativity_ENUMERATORS

#define CacheAssociativity_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(direct_mapped, 3)\
ENUM(A2, 4)\
ENUM(A4, 5)\
ENUM(full, 6)\
ENUM(A8, 7)\
ENUM(A16, 8)\
ENUM(A12, 9)\
ENUM(A24, 10)\
ENUM(A32, 11)\
ENUM(A48, 12)\
ENUM(A64, 13)\
ENUM(A20, 14)

◆ CacheConfigurationFlags_ENUMERATORS

#define CacheConfigurationFlags_ENUMERATORS
Value:
ENUM(socketed, 0x08)\
ENUM(enabled, 0x80)

◆ CacheFlags_ENUMERATORS

#define CacheFlags_ENUMERATORS
Value:
ENUM(other, 0x01)\
ENUM(unknown, 0x02)\
ENUM(non_burst, 0x04)\
ENUM(burst, 0x08)\
ENUM(pipeline_burst, 0x10)\
ENUM(synchronous, 0x20)\
ENUM(asynchronous, 0x40)

◆ CacheLocation_ENUMERATORS

#define CacheLocation_ENUMERATORS
Value:
ENUM(internal, 0)\
ENUM(external, 1)\
ENUM(reserved, 2)\
ENUM(unknown, 3)

◆ CacheMode_ENUMERATORS

#define CacheMode_ENUMERATORS
Value:
ENUM(write_through, 0)\
ENUM(write_back, 1)\
ENUM(varies, 2)\
ENUM(unknown, 3)

◆ CacheType_ENUMERATORS

#define CacheType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(instruction, 3)\
ENUM(data, 4)\
ENUM(unified, 5)
static bool unified[UNIFIED_LAST - UNIFIED_SHIFT]
Definition: Hotkey.cpp:31

◆ Chassis_FIELDS

#define Chassis_FIELDS
Value:
FIELD(0, const char*, manufacturer, "")\
FIELD(0, ChassisType, type, "")\
FIELD(0, const char*, version, "")\
FIELD(0, const char*, serialNumber, "")\
FIELD(0, const char*, assetTag, "")\
FIELD(0, State, state, "")\
FIELD(0, State, powerState, "")\
FIELD(0, State, thermalState, "")\
FIELD(0, ChassisSecurityStatus, securityStatus, "")\
FIELD(0, u32, oemDefined, "")\
FIELD(0, u8, height, "U")\
FIELD(0, u8, numPowerCords, "")\
/* omit subsequent fields because we can't handle the variable-length contained objects */
static enum @29 state

◆ ChassisSecurityStatus_ENUMERATORS

#define ChassisSecurityStatus_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(none, 3)\
ENUM(external_interface_locked, 4)\
ENUM(external_interface_enabled, 5)

◆ ChassisType_ENUMERATORS

#define ChassisType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(desktop, 3)\
ENUM(low_profile_desktop, 4)\
ENUM(pizza_box, 5)\
ENUM(mini_tower, 6)\
ENUM(tower, 7)\
ENUM(portable, 8)\
ENUM(laptop, 9)\
ENUM(notebook, 10)\
ENUM(handheld, 11)\
ENUM(docking_station, 12)\
ENUM(all_in_one, 13)\
ENUM(subnotebook, 14)\
ENUM(space_saving, 15)\
ENUM(lunchbox, 16)\
ENUM(main_server, 17)\
ENUM(expansion, 18)\
ENUM(sub, 19)\
ENUM(bus_expansion, 20)\
ENUM(peripheral, 21)\
ENUM(raid, 22)\
ENUM(rack_mount, 23)\
ENUM(sealed_case, 24)\
ENUM(multi_system, 25)\
ENUM(compact_pci, 26)\
ENUM(advanced_tca, 27)\
ENUM(blade, 28)\
ENUM(blade_enclosure, 29)

◆ CoolingDevice_FIELDS

#define CoolingDevice_FIELDS
Value:
FIELD(0, Handle, hTemperatureProbe, "")\
FIELD(F_INTERNAL, u8, typeAndStatus, "")\
FIELD(0, u8, group, "")\
FIELD(0, u32, oemDefined, "")\
FIELD(0, u16, nominalSpeed, " rpm")\
FIELD(0, const char*, description, "")\
FIELD(F_DERIVED, CoolingDeviceType, type, "")\
FIELD(F_DERIVED, State, status, "")

◆ CoolingDeviceType_ENUMERATORS

#define CoolingDeviceType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(fan, 3)\
ENUM(centrifugal_blower, 4)\
ENUM(chip_fan, 5)\
ENUM(cabinet_fan, 6)\
ENUM(power_supply_fan, 7)\
ENUM(heat_pipe, 8)\
ENUM(integrated_refrigeration, 9)\
ENUM(active_cooling, 16)\
ENUM(passive_cooling, 17)

◆ ECC_ENUMERATORS

#define ECC_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(none, 3)\
ENUM(parity, 4)\
ENUM(single_bit, 5)\
ENUM(multiple_bit, 6)\
ENUM(crc, 7)

◆ ENUM

#define ENUM (   enumerator,
  value 
)    enumerator = value,

◆ ENUMERATION

#define ENUMERATION (   name,
  type 
)
Value:
struct name\
{\
/* (determines how much data to read from SMBIOS) */\
typedef type T;\
name(): value((Enum)0) {}\
name(size_t num): value((Enum)num) {}\
/* (the existence of this member type indicates the field is an enum) */\
enum Enum { name##_ENUMERATORS sentinel } value;\
/* (allows generic Field comparison against numeric_limits) */\
operator size_t() const { return value; }\
};
#define T(string_literal)
Definition: secure_crt.cpp:77

◆ ENUMERATIONS

#define ENUMERATIONS

◆ FIELD

#define FIELD (   flags,
  type,
  name,
  units 
)    type name;

◆ ManagementDevice_FIELDS

#define ManagementDevice_FIELDS
Value:
FIELD(0, const char*, description, "")\
FIELD(0, ManagementDeviceType, type, "")\
FIELD(0, u32, address, "")\
FIELD(0, ManagementDeviceAddressType, addressType, "")

◆ ManagementDeviceAddressType_ENUMERATORS

#define ManagementDeviceAddressType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(port, 3)\
ENUM(memory, 4)\
ENUM(smbus, 5)

◆ ManagementDeviceComponent_FIELDS

#define ManagementDeviceComponent_FIELDS
Value:
FIELD(0, const char*, description, "")\
FIELD(0, Handle, hDevice, "")\
FIELD(0, Handle, hComponent, "")\
FIELD(0, Handle, hThreshold, "")

◆ ManagementDeviceThreshold_FIELDS

#define ManagementDeviceThreshold_FIELDS
Value:
FIELD(0, i16, nonCriticalLo, "")\
FIELD(0, i16, nonCriticalHi, "")\
FIELD(0, i16, criticalLo, "")\
FIELD(0, i16, criticalHi, "")\
FIELD(0, i16, nonrecoverableLo, "")\
FIELD(0, i16, nonrecoverableHi, "")
int16_t i16
Definition: types.h:33

◆ ManagementDeviceType_ENUMERATORS

#define ManagementDeviceType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(LM75, 3)\
ENUM(LM78, 4)\
ENUM(LM79, 5)\
ENUM(LM80, 6)\
ENUM(LM81, 7)\
ENUM(ADM9240, 8)\
ENUM(DS1780, 9)\
ENUM(M1617, 0xA)\
ENUM(GL518SM, 0xB)\
ENUM(W83781D, 0xC)\
ENUM(HT82H791, 0xD)\

◆ MemoryArray_FIELDS

#define MemoryArray_FIELDS
Value:
FIELD(0, MemoryArrayLocation, location, "")\
FIELD(0, MemoryArrayUse, use, "")\
FIELD(0, ECC, ecc, "")\
FIELD(F_INTERNAL, u32, maxCapacity32, "")\
FIELD(0, Handle, hError, "")\
FIELD(0, u16, numDevices, "")\
FIELD(0, Size<u64>, maxCapacity, "")

◆ MemoryArrayLocation_ENUMERATORS

#define MemoryArrayLocation_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(motherboard, 3)\
ENUM(isa_addon, 4)\
ENUM(eisa_addon, 5)\
ENUM(pci_addon, 6)\
ENUM(mca_addon, 7)\
ENUM(pcmcia_addon, 8)\
ENUM(proprietary_addon, 9)\
ENUM(nubus, 10)\
ENUM(pc_98_c20, 160)\
ENUM(pc_98_c24, 161)\
ENUM(pc_98_e, 162)\
ENUM(pc_98_local_bus, 163)

◆ MemoryArrayMappedAddress_FIELDS

#define MemoryArrayMappedAddress_FIELDS
Value:
FIELD(F_INTERNAL, u32, startAddress32, "")\
FIELD(F_INTERNAL, u32, endAddress32, "")\
FIELD(0, Handle, hMemoryArray, "")\
FIELD(0, u8, partitionWidth, "")\
FIELD(F_HEX, u64, startAddress, "")\
FIELD(F_HEX, u64, endAddress, "")
uint64_t u64
Definition: types.h:40

◆ MemoryArrayUse_ENUMERATORS

#define MemoryArrayUse_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(system, 3)\
ENUM(video, 4)\
ENUM(flash, 5)\
ENUM(nvram, 6)\
ENUM(cache, 7)

◆ MemoryDevice_FIELDS

#define MemoryDevice_FIELDS
Value:
FIELD(0, Handle, hMemoryArray, "")\
FIELD(0, Handle, hError, "")\
FIELD(0, u16, totalWidth, " bits")\
FIELD(0, u16, dataWidth, " bits")\
FIELD(F_INTERNAL, u16, size16, "")\
FIELD(0, MemoryDeviceFormFactor, formFactor, "")\
FIELD(0, u8, deviceSet, "")\
FIELD(0, const char*, locator, "")\
FIELD(0, const char*, bank, "")\
FIELD(0, MemoryDeviceType, type, "")\
FIELD(0, MemoryDeviceTypeFlags, typeFlags, "")\
FIELD(0, u16, speed, " MHz")\
FIELD(0, const char*, manufacturer, "")\
FIELD(0, const char*, serialNumber, "")\
FIELD(0, const char*, assetTag, "")\
FIELD(0, const char*, partNumber, "")\
FIELD(F_INTERNAL, u8, attributes, "")\
FIELD(F_INTERNAL, u32, size32, "")\
FIELD(0, u16, configuredSpeed, " MHz")\
FIELD(F_DERIVED, Size<u64>, size, "")\
FIELD(F_DERIVED, u8, rank, "")\

◆ MemoryDeviceFormFactor_ENUMERATORS

#define MemoryDeviceFormFactor_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(SIMM, 3)\
ENUM(SIP, 4)\
ENUM(chip, 5)\
ENUM(DIP, 6)\
ENUM(ZIP, 7)\
ENUM(proprietary_card, 8)\
ENUM(DIMM, 9)\
ENUM(TSOP, 10)\
ENUM(row_of_chips, 11)\
ENUM(RIMM, 12)\
ENUM(SODIMM, 13)\
ENUM(SRIMM, 14)\
ENUM(FBDIMM, 15)

◆ MemoryDeviceMappedAddress_FIELDS

#define MemoryDeviceMappedAddress_FIELDS
Value:
FIELD(F_INTERNAL, u32, startAddress32, "")\
FIELD(F_INTERNAL, u32, endAddress32, "")\
FIELD(0, Handle, hMemoryDevice, "")\
FIELD(0, Handle, hMemoryArrayMappedAddress, "")\
FIELD(0, u8, partitionRowPosition, "")\
FIELD(0, u8, interleavePosition, "")\
FIELD(0, u8, interleavedDataDepth, "")\
FIELD(F_HEX, u64, startAddress, "")\
FIELD(F_HEX, u64, endAddress, "")

◆ MemoryDeviceType_ENUMERATORS

#define MemoryDeviceType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(DRAM, 3)\
ENUM(EDRAM, 4)\
ENUM(VRAM, 5)\
ENUM(SRAM, 6)\
ENUM(RAM, 7)\
ENUM(ROM, 8)\
ENUM(FLASH, 9)\
ENUM(EEPROM, 10)\
ENUM(FEPROM, 11)\
ENUM(EPROM, 12)\
ENUM(CRRAM, 13)\
ENUM(_3DRAM, 14)\
ENUM(SDRAM, 15)\
ENUM(SGRAM, 16)\
ENUM(RDRAM, 17)\
ENUM(DDR, 18)\
ENUM(DDR2, 19)\
ENUM(DDR2_FBDIMM, 20)\
ENUM(DDR3, 24)\
ENUM(FBD2, 25)

◆ MemoryDeviceTypeFlags_ENUMERATORS

#define MemoryDeviceTypeFlags_ENUMERATORS
Value:
ENUM(other, 0x0002)\
ENUM(unknown, 0x0004)\
ENUM(fast_paged, 0x0008)\
ENUM(static_column, 0x0010)\
ENUM(pseudo_static, 0x0020)\
ENUM(rambus, 0x0040)\
ENUM(synchronous, 0x0080)\
ENUM(cmos, 0x0100)\
ENUM(edo, 0x0200)\
ENUM(window_dram, 0x0400)\
ENUM(cache_dram, 0x0800)\
ENUM(non_volatile, 0x1000)\
ENUM(buffered, 0x2000)\
ENUM(unbuffered, 0x4000)

◆ OnboardDevices2_FIELDS

#define OnboardDevices2_FIELDS
Value:
FIELD(0, const char*, referenceDesignation, "")\
FIELD(0, OnBoardDeviceType, type, "")\
FIELD(0, u8, instance, "")\
FIELD(0, u16, groupNumber, "")\
FIELD(0, u8, busNumber, "")\
FIELD(F_INTERNAL, u8, functionAndDeviceNumber, "")\
FIELD(F_DERIVED, bool, enabled, "")\
FIELD(F_DERIVED, u8, deviceNumber, "")\
FIELD(F_DERIVED, u8, functionNumber, "")\

◆ OnBoardDevices_FIELDS

#define OnBoardDevices_FIELDS
Value:
FIELD(0, OnBoardDeviceType, type, "")\
FIELD(0, const char*, description, "")\
FIELD(F_DERIVED, bool, enabled, "")\
/* NB: this structure could contain any number of type/description pairs, but Dell BIOS only provides 1 */

◆ OnBoardDeviceType_ENUMERATORS

#define OnBoardDeviceType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(video, 3)\
ENUM(scsi_controller, 4)\
ENUM(ethernet, 5)\
ENUM(token_ring, 6)\
ENUM(sound, 7)\
ENUM(pata_controller, 8)\
ENUM(sata_controller, 9)\
ENUM(sas_controller, 10)

◆ PortableBattery_FIELDS

#define PortableBattery_FIELDS
Value:
FIELD(0, const char*, location, "")\
FIELD(0, const char*, manufacturer, "")\
FIELD(0, const char*, date, "")\
FIELD(0, const char*, serialNumber, "")\
FIELD(0, const char*, deviceName, "")\
FIELD(0, PortableBatteryChemistry, chemistry, "")\
FIELD(0, u16, capacity, " mWh")\
FIELD(0, u16, voltage, " mV")\
FIELD(0, const char*, sbdsVersion, "")\
FIELD(0, u8, maxError, "%")\
FIELD(0, u16, sbdsSerialNumber, "")\
FIELD(0, u16, sbdsDate, "")\
FIELD(0, const char*, sbdsChemistry, "")\
FIELD(0, u8, capacityMultiplier, "")\
FIELD(0, u32, oemSpecific, "")

◆ PortableBatteryChemistry_ENUMERATORS

#define PortableBatteryChemistry_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(lead_acid, 3)\
ENUM(nickel_cadmium, 4)\
ENUM(nickel_metal_hydride, 5)\
ENUM(lithium_ion, 6)\
ENUM(zinc_air, 7)\
ENUM(lithium_polymer, 8)

◆ PortConnector_FIELDS

#define PortConnector_FIELDS
Value:
FIELD(0, const char*, internalDesignator, "")\
FIELD(0, PortConnectorType, internalConnectorType, "")\
FIELD(0, const char*, externalDesignator, "")\
FIELD(0, PortConnectorType, externalConnectorType, "")\
FIELD(0, PortType, portType, "")

◆ PortConnectorType_ENUMERATORS

#define PortConnectorType_ENUMERATORS

◆ PortType_ENUMERATORS

#define PortType_ENUMERATORS

◆ Processor_FIELDS

#define Processor_FIELDS
Value:
FIELD(0, const char*, socket, "")\
FIELD(0, ProcessorType, type, "")\
FIELD(0, u8, m_Family, "") /* we don't bother providing enumerators for > 200 families */\
FIELD(0, const char*, manufacturer, "")\
FIELD(F_HEX, u64, id, "")\
FIELD(0, const char*, version, "")\
FIELD(0, u8, voltage, " dV")\
FIELD(0, u16, externalClockFrequency, " MHz")\
FIELD(0, u16, maxFrequency, " MHz")\
FIELD(0, u16, bootFrequency, " MHz")\
FIELD(0, ProcessorStatus, status, "")\
FIELD(0, ProcessorUpgrade, upgrade, "")\
FIELD(0, Handle, hL1, "")\
FIELD(0, Handle, hL2, "")\
FIELD(0, Handle, hL3, "")\
FIELD(0, const char*, serialNumber, "")\
FIELD(0, const char*, assetTag, "")\
FIELD(0, const char*, partNumber, "")\
FIELD(0, u8, coresPerPackage, "")\
FIELD(0, u8, enabledCores, "")\
FIELD(0, u8, logicalPerPackage, "")\
FIELD(0, ProcessorFlags, flags, "")\
FIELD(0, u16, family2, "")\
FIELD(F_DERIVED, bool, populated, "")
static size_t m_Family
Definition: x86_x64.cpp:212

◆ ProcessorFlags_ENUMERATORS

#define ProcessorFlags_ENUMERATORS
Value:
ENUM(unknown, 0x2)\
ENUM(x64, 0x4)\
ENUM(multi_core, 0x8)/* indicates cores are present, but they might be disabled*/\
ENUM(ht, 0x10)\
ENUM(execute_protection, 0x20)\
ENUM(enhanced_virtualization, 0x40)\
ENUM(power_control, 0x80)

◆ ProcessorStatus_ENUMERATORS

#define ProcessorStatus_ENUMERATORS
Value:
ENUM(unknown, 0)\
ENUM(other, 7)\
ENUM(enabled, 1)\
ENUM(user_disabled, 2)\
ENUM(post_disabled, 3)\
ENUM(idle, 4)

◆ ProcessorType_ENUMERATORS

#define ProcessorType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(CPU, 3)\
ENUM(FPU, 4)\
ENUM(DSP, 5)\
ENUM(GPU, 6)

◆ ProcessorUpgrade_ENUMERATORS

#define ProcessorUpgrade_ENUMERATORS

◆ State_ENUMERATORS

#define State_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(ok, 3)\
ENUM(noncritical, 4)\
ENUM(critical, 5)\
ENUM(nonrecoverable, 6)

◆ STRUCTURE [1/2]

#define STRUCTURE (   name,
  id 
)
Value:
struct name\
{\
/* (allows searching for a structure with a given handle) */\
Header header;\
/* (defines a linked list of instances of this structure type) */\
name* next;\
name##_FIELDS\
};

◆ STRUCTURE [2/2]

#define STRUCTURE (   name,
  id 
)    name* name##_;

◆ STRUCTURES

#define STRUCTURES
Value:
STRUCTURE(Bios, 0)\
STRUCTURE(System, 1)\
STRUCTURE(Baseboard, 2)\
STRUCTURE(Chassis, 3)\
STRUCTURE(Processor, 4)\
/* MemoryController (5) and MemoryModule (6) are obsolete */\
STRUCTURE(Cache, 7)\
STRUCTURE(PortConnector, 8)\
STRUCTURE(SystemSlot, 9)\
STRUCTURE(OnBoardDevices, 10)\
/* OemStrings (11), SystemConfiguration (12), BiosLanguage (13), GroupAssociations (14), SystemEventLog (15) are optional */\
STRUCTURE(MemoryArray, 16)\
STRUCTURE(MemoryDevice, 17)\
/* MemoryError32 (18) is optional */\
STRUCTURE(MemoryArrayMappedAddress, 19)\
STRUCTURE(MemoryDeviceMappedAddress, 20)\
/* PointingDevice (21) is optional */\
STRUCTURE(PortableBattery, 22)\
/* SystemReset (23), HardwareSecurity (24), SystemPowerControls (25) are optional */\
STRUCTURE(VoltageProbe, 26)\
STRUCTURE(CoolingDevice, 27)\
STRUCTURE(TemperatureProbe, 28)\
/* ElectricalCurrentProbe (29), OutOfBandRemoteAccess (30), BootIntegrityServices (31) are optional */\
STRUCTURE(SystemBoot, 32)\
STRUCTURE(ManagementDevice, 34)\
STRUCTURE(ManagementDeviceComponent, 35)\
STRUCTURE(ManagementDeviceThreshold, 36)\
STRUCTURE(SystemPowerSupply, 39)\
STRUCTURE(OnboardDevices2, 41)\
/* MemoryError64 (33), MemoryChannel (37), IpmiDevice (38) are optional */
Definition: cache_adt.h:650
#define STRUCTURE(name, id)
Definition: smbios.h:1204

◆ System_FIELDS

#define System_FIELDS
Value:
FIELD(0, const char*, manufacturer, "")\
FIELD(0, const char*, productName, "")\
FIELD(0, const char*, version, "")\
FIELD(0, const char*, serialNumber, "")\
FIELD(F_HEX, u64, uuid0, "")\
FIELD(F_HEX, u64, uuid1, "")\
FIELD(0, SystemWakeUpType, wakeUpType, "")\
FIELD(0, const char*, skuNumber, "")\
FIELD(0, const char*, m_Family, "")

◆ SystemBoot_FIELDS

#define SystemBoot_FIELDS
Value:
FIELD(F_INTERNAL, u32, reserved32, "")\
FIELD(F_INTERNAL, u16, reserved16, "")\
FIELD(0, SystemBootStatus, status, "")\

◆ SystemBootStatus_ENUMERATORS

#define SystemBootStatus_ENUMERATORS
Value:
ENUM(no_error, 0)\
ENUM(no_bootable_media, 1)\
ENUM(os_load_failed, 2)\
ENUM(hardware_failure_firmware, 3)\
ENUM(hardware_failure_os, 4)\
ENUM(user_requested_boot, 5)\
ENUM(security_violation, 6)\
ENUM(previously_requested_image, 7)\
ENUM(watchdog_expired, 8)

◆ SystemPowerSupply_FIELDS

#define SystemPowerSupply_FIELDS
Value:
FIELD(0, u8, group, "")\
FIELD(0, const char*, location, "")\
FIELD(0, const char*, deviceName, "")\
FIELD(0, const char*, manufacturer, "")\
FIELD(0, const char*, serialNumber, "")\
FIELD(0, const char*, assetTag, "")\
FIELD(0, const char*, partNumber, "")\
FIELD(0, const char*, revisionLevel, "")\
FIELD(0, i16, maxPower, " mW")\
FIELD(0, SystemPowerSupplyCharacteristics, characteristics, "")\
FIELD(0, Handle, hVoltageProbe, "")\
FIELD(0, Handle, hCoolingDevice, "")\
FIELD(0, Handle, hCurrentProbe, "")\
FIELD(F_DERIVED, SystemPowerSupplyType, type, "")\
FIELD(F_DERIVED, State, status, "")\
FIELD(F_DERIVED, SystemPowerSupplyInputSwitching, inputSwitching, "")\

◆ SystemPowerSupplyCharacteristics_ENUMERATORS

#define SystemPowerSupplyCharacteristics_ENUMERATORS
Value:
ENUM(hot_replaceable, 1)\
ENUM(present, 2)\
ENUM(unplugged, 4)

◆ SystemPowerSupplyInputSwitching_ENUMERATORS

#define SystemPowerSupplyInputSwitching_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(manual, 3)\
ENUM(auto_switch, 4)\
ENUM(wide_range, 5)\
ENUM(none, 6)

◆ SystemPowerSupplyType_ENUMERATORS

#define SystemPowerSupplyType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(linear, 3)\
ENUM(switching, 4)\
ENUM(battery, 5)\
ENUM(ups, 6)\
ENUM(converter, 7)\
ENUM(regulator, 8)

◆ SystemSlot_FIELDS

#define SystemSlot_FIELDS
Value:
FIELD(0, const char*, designation, "")\
FIELD(0, SystemSlotType, type, "")\
FIELD(0, SystemSlotBusWidth, busWidth, "")\
FIELD(0, SystemSlotUsage, usage, "")\
FIELD(0, SystemSlotLength, length, "")\
FIELD(0, u16, id, "")\
FIELD(0, SystemSlotFlags1, flags1, "")\
FIELD(0, SystemSlotFlags2, flags2, "")\
FIELD(0, u16, segmentGroupNumber, "")\
FIELD(0, u8, busNumber, "")\
FIELD(F_INTERNAL, u8, functionAndDeviceNumber, "")\
FIELD(F_DERIVED, u8, deviceNumber, "")\
FIELD(F_DERIVED, u8, functionNumber, "")

◆ SystemSlotBusWidth_ENUMERATORS

#define SystemSlotBusWidth_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(_8, 3)\
ENUM(_16, 4)\
ENUM(_32, 5)\
ENUM(_64, 6)\
ENUM(_128, 7)\
ENUM(x1, 8)\
ENUM(x2, 9)\
ENUM(x4, 10)\
ENUM(x8, 11)\
ENUM(x12, 12)\
ENUM(x16, 13)\
ENUM(x32, 14)
const Status _16
Definition: status.h:457
const Status _8
Definition: status.h:450

◆ SystemSlotFlags1_ENUMERATORS

#define SystemSlotFlags1_ENUMERATORS
Value:
ENUM(unknown, 0x1)\
ENUM(v5, 0x2)\
ENUM(v3_3, 0x4)\
ENUM(shared, 0x8)\
ENUM(pc_card_16, 0x10)\
ENUM(pc_cardbus, 0x20)\
ENUM(pc_zoom_video, 0x40)\
ENUM(pc_modem_ring_resume, 0x80)

◆ SystemSlotFlags2_ENUMERATORS

#define SystemSlotFlags2_ENUMERATORS
Value:
ENUM(pme, 0x1)\
ENUM(hot_plug, 0x2)\
ENUM(smbus, 0x4)\

◆ SystemSlotLength_ENUMERATORS

#define SystemSlotLength_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(_short, 3)\
ENUM(_long, 4)

◆ SystemSlotType_ENUMERATORS

#define SystemSlotType_ENUMERATORS

◆ SystemSlotUsage_ENUMERATORS

#define SystemSlotUsage_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(available, 3)\
ENUM(in_use, 4)

◆ SystemWakeUpType_ENUMERATORS

#define SystemWakeUpType_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(apm_timer, 3)\
ENUM(modem_ring, 4)\
ENUM(lan_remote, 5)\
ENUM(power_switch, 6)\
ENUM(pci_pme, 7)\
ENUM(ac_power_restored, 8)

◆ TemperatureProbe_FIELDS

#define TemperatureProbe_FIELDS
Value:
FIELD(0, const char*, description, "")\
FIELD(F_INTERNAL, u8, locationAndStatus, "")\
FIELD(0, i16, maxValue, " dDegC")\
FIELD(0, i16, minValue, " dDegC")\
FIELD(0, i16, resolution, " mDegC")\
FIELD(0, i16, tolerance, " dDegC")\
FIELD(0, i16, accuracy, " x 0.01%")\
FIELD(0, u32, oemDefined, "")\
FIELD(0, i16, nominalValue, " dDegC")\
FIELD(F_DERIVED, TemperatureProbeLocation, location, "")\
FIELD(F_DERIVED, State, status, "")
static double resolution
Definition: timer.cpp:79

◆ TemperatureProbeLocation_ENUMERATORS

#define TemperatureProbeLocation_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(processor, 3)\
ENUM(disk, 4)\
ENUM(peripheral_bay, 5)\
ENUM(system_management_module, 6)\
ENUM(motherboard, 7)\
ENUM(memory_module, 8)\
ENUM(processor_module, 9)\
ENUM(power_unit, 10)\
ENUM(add_in_card, 11)\
ENUM(front_panel_board, 12)\
ENUM(back_panel_board, 13)\
ENUM(power_system_board, 14)\
ENUM(drive_backplane, 15)

◆ VoltageProbe_FIELDS

#define VoltageProbe_FIELDS
Value:
FIELD(0, const char*, description, "")\
FIELD(F_INTERNAL, u8, locationAndStatus, "")\
FIELD(0, i16, maxValue, " mV")\
FIELD(0, i16, minValue, " mV")\
FIELD(0, i16, resolution, " x 0.1 mV")\
FIELD(0, i16, tolerance, " mV")\
FIELD(0, i16, accuracy, " x 0.01%")\
FIELD(0, u32, oemDefined, "")\
FIELD(0, i16, nominalValue, " mv")\
FIELD(F_DERIVED, VoltageProbeLocation, location, "")\
FIELD(F_DERIVED, State, status, "")

◆ VoltageProbeLocation_ENUMERATORS

#define VoltageProbeLocation_ENUMERATORS
Value:
ENUM(other, 1)\
ENUM(unknown, 2)\
ENUM(processor, 3)\
ENUM(disk, 4)\
ENUM(peripheral_bay, 5)\
ENUM(system_management_module, 6)\
ENUM(motherboard, 7)\
ENUM(memory_module, 8)\
ENUM(processor_module, 9)\
ENUM(power_unit, 10)\
ENUM(add_in_card, 11)