diff options
Diffstat (limited to 'firmware/lib/cgptlib/cgptlib_internal.c')
-rw-r--r-- | firmware/lib/cgptlib/cgptlib_internal.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/firmware/lib/cgptlib/cgptlib_internal.c b/firmware/lib/cgptlib/cgptlib_internal.c index 347d46e0..ab01d5d9 100644 --- a/firmware/lib/cgptlib/cgptlib_internal.c +++ b/firmware/lib/cgptlib/cgptlib_internal.c @@ -405,6 +405,12 @@ int GetEntryTries(const GptEntry *e) CGPT_ATTRIBUTE_TRIES_OFFSET; } +int GetEntryErrorCounter(const GptEntry *e) +{ + return (e->attrs.fields.gpt_att & CGPT_ATTRIBUTE_ERROR_COUNTER_MASK) >> + CGPT_ATTRIBUTE_ERROR_COUNTER_OFFSET; +} + void SetEntryRequired(GptEntry *e, int required) { e->attrs.fields.required = required; @@ -438,6 +444,14 @@ void SetEntryTries(GptEntry *e, int tries) CGPT_ATTRIBUTE_TRIES_MASK; } +void SetEntryErrorCounter(GptEntry *e, int error_counter) +{ + e->attrs.fields.gpt_att &= ~CGPT_ATTRIBUTE_ERROR_COUNTER_MASK; + e->attrs.fields.gpt_att |= + (error_counter << CGPT_ATTRIBUTE_ERROR_COUNTER_OFFSET) & + CGPT_ATTRIBUTE_ERROR_COUNTER_MASK; +} + void GetCurrentKernelUniqueGuid(GptData *gpt, void *dest) { GptEntry *entries = (GptEntry *)gpt->primary_entries; |