summaryrefslogtreecommitdiffstats
path: root/boot_control/include
diff options
context:
space:
mode:
authorDavid Anderson <dvander@google.com>2019-11-04 23:08:11 +0100
committerDavid Anderson <dvander@google.com>2019-11-09 00:22:21 +0100
commitcf8427af89f47075953dad10d6ea9b848736527f (patch)
treeff5b71f4a30251ad26692cfe706e19d850c339a3 /boot_control/include
parentMerge "bootloader_message: Carve out space reserved for system." (diff)
downloadandroid_bootable_recovery-cf8427af89f47075953dad10d6ea9b848736527f.tar
android_bootable_recovery-cf8427af89f47075953dad10d6ea9b848736527f.tar.gz
android_bootable_recovery-cf8427af89f47075953dad10d6ea9b848736527f.tar.bz2
android_bootable_recovery-cf8427af89f47075953dad10d6ea9b848736527f.tar.lz
android_bootable_recovery-cf8427af89f47075953dad10d6ea9b848736527f.tar.xz
android_bootable_recovery-cf8427af89f47075953dad10d6ea9b848736527f.tar.zst
android_bootable_recovery-cf8427af89f47075953dad10d6ea9b848736527f.zip
Diffstat (limited to 'boot_control/include')
-rw-r--r--boot_control/include/libboot_control/libboot_control.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/boot_control/include/libboot_control/libboot_control.h b/boot_control/include/libboot_control/libboot_control.h
index 34a9affe1..546865887 100644
--- a/boot_control/include/libboot_control/libboot_control.h
+++ b/boot_control/include/libboot_control/libboot_control.h
@@ -62,5 +62,28 @@ class BootControl {
unsigned int current_slot_ = 0;
};
+// Helper functions to write the Virtual A/B merge status message. These are
+// separate because BootControl uses bootloader_control_ab in vendor space,
+// whereas the Virtual A/B merge status is in system space. A HAL might not
+// use bootloader_control_ab, but may want to use the AOSP method of maintaining
+// the merge status.
+
+// If the Virtual A/B message has not yet been initialized, then initialize it.
+// This should be called when the BootControl HAL first loads.
+//
+// If the Virtual A/B message in misc was already initialized, true is returned.
+// If initialization was attempted, but failed, false is returned, and the HAL
+// should fail to load.
+bool InitMiscVirtualAbMessageIfNeeded();
+
+// Save the current merge status as well as the current slot.
+bool SetMiscVirtualAbMergeStatus(unsigned int current_slot,
+ android::hardware::boot::V1_1::MergeStatus status);
+
+// Return the current merge status. If the saved status is SNAPSHOTTED but the
+// slot hasn't changed, the status returned will be NONE.
+bool GetMiscVirtualAbMergeStatus(unsigned int current_slot,
+ android::hardware::boot::V1_1::MergeStatus* status);
+
} // namespace bootable
} // namespace android