struct AbrSlotInfo
Defined at line 75 of file ../../src/firmware/lib/abr/include/lib/abr/abr.h
This structure describes the current state of an A/B slot.
Note that slot R does not have associated metadata and is always considered bootable and
successful. It is only considered active when no other slots are bootable.
When metadata is uninitialized, it will be initialized to a state which allows a full set of
tries for each slot with slot A as highest priority.
Fields:
is_bootable - Whether the slot is expected to be bootable.
is_active - Whether the slot is the highest priority bootable slot. This is not a predictor of
AbrGetBootSlot(), which will account for additional configuration like one-shot
recovery requests.
is_marked_successful - Whether the slot has been marked as having booted successfully since
the last update.
num_tries_remaining - The number of tries remaining to attempt a successful boot. If this
reaches zero and a slot has not been marked successful, the slot is
considered unbootable. This value is only meaningful if |is_bootable| is
true and |is_marked_successful| is false.
unbootable_reason - If the slot is not bootable, this indicates the reason why. This value
may not be a known |AbrUnbootableReason| variant, e.g. if the creator of
this metadata blob was running a newer version of libabr.
Public Members
bool is_bootable
bool is_active
bool is_marked_successful
uint8_t num_tries_remaining
uint8_t unbootable_reason