lazybios 3.0.0
Lightweight SMBIOS/DMI parsing library
Loading...
Searching...
No Matches
Type 42: Management Controller Host Interface Guide

Management-controller host-interface data and shared protocols.

Result set and ownership

lazybiosGetType42 returns a lazybiosType42Array_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 lazybiosFreeType42, or assign it to ctx->Type42 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 into decoded, which mirrors the raw member names (interface_type, protocol_type). The raw value stays alongside it, so both the encoding and its meaning are available.

Layout revisions

SMBIOS 3.2 added the explicit interface-type-specific data length required to parse the complete structure. For SMBIOS 3.2 and later, interface_type_specific_data_length is the encoded length and interface_type_specific_data_size is the validated accessible size.

Before SMBIOS 3.2, the specification only defines a reliably parseable four-byte IANA vendor ID after an OEM interface type. LazyBIOS exposes those four bytes through interface_type_specific_data and reports a derived interface_type_specific_data_size of four. The newer encoded length, protocol count, and protocol records remain absent.

Protocol records

Each lazybiosType42ProtocolRecord_t contains a protocol type, its encoded data length, and the corresponding opaque protocol-specific bytes. Decode the type with decoded.protocol_type. Protocol-specific formats are defined by their respective IPMI, MCTP, Redfish, or OEM specifications and are preserved without reinterpretation.

The parser validates the complete counted record sequence before exposing it. An interface data length below the required four bytes or any truncated protocol record leaves field_status.protocol_records absent while preserving available encoded length and count fields.

Ownership

Release interface data, protocol arrays, protocol-specific data, and the structure array with lazybiosFreeType42, or assign the result to lazybiosCTX::Type42 and use lazybiosCleanup.

See also
Type 42: Management Controller Host Interface