dmi_apple_firmware_volume
Synopsis
#include <opendmi/entity/apple/firmware-volume.h>
typedef struct dmi_apple_firmware_volume {
uint8_t region_count;
uint32_t features;
uint32_t features_mask;
uint8_t region_types[DMI_APPLE_FLASH_REGION_COUNT];
dmi_apple_flash_region_t regions[DMI_APPLE_FLASH_REGION_COUNT];
uint32_t extended_features;
uint32_t extended_features_mask;
} dmi_apple_firmware_volume_t;
Description
The dmi_apple_firmware_volume_t structure holds the decoded Apple firmware
volume information (type 128), which tells the features of the firmware, which
macOS and its boot loader read, and the layout of its flash memory.
The structure is returned by dmi_entity_info for the structures decoded
by dmi_apple_firmware_volume_spec, of type DMI_TYPE(apple_firmware_volume), declared in <opendmi/module/apple.h>,
once the Apple extension module (dmi_apple_module) is enabled, which is done
for the platforms of Apple firmware when the context has
DMI_CONTEXT_FLAG_AUTO_MODULES. It lives as long as the context it has been
decoded in.
The features are 64 bits wide: the structure holds their low 32 bits and, on newer firmware, their high 32 bits as the extended features, which the older firmware does not tell.
Fields
region_count-
Number of the regions of the flash memory.
features-
Features of the firmware, a set of
dmi_apple_firmware_feature_tbits, seedmi_apple_firmware_feature. features_mask-
Mask of the features the firmware tells.
region_types-
Types of the regions, as the data holds them, before the regions.
regions-
Regions of the flash memory, whose types are taken from
region_types, seedmi_apple_flash_region. The entries pastregion_countare not used. extended_features-
Extended features of the firmware, the high 32 bits of the features, a set of
dmi_apple_extended_feature_tbits, seedmi_apple_extended_feature. Zero when the structure is too short to hold them. extended_features_mask-
Mask of the extended features the firmware tells. Zero when the structure is too short to hold it.