lazybios 3.0.0
Lightweight SMBIOS/DMI parsing library
Loading...
Searching...
No Matches
Type 1: System Information Guide

System identity, UUID, wake-up event, SKU, and family interpretation.

Result set and ownership

lazybiosGetType1 returns a lazybiosType1Array_t holding every matching structure. Iterate entries using count. A non-NULL result whose count is zero means the table contains no structure of this type; NULL means the arguments were unusable or an allocation failed. Release the set with lazybiosFreeType1, or assign it to ctx->Type1 and let lazybiosCleanup own it.

Every record carries its own SMBIOS handle and the structure length the firmware reported.

Encoded fields are decoded during parsing and stored in decoded, which mirrors the raw member names (wake_up_type). The raw value stays alongside it, so both the encoding and its meaning are available.

Identity strings

Manufacturer, product name, version, and serial number belong to the base structure. SKU number and family require SMBIOS 2.4 or newer. Check each string field with LAZYBIOS_FIELD_STATUS before relying on its value.

UUID representation

The uuid member contains the 16 raw SMBIOS bytes. The library does not convert those bytes to a textual UUID or reorder them for a presentation convention. Applications that print a UUID must apply the byte-order rules required by the relevant SMBIOS version.

An all-zero UUID means that the identifier is not present. An all-0xFF UUID means that it is not currently present but can be set. Both encodings are preserved in uuid and report LAZYBIOS_FIELD_ABSENT.

Wake-up event

wake_up_type is present in SMBIOS 2.1 and newer. Check it with LAZYBIOS_FIELD_STATUS before calling decoded.wake_up_type.

const char* decode_type1_wakeup(const lazybiosType1_t* system) {
if (LAZYBIOS_FIELD_STATUS(system, wake_up_type) != LAZYBIOS_FIELD_PRESENT) return "Not Present";
return system->decoded.wake_up_type;
}
See also
Type 1: System Information