lazybios 3.0.0
Lightweight SMBIOS/DMI parsing library
Loading...
Searching...
No Matches
Type 20: Memory Device Mapped Address Guide

Device-level address ranges, partition positions, and interleaving.

Result set and ownership

lazybiosGetType20 returns a lazybiosType20Array_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 lazybiosFreeType20, or assign it to ctx->Type20 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 (ending_address, starting_address). The raw value stays alongside it, so both the encoding and its meaning are available.

Address fields

Legacy starting_address and ending_address values are expressed in KiB. The ending value identifies the last KiB in the inclusive range. When both legacy values are 0xFFFFFFFF, the SMBIOS 2.7 extended fields contain the actual inclusive byte addresses. decoded.starting_address and decoded.ending_address select the applicable representation and return byte addresses.

Partition and interleave fields

partition_row_position uses 0xFF for an unknown position; zero is reserved. interleave_position uses zero for a non-interleaved device and 0xFF when the position is unknown. interleaved_data_depth uses zero when the device is not interleaved and 0xFF when its configuration is unknown. These encodings are present raw values rather than unavailable-field sentinels.

Ownership

The returned structure array is allocated by the parser. Release it with lazybiosFreeType20 or assign it to lazybiosCTX::Type20 and use lazybiosCleanup.

See also
Type 20: Memory Device Mapped Address