diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2021-04-18 12:53:07 -0700 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2021-04-18 12:53:07 -0700 |
commit | cb81ab091697e25f1b332c7e8f128cbe174ba141 (patch) | |
tree | e7c44a4b9bae8a98c9a6075dddc68e064ad616c2 /aosp/dynamic_partition_control_android.h | |
parent | a1531c020edb7ad659164d6be96378fad956b61b (diff) | |
parent | aae41a1bf81c4141ebd5c61d1295d165bdc897a3 (diff) |
Merge aae41a1bf81c4141ebd5c61d1295d165bdc897a3 on remote branch
Change-Id: I54f3f25d6d84de3386d38b6c2a851d0c472fd9c8
Diffstat (limited to 'aosp/dynamic_partition_control_android.h')
-rw-r--r-- | aosp/dynamic_partition_control_android.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/aosp/dynamic_partition_control_android.h b/aosp/dynamic_partition_control_android.h index d7c8781a..b7aa7eaa 100644 --- a/aosp/dynamic_partition_control_android.h +++ b/aosp/dynamic_partition_control_android.h @@ -20,6 +20,7 @@ #include <memory> #include <set> #include <string> +#include <string_view> #include <vector> #include <base/files/file_util.h> @@ -33,7 +34,11 @@ namespace chromeos_update_engine { class DynamicPartitionControlAndroid : public DynamicPartitionControlInterface { public: - DynamicPartitionControlAndroid(); + // A directory where all partitions mapped by VABC is expected to be found. + // Per earlier discussion with VAB team, this directory is unlikely to change. + // So we declare it as a constant here. + static constexpr std::string_view VABC_DEVICE_DIR = "/dev/block/mapper/"; + explicit DynamicPartitionControlAndroid(uint32_t source_slot); ~DynamicPartitionControlAndroid(); FeatureFlag GetDynamicPartitionsFeatureFlag() override; @@ -99,13 +104,13 @@ class DynamicPartitionControlAndroid : public DynamicPartitionControlInterface { const std::string& unsuffixed_partition_name, const std::optional<std::string>& source_path, bool is_append) override; - FileDescriptorPtr OpenCowReader(const std::string& unsuffixed_partition_name, - const std::optional<std::string>&, - bool is_append = false) override; + FileDescriptorPtr OpenCowFd(const std::string& unsuffixed_partition_name, + const std::optional<std::string>&, + bool is_append = false) override; bool UnmapAllPartitions() override; - bool IsDynamicPartition(const std::string& part_name) override; + bool IsDynamicPartition(const std::string& part_name, uint32_t slot) override; bool UpdateUsesSnapshotCompression() override; @@ -253,6 +258,13 @@ class DynamicPartitionControlAndroid : public DynamicPartitionControlInterface { const DeltaArchiveManifest& manifest, uint64_t* required_size); + // Returns true if the allocatable space in super partition is larger than + // the size of dynamic partition groups in the manifest. + bool CheckSuperPartitionAllocatableSpace( + android::fs_mgr::MetadataBuilder* builder, + const DeltaArchiveManifest& manifest, + bool use_snapshot); + enum class DynamicPartitionDeviceStatus { SUCCESS, ERROR, @@ -324,7 +336,7 @@ class DynamicPartitionControlAndroid : public DynamicPartitionControlInterface { uint32_t source_slot_ = UINT32_MAX; uint32_t target_slot_ = UINT32_MAX; - std::vector<std::string> dynamic_partition_list_; + std::vector<std::vector<std::string>> dynamic_partition_list_{2UL}; DISALLOW_COPY_AND_ASSIGN(DynamicPartitionControlAndroid); }; |