dmi_sun_memory_array_ex
Synopsis
#include <opendmi/entity/sun/memory-array-ex.h>
typedef struct dmi_sun_memory_array_ex {
dmi_handle_t memory_array_handle;
dmi_handle_t component_handle;
uint8_t bus_number;
uint8_t device_number;
uint8_t function_number;
} dmi_sun_memory_array_ex_t;
Description
The dmi_sun_memory_array_ex_t structure holds the decoded Sun memory array
extended information structure (type 144), which adds the component holding a
memory array and the PCI address of its memory controller to its physical
memory array structure (type 16). It is not part of SMBIOS: Sun firmware
provides it, and the library decodes it only when the Sun extension module
(dmi_sun_module, declared in <opendmi/module/sun.h>) is enabled in the
context with dmi_add_extension.
The structure is returned by dmi_entity_info for the structures of type
DMI_TYPE(sun_memory_array_ex), and lives as long as the context it has been
decoded in.
Fields
memory_array_handle-
Handle of the physical memory array structure (type 16) this structure extends.
component_handle-
Handle of the structure describing the parent component of the memory array, such as the processor holding its memory controller.
bus_number-
PCI bus number of the memory controller.
device_number-
PCI device number of the memory controller, 0 to 31.
function_number-
PCI function number of the memory controller, 0 to 7.
Examples
dmi_registry_t *registry = dmi_get_registry(context);
dmi_entity_t *entity = dmi_registry_lookup_first(registry,
DMI_TYPE(sun_memory_array_ex), true);
dmi_sun_memory_array_ex_t *info =
dmi_entity_info(entity, DMI_TYPE(sun_memory_array_ex));
if (info != nullptr)
printf("controller at %02X:%02X.%u\n", (unsigned)info->bus_number,
(unsigned)info->device_number, (unsigned)info->function_number);