System slot identity, capabilities, PCI location, peer groups, and physical dimensions.
lazybiosGetType9 returns a lazybiosType9Array_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 lazybiosFreeType9, or assign it to ctx->Type9 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 (current_usage, data_bus_width, slot_data_bus_width, slot_height, among others). The raw value stays alongside it, so both the encoding and its meaning are available.
slot_designation is the firmware-provided reference name. Decode slot_type, slot_data_bus_width, current_usage, and slot_length with decoded.slot_type, decoded.data_bus_width, decoded.current_usage, and decoded.slot_length. slot_id has a bus-specific meaning determined by slot_type and remains in its raw 16-bit SMBIOS representation.
decoded.slot_characteristics_1 decodes the original slot capability byte. SMBIOS 2.1 added slot_characteristics_2, decoded with decoded.slot_characteristics_2.
SMBIOS 2.6 added the base segment group, bus, and packed device/function fields. decoded.device_function_number extracts the five-bit device number and three-bit function number. A packed value of 0xFF indicates that the PCI location is not applicable.
SMBIOS 3.2 added the base data_bus_width and a variable array of peer locations. peer_grouping_count gives the number of entries in peer_groups. Each lazybiosType9PeerGroup_t contains its own segment, bus, packed device/function value, and electrical width. The parser exposes peer entries only when the formatted structure contains the complete declared peer array. Use LAZYBIOS_FIELD_STATUS to distinguish an absent count from a present count of zero. If the count is present but the declared peer array does not fit, peer_groups reports LAZYBIOS_FIELD_ABSENT.
SMBIOS 3.4 added slot_information, slot_physical_width, and slot_pitch. For slot type 0xC4, slot_information contains the PCI Express generation. Decode slot_physical_width with decoded.data_bus_width. slot_pitch is stored in units of 1/100 millimeter; zero means that the pitch is unknown or not supplied. SMBIOS 3.5 added slot_height, decoded with decoded.slot_height.