/*Virtual A/B merge status information*/ // Spaces used by misc partition are as below: // 0 - 2K For bootloader_message // 2K - 16K Used by Vendor's bootloader (the 2K - 4K range may be optionally used // as bootloader_message_ab struct) // 16K - 32K Used by uncrypt and recovery to store wipe_package for A/B devices // 32K - 64K System space, used for miscellanious AOSP features. See below. // Note that these offsets are admitted by bootloader,recovery and uncrypt, so they // are not configurable without changing all of them. #ifndef _ANDROID_VAB_H_ #define _ANDROID_VAB_H_ #define BOOTLOADER_MESSAGE_OFFSET_IN_MISC 0 #define VENDOR_SPACE_OFFSET_IN_MISC 2 * 1024 #define WIPE_PACKAGE_OFFSET_IN_MISC 16 * 1024 #define SYSTEM_SPACE_OFFSET_IN_MISC 32 * 1024 #define SYSTEM_SPACE_SIZE_IN_MISC 32 * 1024 enum MergeStatus { /** * No snapshot or merge is in progress. */ NONE = 0, /** * The merge status could not be determined. */ UNKNOWN, /** * Partitions are being snapshotted, but no merge has been started. */ SNAPSHOTTED, /** * At least one partition has merge is in progress. */ MERGING, /** * A merge was in progress, but it was canceled by the bootloader. */ CANCELLED, }; // 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; uint32_t magic; uint8_t merge_status; // IBootControl 1.1, MergeStatus enum. uint8_t source_slot; // Slot number when merge_status was written. uint8_t reserved[57]; }; #endif