diff options
author | David Anderson <dvander@google.com> | 2019-12-12 17:12:27 -0800 |
---|---|---|
committer | David Anderson <dvander@google.com> | 2019-12-13 16:15:53 -0800 |
commit | ab1b095bc93918ee721b1b6002a394d5b195bdec (patch) | |
tree | 1a56e6ec2e84dfcb49dc43a59ecdcaf41684224d /partition_tools | |
parent | 018adfb8180b9640852e077ebd3aa85d66fb6ede (diff) | |
download | extras-ab1b095bc93918ee721b1b6002a394d5b195bdec.tar.gz |
lpdump: Add support for the metadata flags field.
Bug: 134949511
Test: manual test
Change-Id: Iafc5193c71315b14f192fcc0ae42188a51b0d2cb
Diffstat (limited to 'partition_tools')
-rw-r--r-- | partition_tools/lpdump.cc | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/partition_tools/lpdump.cc b/partition_tools/lpdump.cc index 098d45ba..af370483 100644 --- a/partition_tools/lpdump.cc +++ b/partition_tools/lpdump.cc @@ -68,6 +68,18 @@ static std::string BuildFlagString(const std::vector<std::string>& strings) { return strings.empty() ? "none" : android::base::Join(strings, ","); } +static std::string BuildHeaderFlagString(uint32_t flags) { + std::vector<std::string> strings; + + for (uint32_t i = 0; i < sizeof(flags) * 8; i++) { + if (!(flags & (1 << i))) { + continue; + } + strings.emplace_back("unknown_flag_bit_" + std::to_string(i)); + } + return BuildFlagString(strings); +} + static std::string BuildAttributeString(uint32_t attrs) { std::vector<std::string> strings; if (attrs & LP_PARTITION_ATTR_READONLY) strings.emplace_back("readonly"); @@ -291,6 +303,7 @@ static void PrintMetadata(const LpMetadata& pt, std::ostream& cout) { cout << "Metadata size: " << (pt.header.header_size + pt.header.tables_size) << " bytes\n"; cout << "Metadata max size: " << pt.geometry.metadata_max_size << " bytes\n"; cout << "Metadata slot count: " << pt.geometry.metadata_slot_count << "\n"; + cout << "Header flags: " << BuildHeaderFlagString(pt.header.flags) << "\n"; cout << "Partition table:\n"; cout << "------------------------\n"; |