lazybios 3.0.0
Lightweight SMBIOS/DMI parsing library
Loading...
Searching...
No Matches
lazybios.h
Go to the documentation of this file.
1/*
2 * SPDX-License-Identifier: LGPL-2.1-or-later
3 *
4 * This file is part of lazybios.
5 *
6 * lazybios is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Lesser General Public License as published by
8 * the Free Software Foundation, either version 2.1 of the License, or
9 * (at your option) any later version.
10 *
11 * lazybios is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public License
17 * along with lazybios. If not, see <https://www.gnu.org/licenses/>.
18 */
19/**
20 * @file lazybios.h
21 * @brief Public API for lazybios. Include this and nothing else.
22 * @author LazySeldi
23 */
24
25#ifndef LAZYBIOS_SHARED_API_H
26#define LAZYBIOS_SHARED_API_H
27
28#include <stdint.h>
29#include <stddef.h>
30
31#ifdef __cplusplus
32extern "C" {
33#endif
34
35/** @brief Forward declaration of the top-level lazybios context. */
36typedef struct lazybiosCTX lazybiosCTX_t;
37
38/**
39 * @brief Selects the platform backend used to obtain SMBIOS data.
40 * @ingroup api_context
41 */
42typedef enum {
43 LAZYBIOS_BACKEND_LINUX, /**< Linux sysfs or physical-memory backend. */
44 LAZYBIOS_BACKEND_WINDOWS, /**< Windows firmware-table API backend. */
45 LAZYBIOS_BACKEND_MACOS, /**< macOS AppleSMBIOS I/O Registry backend. */
46 LAZYBIOS_BACKEND_OPENBSD, /**< OpenBSD dmesg-assisted physical-memory backend. */
47 LAZYBIOS_BACKEND_FREEBSD, /**< FreeBSD kenv-assisted physical-memory backend. */
48 LAZYBIOS_BACKEND_NETBSD, /**< NetBSD sysctl-assisted SMBIOS device backend. */
49 LAZYBIOS_BACKEND_SUNOS, /**< SunOS (Solaris/illumos) /dev/smbios snapshot with a physical-memory fallback. */
50 LAZYBIOS_BACKEND_DRAGONFLY, /**< DragonFly BSD kenv-assisted physical-memory backend. */
51 LAZYBIOS_BACKEND_HAIKU, /**< Haiku legacy physical-memory backend. */
52 LAZYBIOS_BACKEND_BEOS, /**< BeOS legacy physical-memory backend. */
53 LAZYBIOS_BACKEND_REACTOS, /**< ReactOS Win32 firmware-table API backend. */
54 LAZYBIOS_BACKEND_GENERIC, /**< Generic legacy physical-memory backend. */
55 LAZYBIOS_BACKEND_UNKNOWN, /**< No usable host backend was selected. */
56 /*
57 * Backends added after 3.0.0 are appended here rather than kept in
58 * platform order, because the values above are part of the released ABI
59 * and inserting before LAZYBIOS_BACKEND_UNKNOWN would renumber it for
60 * every consumer already built against that header.
61 */
62 LAZYBIOS_BACKEND_QNX, /**< QNX Neutrino mapped physical-memory backend. */
63 LAZYBIOS_BACKEND_MINIX /**< MINIX 3 legacy physical-memory backend. */
65
66/** @addtogroup api_constants
67 * @{
68 */
69
70/** @brief Complete lazybios semantic version string. */
71/*
72 * WINDOWS_EXPORT_ALL_SYMBOLS auto-exports functions but not data, so this one
73 * carries its own markup, and the two sides need different keywords: the DLL
74 * exports it, a consumer imports it. CMake defines lazybios_EXPORTS only while
75 * compiling the library itself, which is what tells the two apart.
76 */
77#if defined(_WIN32) && !defined(LAZYBIOS_STATIC)
78# if defined(lazybios_EXPORTS)
79# define LAZYBIOS_DATA __declspec(dllexport)
80# else
81# define LAZYBIOS_DATA __declspec(dllimport)
82# endif
83#else
84# define LAZYBIOS_DATA
85#endif
86
87LAZYBIOS_DATA extern const char lazybiosVersion[];
88
89/** @brief Major component of the lazybios version. */
90#define LAZYBIOS_MAJOR 3
91/** @brief Minor component of the lazybios version. */
92#define LAZYBIOS_MINOR 0
93/** @brief Patch component of the lazybios version. */
94#define LAZYBIOS_PATCH 0
95/** @} */
96
97/**
98 * @brief Describes whether a parsed SMBIOS field was available and valid.
99 * @ingroup api_parsing
100 */
101typedef enum {
102 LAZYBIOS_FIELD_ABSENT = 0, /**< The field exists in this SMBIOS version but is not populated by the vendor. */
103 LAZYBIOS_FIELD_PRESENT, /**< The field is encoded and contains valid data. */
104 LAZYBIOS_FIELD_UNREACHABLE /**< The field was added in a newer SMBIOS spec; structure is too short to contain it. */
106
107/**
108 * @brief Storage for one field's availability.
109 *
110 * Holds a ::lazybiosFieldStatusValue_t. C99 cannot give an enum a one-byte
111 * underlying type, and status metadata is roughly half the size of a parsed
112 * structure, so the value is stored as a byte and compared against the
113 * enumerators directly.
114 */
115typedef uint8_t lazybiosFieldStatus_t;
116
117/**
118 * @brief Returns the status associated with a parsed structure field.
119 * @param structure Non-NULL pointer to a parsed SMBIOS structure.
120 * @param field Public field name in the parsed structure.
121 */
122#define LAZYBIOS_FIELD_STATUS(structure, field) ((structure)->field_status.field)
123
124/*
125 * Compiler feature detection.
126 *
127 * Clang normally predefines __GNUC__, so the second test looks redundant, but
128 * clang-cl emulates the MSVC predefines instead while still accepting GNU
129 * attributes; without it that configuration would fall through to the SAL
130 * branch below.
131 */
132#if defined(__GNUC__) || defined(__clang__)
133/**
134 * @brief Marks a function whose return value must not be discarded.
135 *
136 * The getters return a newly allocated array and the loaders return a status
137 * code, so dropping either result leaks memory or hides a failed load.
138 */
139# define LAZYBIOS_WARN_UNUSED __attribute__((warn_unused_result))
140#elif defined(_MSC_VER)
141# include <sal.h>
142/**
143 * @brief Marks a function whose return value must not be discarded.
144 *
145 * Only used by the /analyze flag in the msvc compiler, because microsoft
146 */
147# define LAZYBIOS_WARN_UNUSED _Check_return_
148#else
149/** @brief Expands to nothing on compilers without a return-value check. */
150# define LAZYBIOS_WARN_UNUSED
151#endif
152
153/**
154 * @brief Raw SMBIOS 2.x entry point layout.
155 * @ingroup api_entry
156 */
173
174/**
175 * @brief Raw SMBIOS 3.x entry point layout.
176 * @ingroup api_entry
177 */
190
191/**
192 * @brief Cached location and population count for one SMBIOS structure type.
193 * @ingroup api_entry
194 *
195 * One entry per possible type byte. Both members are meaningful only while the
196 * containing @ref lazybiosDMI_t has a non-zero `index_valid`, and `first` only
197 * when `count` is greater than zero.
198 */
199typedef struct {
200 uint32_t count; /**< Number of structures of this type in the table. */
201 uint32_t first; /**< Byte offset of the first one, from the table start. */
203
204/**
205 * @brief Identifies the SMBIOS entry point layout stored in a DMI container.
206 * @ingroup api_entry
207 */
208typedef enum {
209 SMBIOS_VER_UNKNOWN = 0, /**< No supported entry point has been parsed. */
210 SMBIOS_VER_2X, /**< The SMBIOS 2.x entry point member is active. */
211 SMBIOS_VER_3X /**< The SMBIOS 3.x entry point member is active. */
213
214/**
215 * @brief Owns raw DMI table data and its parsed SMBIOS entry point.
216 * @ingroup api_entry
217 */
218typedef struct lazybiosDMI {
219 uint8_t* dmi_data;
220 size_t dmi_len;
221
222 /**
223 * Per-type location cache, built once when the table is loaded. A type
224 * byte is a single octet, so 256 entries cover every possible type.
225 * Without it, each parser had to walk the whole table just to size its
226 * result array, which dominated parse time.
227 */
229
230 /**
231 * Non-zero once @p index describes @p dmi_data. A zero-initialized or
232 * hand-assembled container leaves this clear, and the parsers fall back to
233 * walking the table, so the cache is an optimization rather than a
234 * precondition. Clear it if @p dmi_data is replaced.
235 */
237
238 uint8_t* entry_data;
239 size_t entry_len;
241 union {
244 } entry_union;
246
247/**
248 * @brief Tests whether the parsed SMBIOS version meets a minimum version.
249 *
250 * @param DMIData Raw DMI table container with a parsed SMBIOS entry point.
251 * @param required_major Required SMBIOS major version.
252 * @param required_minor Required SMBIOS minor version.
253 * @return Nonzero when the parsed version is equal to or newer than the required version; otherwise zero.
254 * @ingroup api_entry
255 */
256int lazybiosIsVersionPlus(const lazybiosDMI_t* DMIData, uint8_t required_major, uint8_t required_minor);
257
258#ifdef __cplusplus
259}
260#endif
261
262#ifndef LAZYBIOS_TYPE_HEADER_ONLY
315#endif
316
317#ifdef __cplusplus
318extern "C" {
319#endif
320
321/**
322 * @brief Dell OEM structures held by a context.
323 * @ingroup api_oem_types
324 */
330
331/**
332 * @brief HP OEM structures held by a context.
333 * @ingroup api_oem_types
334 */
338
339/**
340 * @brief Vendor-specific structures held by a context.
341 * @ingroup api_oem_types
342 *
343 * The vendor members are allocated by @ref lazybiosCTXNew and are never NULL.
344 * Only the per-type members inside them are NULL until parsed.
345 */
350
351/**
352 * @brief Top-level lazybios context containing raw and parsed SMBIOS data.
353 * @ingroup api_context
354 */
358
406
408
409};
410
411/**
412 * @brief Allocates and initializes a lazybios context.
413 * @ingroup api_context
414 * @return Newly allocated context, or NULL if allocation fails.
415 */
417
418/**
419 * @brief Loads SMBIOS data from the host system or from captured table files.
420 * @ingroup api_context
421 *
422 * The two path arguments select the input mode:
423 *
424 * | @p entry_point | @p DMI_BIN | Source |
425 * | :--- | :--- | :--- |
426 * | `NULL` | `NULL` | the host system, through the context's backend |
427 * | `NULL` | path | one merged file holding the entry point and table |
428 * | path | path | separate raw entry-point and DMI-table files |
429 *
430 * Supplying an entry point without a table is rejected, because the entry
431 * point alone describes nothing to parse.
432 *
433 * On success the context owns copies of both buffers and its type index is
434 * built. A failed load must not be followed by a structure getter; release the
435 * context with @ref lazybiosCleanup instead.
436 *
437 * @param ctx Context that receives the raw entry point and DMI table data.
438 * @param entry_point Path to a raw SMBIOS entry-point file, or NULL.
439 * @param DMI_BIN Path to a raw DMI table or merged dump file, or NULL for the host.
440 * @return 0 on success, or -1 on failure.
441 */
442LAZYBIOS_WARN_UNUSED int lazybiosInit(lazybiosCTX_t* ctx, const char* entry_point, const char* DMI_BIN);
443
444/**
445 * @brief Parses every implemented structure type into the context.
446 * @ingroup api_parsing
447 *
448 * Types already present in @p ctx are left untouched, so calling this more than
449 * once does not strand an earlier result set. A type the table does not contain
450 * still yields a valid empty set; a type whose parse fails is left NULL, so
451 * check each member before use as usual.
452 *
453 * @param ctx Context holding loaded SMBIOS data.
454 * @return 0 on success, or -1 if the context holds no usable DMI table.
455 */
457
458/**
459 * @brief Releases a context and all SMBIOS data owned by it.
460 * @ingroup api_context
461 * @param ctx Context to release.
462 * @return 0 on success, or -1 if ctx is NULL.
463 */
464int lazybiosCleanup(lazybiosCTX_t* ctx);
465
466#ifdef __cplusplus
467}
468#endif
469
470#endif
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.
Definition lazybios.h:84
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.
Definition lazybios.h:42
int lazybiosCleanup(lazybiosCTX_t *ctx)
Releases a context and all SMBIOS data owned by it.
@ LAZYBIOS_BACKEND_GENERIC
Definition lazybios.h:54
@ LAZYBIOS_BACKEND_QNX
Definition lazybios.h:62
@ LAZYBIOS_BACKEND_NETBSD
Definition lazybios.h:48
@ LAZYBIOS_BACKEND_OPENBSD
Definition lazybios.h:46
@ LAZYBIOS_BACKEND_LINUX
Definition lazybios.h:43
@ LAZYBIOS_BACKEND_HAIKU
Definition lazybios.h:51
@ LAZYBIOS_BACKEND_REACTOS
Definition lazybios.h:53
@ LAZYBIOS_BACKEND_MACOS
Definition lazybios.h:45
@ LAZYBIOS_BACKEND_WINDOWS
Definition lazybios.h:44
@ LAZYBIOS_BACKEND_BEOS
Definition lazybios.h:52
@ LAZYBIOS_BACKEND_FREEBSD
Definition lazybios.h:47
@ LAZYBIOS_BACKEND_MINIX
Definition lazybios.h:63
@ LAZYBIOS_BACKEND_DRAGONFLY
Definition lazybios.h:50
@ LAZYBIOS_BACKEND_SUNOS
Definition lazybios.h:49
@ LAZYBIOS_BACKEND_UNKNOWN
Definition lazybios.h:55
lazybiosSMBIOSVersionTag
Identifies the SMBIOS entry point layout stored in a DMI container.
Definition lazybios.h:208
int lazybiosIsVersionPlus(const lazybiosDMI_t *DMIData, uint8_t required_major, uint8_t required_minor)
Tests whether the parsed SMBIOS version meets a minimum version.
@ SMBIOS_VER_UNKNOWN
Definition lazybios.h:209
@ SMBIOS_VER_3X
Definition lazybios.h:211
@ SMBIOS_VER_2X
Definition lazybios.h:210
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.
Definition lazybios.h:101
@ LAZYBIOS_FIELD_PRESENT
Definition lazybios.h:103
@ LAZYBIOS_FIELD_ABSENT
Definition lazybios.h:102
@ LAZYBIOS_FIELD_UNREACHABLE
Definition lazybios.h:104
Public API for HPE ProLiant System/Rack Locator (HP OEM SMBIOS Type 204).
uint8_t lazybiosFieldStatus_t
Storage for one field's availability.
Definition lazybios.h:115
#define LAZYBIOS_WARN_UNUSED
Expands to nothing on compilers without a return-value check.
Definition lazybios.h:150
cJSON serialization API for parsed SMBIOS structures.
Top-level lazybios context containing raw and parsed SMBIOS data.
Definition lazybios.h:355
lazybiosType29Array_t * Type29
Definition lazybios.h:388
lazybiosType21Array_t * Type21
Definition lazybios.h:380
lazybiosType6Array_t * Type6
Definition lazybios.h:365
lazybiosType8Array_t * Type8
Definition lazybios.h:367
lazybiosType25Array_t * Type25
Definition lazybios.h:384
lazybiosOem_t * oem
Definition lazybios.h:407
lazybiosType2Array_t * Type2
Definition lazybios.h:361
lazybiosType13Array_t * Type13
Definition lazybios.h:372
lazybiosType31Array_t * Type31
Definition lazybios.h:390
lazybiosType4Array_t * Type4
Definition lazybios.h:363
lazybiosType26Array_t * Type26
Definition lazybios.h:385
lazybiosType19Array_t * Type19
Definition lazybios.h:378
lazybiosType34Array_t * Type34
Definition lazybios.h:393
lazybiosType22Array_t * Type22
Definition lazybios.h:381
lazybiosType5Array_t * Type5
Definition lazybios.h:364
lazybiosType42Array_t * Type42
Definition lazybios.h:401
lazybiosType7Array_t * Type7
Definition lazybios.h:366
lazybiosType40Array_t * Type40
Definition lazybios.h:399
lazybiosType11Array_t * Type11
Definition lazybios.h:370
lazybiosType1Array_t * Type1
Definition lazybios.h:360
lazybiosDMI_t * DMIData
Definition lazybios.h:357
lazybiosType12Array_t * Type12
Definition lazybios.h:371
lazybiosType28Array_t * Type28
Definition lazybios.h:387
lazybiosType10Array_t * Type10
Definition lazybios.h:369
lazybiosType45Array_t * Type45
Definition lazybios.h:404
lazybiosType33Array_t * Type33
Definition lazybios.h:392
lazybiosType3Array_t * Type3
Definition lazybios.h:362
lazybiosType39Array_t * Type39
Definition lazybios.h:398
lazybiosType20Array_t * Type20
Definition lazybios.h:379
lazybiosType14Array_t * Type14
Definition lazybios.h:373
lazybiosType15Array_t * Type15
Definition lazybios.h:374
lazybiosType43Array_t * Type43
Definition lazybios.h:402
lazybiosType46Array_t * Type46
Definition lazybios.h:405
lazybiosType38Array_t * Type38
Definition lazybios.h:397
lazybiosType17Array_t * Type17
Definition lazybios.h:376
lazybiosType27Array_t * Type27
Definition lazybios.h:386
lazybiosType23Array_t * Type23
Definition lazybios.h:382
lazybiosType35Array_t * Type35
Definition lazybios.h:394
lazybiosType0Array_t * Type0
Definition lazybios.h:359
lazybiosType24Array_t * Type24
Definition lazybios.h:383
lazybiosType32Array_t * Type32
Definition lazybios.h:391
lazybiosType41Array_t * Type41
Definition lazybios.h:400
lazybiosType37Array_t * Type37
Definition lazybios.h:396
lazybiosType18Array_t * Type18
Definition lazybios.h:377
lazybiosType36Array_t * Type36
Definition lazybios.h:395
lazybiosType30Array_t * Type30
Definition lazybios.h:389
lazybiosType16Array_t * Type16
Definition lazybios.h:375
lazybiosBackend_t backend
Definition lazybios.h:356
lazybiosType44Array_t * Type44
Definition lazybios.h:403
lazybiosType9Array_t * Type9
Definition lazybios.h:368
Owns raw DMI table data and its parsed SMBIOS entry point.
Definition lazybios.h:218
size_t dmi_len
Definition lazybios.h:220
lazybiosTypeIndex_t index[256]
Definition lazybios.h:228
uint8_t * dmi_data
Definition lazybios.h:219
lazybiosSMBIOSVersionTag entry_tag
Definition lazybios.h:240
uint8_t * entry_data
Definition lazybios.h:238
size_t entry_len
Definition lazybios.h:239
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.
Definition lazybios.h:325
lazybiosOemDellType218Array_t * Type218
Dell OEM Type 218 structures.
Definition lazybios.h:328
lazybiosOemDellType177Array_t * Type177
Dell OEM Type 177 structures.
Definition lazybios.h:326
lazybiosOemDellType212Array_t * Type212
Dell OEM Type 212 structures.
Definition lazybios.h:327
A parsed set of Hp OEM Type 204 structures.
Definition hp_type204.h:76
HP OEM structures held by a context.
Definition lazybios.h:335
lazybiosOemHpType204Array_t * Type204
HP OEM Type 204 structures.
Definition lazybios.h:336
Vendor-specific structures held by a context.
Definition lazybios.h:346
lazybiosOemDell_t * dell
Definition lazybios.h:347
lazybiosOemHp_t * hp
Definition lazybios.h:348
Raw SMBIOS 2.x entry point layout.
Definition lazybios.h:157
uint8_t formatted_area[5]
Definition lazybios.h:165
uint16_t maximum_structure_size
Definition lazybios.h:163
uint32_t structure_table_address
Definition lazybios.h:169
uint8_t entry_point_length
Definition lazybios.h:160
uint8_t entry_point_revision
Definition lazybios.h:164
uint8_t intermediate_checksum
Definition lazybios.h:167
uint8_t anchor[4]
Definition lazybios.h:158
uint16_t structure_table_length
Definition lazybios.h:168
uint8_t intermediate_anchor[5]
Definition lazybios.h:166
uint16_t structure_count
Definition lazybios.h:170
Raw SMBIOS 3.x entry point layout.
Definition lazybios.h:178
uint8_t anchor[5]
Definition lazybios.h:179
uint64_t structure_table_address
Definition lazybios.h:188
uint8_t entry_point_length
Definition lazybios.h:181
uint32_t structure_table_max_size
Definition lazybios.h:187
uint8_t entry_point_revision
Definition lazybios.h:185
A parsed set of SMBIOS Type 0 structures.
Definition type0.h:99
A parsed set of SMBIOS Type 10 structures.
Definition type10.h:86
A parsed set of SMBIOS Type 11 structures.
Definition type11.h:60
A parsed set of SMBIOS Type 12 structures.
Definition type12.h:60
A parsed set of SMBIOS Type 13 structures.
Definition type13.h:75
A parsed set of SMBIOS Type 14 structures.
Definition type14.h:78
A parsed set of SMBIOS Type 15 structures.
Definition type15.h:116
A parsed set of SMBIOS Type 16 structures.
Definition type16.h:84
A parsed set of SMBIOS Type 17 structures.
Definition type17.h:159
A parsed set of SMBIOS Type 18 structures.
Definition type18.h:83
A parsed set of SMBIOS Type 19 structures.
Definition type19.h:80
A parsed set of SMBIOS Type 1 structures.
Definition type1.h:83
A parsed set of SMBIOS Type 20 structures.
Definition type20.h:86
A parsed set of SMBIOS Type 21 structures.
Definition type21.h:74
A parsed set of SMBIOS Type 22 structures.
Definition type22.h:99
A parsed set of SMBIOS Type 23 structures.
Definition type23.h:74
A parsed set of SMBIOS Type 24 structures.
Definition type24.h:72
A parsed set of SMBIOS Type 25 structures.
Definition type25.h:74
A parsed set of SMBIOS Type 26 structures.
Definition type26.h:86
A parsed set of SMBIOS Type 27 structures.
Definition type27.h:80
A parsed set of SMBIOS Type 28 structures.
Definition type28.h:87
A parsed set of SMBIOS Type 29 structures.
Definition type29.h:86
A parsed set of SMBIOS Type 2 structures.
Definition type2.h:90
A parsed set of SMBIOS Type 30 structures.
Definition type30.h:72
A parsed set of SMBIOS Type 31 structures.
Definition type31.h:72
A parsed set of SMBIOS Type 32 structures.
Definition type32.h:75
A parsed set of SMBIOS Type 33 structures.
Definition type33.h:83
A parsed set of SMBIOS Type 34 structures.
Definition type34.h:76
A parsed set of SMBIOS Type 35 structures.
Definition type35.h:64
A parsed set of SMBIOS Type 36 structures.
Definition type36.h:68
A parsed set of SMBIOS Type 37 structures.
Definition type37.h:91
A parsed set of SMBIOS Type 38 structures.
Definition type38.h:86
A parsed set of SMBIOS Type 39 structures.
Definition type39.h:96
A parsed set of SMBIOS Type 3 structures.
Definition type3.h:108
A parsed set of SMBIOS Type 40 structures.
Definition type40.h:83
A parsed set of SMBIOS Type 41 structures.
Definition type41.h:81
A parsed set of SMBIOS Type 42 structures.
Definition type42.h:101
A parsed set of SMBIOS Type 43 structures.
Definition type43.h:81
A parsed set of SMBIOS Type 44 structures.
Definition type44.h:75
A parsed set of SMBIOS Type 45 structures.
Definition type45.h:96
A parsed set of SMBIOS Type 46 structures.
Definition type46.h:73
A parsed set of SMBIOS Type 4 structures.
Definition type4.h:129
A parsed set of SMBIOS Type 5 structures.
Definition type5.h:96
A parsed set of SMBIOS Type 6 structures.
Definition type6.h:82
A parsed set of SMBIOS Type 7 structures.
Definition type7.h:99
A parsed set of SMBIOS Type 8 structures.
Definition type8.h:79
A parsed set of SMBIOS Type 9 structures.
Definition type9.h:141
Cached location and population count for one SMBIOS structure type.
Definition lazybios.h:199
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.