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