dmi_dell_calling_iface
Synopsis
#include <opendmi/entity/dell/calling-iface.h>
typedef struct dmi_dell_calling_iface {
uint16_t command_io_address;
uint8_t command_io_code;
uint32_t supported_commands;
size_t token_count;
dmi_dell_calling_iface_token_t *tokens;
} dmi_dell_calling_iface_t;
Description
The dmi_dell_calling_iface_t structure holds the decoded Dell calling
interface structure (type 218): the I/O port through which commands are issued
to the firmware, and the tokens, settings of the firmware kept in non-volatile
storage, which these commands read and write.
The structure is returned by dmi_entity_info for the structures of type
DMI_TYPE(dell_calling_iface), declared in <opendmi/module/dell.h>, and
lives as long as the context it has been decoded in.
Fields
command_io_address-
Address of the I/O port written to issue a command to the firmware.
command_io_code-
Value written to the command I/O port to issue a command.
supported_commands-
Bit mask of the commands the firmware supports, as the structure carries it. The meaning of the bits is not publicly documented.
token_count-
Number of elements of
tokens. tokens-
Tokens, in the order of the structure. Unused records (token identifier
0x0000) and the end-of-table marker (0xFFFF) are left out. May benullptrwhentoken_countis 0.
Examples
dmi_registry_t *registry = dmi_get_registry(context);
dmi_entity_t *entity = dmi_registry_lookup_first(registry,
DMI_TYPE(dell_calling_iface), true);
dmi_dell_calling_iface_t *iface = dmi_entity_info(entity,
DMI_TYPE(dell_calling_iface));
if (iface != nullptr) {
for (size_t i = 0; i < iface->token_count; i++)
printf("Token 0x%04x: 0x%04x\n", iface->tokens[i].id,
iface->tokens[i].value);
}