diff options
author | David Anderson <dvander@google.com> | 2018-11-19 22:37:33 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-11-19 22:37:33 +0000 |
commit | 46d71bf2b3007a343a99fb1e201334ea42336a92 (patch) | |
tree | bcfbc29697949974f35b062964954ca583c35cbf | |
parent | 2c06aceacc08b8b76f6ddccfae20dda63a91dea7 (diff) | |
parent | bdcadc7025ec90da86dff8edf5ec7b7333ce573e (diff) | |
download | extras-46d71bf2b3007a343a99fb1e201334ea42336a92.tar.gz |
Merge "lpdump: Show block device and group flags."
-rw-r--r-- | partition_tools/lpdump.cc | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/partition_tools/lpdump.cc b/partition_tools/lpdump.cc index 8afb13e1..524479b6 100644 --- a/partition_tools/lpdump.cc +++ b/partition_tools/lpdump.cc @@ -45,11 +45,27 @@ static int usage(int /* argc */, char* argv[]) { return EX_USAGE; } +static std::string BuildFlagString(const std::vector<std::string>& strings) { + return strings.empty() ? "none" : android::base::Join(strings, ","); +} + static std::string BuildAttributeString(uint32_t attrs) { std::vector<std::string> strings; if (attrs & LP_PARTITION_ATTR_READONLY) strings.emplace_back("readonly"); if (attrs & LP_PARTITION_ATTR_SLOT_SUFFIXED) strings.emplace_back("slot-suffixed"); - return strings.empty() ? "none" : android::base::Join(strings, ","); + return BuildFlagString(strings); +} + +static std::string BuildGroupFlagString(uint32_t flags) { + std::vector<std::string> strings; + if (flags & LP_GROUP_SLOT_SUFFIXED) strings.emplace_back("slot-suffixed"); + return BuildFlagString(strings); +} + +static std::string BuildBlockDeviceFlagString(uint32_t flags) { + std::vector<std::string> strings; + if (flags & LP_BLOCK_DEVICE_SLOT_SUFFIXED) strings.emplace_back("slot-suffixed"); + return BuildFlagString(strings); } static bool IsBlockDevice(const char* file) { @@ -145,6 +161,7 @@ int main(int argc, char* argv[]) { printf(" Partition name: %s\n", partition_name.c_str()); printf(" First sector: %" PRIu64 "\n", block_device.first_logical_sector); printf(" Size: %" PRIu64 " bytes\n", block_device.size); + printf(" Flags: %s\n", BuildBlockDeviceFlagString(block_device.flags).c_str()); printf("------------------------\n"); } @@ -153,7 +170,8 @@ int main(int argc, char* argv[]) { for (const auto& group : pt->groups) { std::string group_name = GetPartitionGroupName(group); printf(" Name: %s\n", group_name.c_str()); - printf(" Maximum size: %" PRIx64 "\n", group.maximum_size); + printf(" Maximum size: %" PRIu64 "\n", group.maximum_size); + printf(" Flags: %s\n", BuildGroupFlagString(group.flags).c_str()); printf("------------------------\n"); } |