summaryrefslogtreecommitdiff
path: root/firmware/lib/cgptlib/cgptlib_internal.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/lib/cgptlib/cgptlib_internal.c')
-rw-r--r--firmware/lib/cgptlib/cgptlib_internal.c14
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;