25#ifndef LAZYBIOS_SHARED_API_H
26#define LAZYBIOS_SHARED_API_H
77#if defined(_WIN32) && !defined(LAZYBIOS_STATIC)
78# if defined(lazybios_EXPORTS)
79# define LAZYBIOS_DATA __declspec(dllexport)
81# define LAZYBIOS_DATA __declspec(dllimport)
90#define LAZYBIOS_MAJOR 3
92#define LAZYBIOS_MINOR 0
94#define LAZYBIOS_PATCH 0
122#define LAZYBIOS_FIELD_STATUS(structure, field) ((structure)->field_status.field)
132#if defined(__GNUC__) || defined(__clang__)
139# define LAZYBIOS_WARN_UNUSED __attribute__((warn_unused_result))
140#elif defined(_MSC_VER)
147# define LAZYBIOS_WARN_UNUSED _Check_return_
150# define LAZYBIOS_WARN_UNUSED
218typedef struct lazybiosDMI {
262#ifndef LAZYBIOS_TYPE_HEADER_ONLY
Public API for Dell BIOS Flags (Dell OEM SMBIOS Type 177).
Public API for Dell Indexed I/O Access (Dell OEM SMBIOS Type 212).
Public API for Dell Token Interface (Dell OEM SMBIOS Type 218).
#define LAZYBIOS_DATA
Complete lazybios semantic version string.
LAZYBIOS_DATA const char lazybiosVersion[]
LAZYBIOS_WARN_UNUSED int lazybiosInit(lazybiosCTX_t *ctx, const char *entry_point, const char *DMI_BIN)
Loads SMBIOS data from the host system or from captured table files.
LAZYBIOS_WARN_UNUSED lazybiosCTX_t * lazybiosCTXNew(void)
Allocates and initializes a lazybios context.
lazybiosBackend_t
Selects the platform backend used to obtain SMBIOS data.
int lazybiosCleanup(lazybiosCTX_t *ctx)
Releases a context and all SMBIOS data owned by it.
@ LAZYBIOS_BACKEND_GENERIC
@ LAZYBIOS_BACKEND_NETBSD
@ LAZYBIOS_BACKEND_OPENBSD
@ LAZYBIOS_BACKEND_REACTOS
@ LAZYBIOS_BACKEND_WINDOWS
@ LAZYBIOS_BACKEND_FREEBSD
@ LAZYBIOS_BACKEND_DRAGONFLY
@ LAZYBIOS_BACKEND_UNKNOWN
lazybiosSMBIOSVersionTag
Identifies the SMBIOS entry point layout stored in a DMI container.
int lazybiosIsVersionPlus(const lazybiosDMI_t *DMIData, uint8_t required_major, uint8_t required_minor)
Tests whether the parsed SMBIOS version meets a minimum version.
LAZYBIOS_WARN_UNUSED int lazybiosParseAll(lazybiosCTX_t *ctx)
Parses every implemented structure type into the context.
lazybiosFieldStatusValue_t
Describes whether a parsed SMBIOS field was available and valid.
@ LAZYBIOS_FIELD_UNREACHABLE
Public API for HPE ProLiant System/Rack Locator (HP OEM SMBIOS Type 204).
uint8_t lazybiosFieldStatus_t
Storage for one field's availability.
#define LAZYBIOS_WARN_UNUSED
Expands to nothing on compilers without a return-value check.
cJSON serialization API for parsed SMBIOS structures.
Top-level lazybios context containing raw and parsed SMBIOS data.
lazybiosType29Array_t * Type29
lazybiosType21Array_t * Type21
lazybiosType6Array_t * Type6
lazybiosType8Array_t * Type8
lazybiosType25Array_t * Type25
lazybiosType2Array_t * Type2
lazybiosType13Array_t * Type13
lazybiosType31Array_t * Type31
lazybiosType4Array_t * Type4
lazybiosType26Array_t * Type26
lazybiosType19Array_t * Type19
lazybiosType34Array_t * Type34
lazybiosType22Array_t * Type22
lazybiosType5Array_t * Type5
lazybiosType42Array_t * Type42
lazybiosType7Array_t * Type7
lazybiosType40Array_t * Type40
lazybiosType11Array_t * Type11
lazybiosType1Array_t * Type1
lazybiosType12Array_t * Type12
lazybiosType28Array_t * Type28
lazybiosType10Array_t * Type10
lazybiosType45Array_t * Type45
lazybiosType33Array_t * Type33
lazybiosType3Array_t * Type3
lazybiosType39Array_t * Type39
lazybiosType20Array_t * Type20
lazybiosType14Array_t * Type14
lazybiosType15Array_t * Type15
lazybiosType43Array_t * Type43
lazybiosType46Array_t * Type46
lazybiosType38Array_t * Type38
lazybiosType17Array_t * Type17
lazybiosType27Array_t * Type27
lazybiosType23Array_t * Type23
lazybiosType35Array_t * Type35
lazybiosType0Array_t * Type0
lazybiosType24Array_t * Type24
lazybiosType32Array_t * Type32
lazybiosType41Array_t * Type41
lazybiosType37Array_t * Type37
lazybiosType18Array_t * Type18
lazybiosType36Array_t * Type36
lazybiosType30Array_t * Type30
lazybiosType16Array_t * Type16
lazybiosBackend_t backend
lazybiosType44Array_t * Type44
lazybiosType9Array_t * Type9
Owns raw DMI table data and its parsed SMBIOS entry point.
lazybiosTypeIndex_t index[256]
lazybiosSMBIOSVersionTag entry_tag
A parsed set of Dell OEM Type 177 structures.
A parsed set of Dell OEM Type 212 structures.
A parsed set of Dell OEM Type 218 structures.
Dell OEM structures held by a context.
lazybiosOemDellType218Array_t * Type218
Dell OEM Type 218 structures.
lazybiosOemDellType177Array_t * Type177
Dell OEM Type 177 structures.
lazybiosOemDellType212Array_t * Type212
Dell OEM Type 212 structures.
A parsed set of Hp OEM Type 204 structures.
HP OEM structures held by a context.
lazybiosOemHpType204Array_t * Type204
HP OEM Type 204 structures.
Vendor-specific structures held by a context.
Raw SMBIOS 2.x entry point layout.
uint8_t formatted_area[5]
uint16_t maximum_structure_size
uint32_t structure_table_address
uint8_t entry_point_length
uint8_t entry_point_revision
uint8_t intermediate_checksum
uint16_t structure_table_length
uint8_t intermediate_anchor[5]
Raw SMBIOS 3.x entry point layout.
uint64_t structure_table_address
uint8_t entry_point_length
uint32_t structure_table_max_size
uint8_t entry_point_revision
A parsed set of SMBIOS Type 0 structures.
A parsed set of SMBIOS Type 10 structures.
A parsed set of SMBIOS Type 11 structures.
A parsed set of SMBIOS Type 12 structures.
A parsed set of SMBIOS Type 13 structures.
A parsed set of SMBIOS Type 14 structures.
A parsed set of SMBIOS Type 15 structures.
A parsed set of SMBIOS Type 16 structures.
A parsed set of SMBIOS Type 17 structures.
A parsed set of SMBIOS Type 18 structures.
A parsed set of SMBIOS Type 19 structures.
A parsed set of SMBIOS Type 1 structures.
A parsed set of SMBIOS Type 20 structures.
A parsed set of SMBIOS Type 21 structures.
A parsed set of SMBIOS Type 22 structures.
A parsed set of SMBIOS Type 23 structures.
A parsed set of SMBIOS Type 24 structures.
A parsed set of SMBIOS Type 25 structures.
A parsed set of SMBIOS Type 26 structures.
A parsed set of SMBIOS Type 27 structures.
A parsed set of SMBIOS Type 28 structures.
A parsed set of SMBIOS Type 29 structures.
A parsed set of SMBIOS Type 2 structures.
A parsed set of SMBIOS Type 30 structures.
A parsed set of SMBIOS Type 31 structures.
A parsed set of SMBIOS Type 32 structures.
A parsed set of SMBIOS Type 33 structures.
A parsed set of SMBIOS Type 34 structures.
A parsed set of SMBIOS Type 35 structures.
A parsed set of SMBIOS Type 36 structures.
A parsed set of SMBIOS Type 37 structures.
A parsed set of SMBIOS Type 38 structures.
A parsed set of SMBIOS Type 39 structures.
A parsed set of SMBIOS Type 3 structures.
A parsed set of SMBIOS Type 40 structures.
A parsed set of SMBIOS Type 41 structures.
A parsed set of SMBIOS Type 42 structures.
A parsed set of SMBIOS Type 43 structures.
A parsed set of SMBIOS Type 44 structures.
A parsed set of SMBIOS Type 45 structures.
A parsed set of SMBIOS Type 46 structures.
A parsed set of SMBIOS Type 4 structures.
A parsed set of SMBIOS Type 5 structures.
A parsed set of SMBIOS Type 6 structures.
A parsed set of SMBIOS Type 7 structures.
A parsed set of SMBIOS Type 8 structures.
A parsed set of SMBIOS Type 9 structures.
Cached location and population count for one SMBIOS structure type.
Public API for SMBIOS Type 0 BIOS Information.
Public API for obsolete SMBIOS Type 10 On Board Devices Information.
Public API for SMBIOS Type 11 OEM Strings.
Public API for SMBIOS Type 12 System Configuration Options.
Public API for SMBIOS Type 13 Firmware Language Information.
Public API for SMBIOS Type 14 Group Associations.
Public API for SMBIOS Type 15 System Event Log Information.
Public API for SMBIOS Type 16 Physical Memory Array Information.
Public API for SMBIOS Type 17 Memory Device Information.
Public API for SMBIOS Type 18 32-Bit Memory Error Information.
Public API for SMBIOS Type 19 Memory Array Mapped Address.
Public API for SMBIOS Type 1 System Information.
Public API for SMBIOS Type 20 Memory Device Mapped Address.
Public API for SMBIOS Type 21 Built-in Pointing Device.
Public API for SMBIOS Type 22 Portable Battery.
Public API for SMBIOS Type 23 System Reset.
Public API for SMBIOS Type 24 Hardware Security.
Public API for SMBIOS Type 25 System Power Controls.
Public API for SMBIOS Type 26 Voltage Probe.
Public API for SMBIOS Type 27 Cooling Device.
Public API for SMBIOS Type 28 Temperature Probe.
Public API for SMBIOS Type 29 Electrical Current Probe.
Public API for SMBIOS Type 2 Baseboard Information.
Public API for SMBIOS Type 30 Out-of-Band Remote Access.
Public API for SMBIOS Type 31 Boot Integrity Services Entry Point.
Public API for SMBIOS Type 32 System Boot Information.
Public API for SMBIOS Type 33 64-Bit Memory Error Information.
Public API for SMBIOS Type 34 Management Device.
Public API for SMBIOS Type 35 Management Device Component.
Public API for SMBIOS Type 36 Management Device Threshold Data.
Public API for SMBIOS Type 37 Memory Channel.
Public API for SMBIOS Type 38 IPMI Device Information.
Public API for SMBIOS Type 39 System Power Supply.
Public API for SMBIOS Type 3 Chassis Information.
Public API for SMBIOS Type 40 Additional Information.
Public API for SMBIOS Type 41 Onboard Devices Extended Information.
Public API for SMBIOS Type 42 Management Controller Host Interface.
Public API for SMBIOS Type 43 TPM Device.
Public API for SMBIOS Type 44 Processor Additional Information.
Public API for SMBIOS Type 45 Firmware Inventory Information.
Public API for SMBIOS Type 46 String Property.
Public API for SMBIOS Type 4 Processor Information.
Public API for obsolete SMBIOS Type 5 Memory Controller Information.
Public API for obsolete SMBIOS Type 6 Memory Module Information.
Public API for SMBIOS Type 7 Cache Information.
Public API for SMBIOS Type 8 Port Connector Information.
Public API for SMBIOS Type 9 System Slots.
lazybiosSMBIOS2Entry * v2
lazybiosSMBIOS3Entry * v3