diff options
author | David Anderson <dvander@google.com> | 2019-11-09 16:04:52 +0100 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-11-09 16:04:52 +0100 |
commit | 405f4d3552803077fab8e5b184f1da475efef90c (patch) | |
tree | 3ffdee4d6d56e0b6c5681413927e34a42f6d7e21 /bootloader_message/include | |
parent | Merge "Stop setting usb config from recovery init script" (diff) | |
parent | bootloader_message: Add helpers for handling IBootControl MergeStatus. (diff) | |
download | android_bootable_recovery-405f4d3552803077fab8e5b184f1da475efef90c.tar android_bootable_recovery-405f4d3552803077fab8e5b184f1da475efef90c.tar.gz android_bootable_recovery-405f4d3552803077fab8e5b184f1da475efef90c.tar.bz2 android_bootable_recovery-405f4d3552803077fab8e5b184f1da475efef90c.tar.lz android_bootable_recovery-405f4d3552803077fab8e5b184f1da475efef90c.tar.xz android_bootable_recovery-405f4d3552803077fab8e5b184f1da475efef90c.tar.zst android_bootable_recovery-405f4d3552803077fab8e5b184f1da475efef90c.zip |
Diffstat (limited to 'bootloader_message/include')
-rw-r--r-- | bootloader_message/include/bootloader_message/bootloader_message.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/bootloader_message/include/bootloader_message/bootloader_message.h b/bootloader_message/include/bootloader_message/bootloader_message.h index e3425fc8b..3a3b862aa 100644 --- a/bootloader_message/include/bootloader_message/bootloader_message.h +++ b/bootloader_message/include/bootloader_message/bootloader_message.h @@ -185,6 +185,28 @@ static_assert(sizeof(struct bootloader_control) == "struct bootloader_control has wrong size"); #endif +// Holds Virtual A/B merge status information. Current version is 1. New fields +// must be added to the end. +struct misc_virtual_ab_message { + uint8_t version; + uint8_t merge_status; // IBootControl 1.1, MergeStatus enum. + uint8_t source_slot; // Slot number when merge_status was written. + uint8_t reserved[61]; +} __attribute__((packed)); + +#define MISC_VIRTUAL_AB_MESSAGE_VERSION 1 + +#if (__STDC_VERSION__ >= 201112L) || defined(__cplusplus) +static_assert(sizeof(struct misc_virtual_ab_message) == 64, + "struct misc_virtual_ab_message has wrong size"); +#endif + +// This struct is not meant to be used directly, rather, it is to make +// computation of offsets easier. New fields must be added to the end. +struct misc_system_space_layout { + misc_virtual_ab_message virtual_ab_message; +} __attribute__((packed)); + #ifdef __cplusplus #include <string> @@ -247,6 +269,10 @@ bool ReadMiscPartitionVendorSpace(void* data, size_t size, size_t offset, std::s // offset is in relative to the start of the vendor space. bool WriteMiscPartitionVendorSpace(const void* data, size_t size, size_t offset, std::string* err); +// Read or write the Virtual A/B message from system space in /misc. +bool ReadMiscVirtualAbMessage(misc_virtual_ab_message* message, std::string* err); +bool WriteMiscVirtualAbMessage(const misc_virtual_ab_message& message, std::string* err); + #else #include <stdbool.h> |