summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Lawrence <paullawrence@google.com>2018-08-30 11:09:17 -0700
committerPaul Lawrence <paullawrence@google.com>2018-10-02 10:12:30 -0700
commit8a9c294f3781320e093357f054561a3fd7d8685f (patch)
treebb74679c4c222a2bd34740a8932269d2b03d0a24
parentdcee6d22fb083cbf5f8cc2a6e442bef316c3843e (diff)
downloadsystem_core-8a9c294f3781320e093357f054561a3fd7d8685f.tar.gz
system_core-8a9c294f3781320e093357f054561a3fd7d8685f.tar.bz2
system_core-8a9c294f3781320e093357f054561a3fd7d8685f.zip
Adding bow dm-target
Test: Can load with dm-ctl Change-Id: I0c6a750340fa6babcfa0f72b66c18a0b3eacd9d8
-rw-r--r--fs_mgr/libdm/include/libdm/dm_target.h12
-rw-r--r--fs_mgr/tools/dmctl.cpp8
2 files changed, 20 insertions, 0 deletions
diff --git a/fs_mgr/libdm/include/libdm/dm_target.h b/fs_mgr/libdm/include/libdm/dm_target.h
index aab89e5f0..3fde95a4a 100644
--- a/fs_mgr/libdm/include/libdm/dm_target.h
+++ b/fs_mgr/libdm/include/libdm/dm_target.h
@@ -156,6 +156,18 @@ class DmTargetVerityString final : public DmTarget {
std::string target_string_;
};
+class DmTargetBow final : public DmTarget {
+ public:
+ DmTargetBow(uint64_t start, uint64_t length, const std::string& target_string)
+ : DmTarget(start, length), target_string_(target_string) {}
+
+ std::string name() const override { return "bow"; }
+ std::string GetParameterString() const override { return target_string_; }
+
+ private:
+ std::string target_string_;
+};
+
} // namespace dm
} // namespace android
diff --git a/fs_mgr/tools/dmctl.cpp b/fs_mgr/tools/dmctl.cpp
index 879ba2101..f78093bdf 100644
--- a/fs_mgr/tools/dmctl.cpp
+++ b/fs_mgr/tools/dmctl.cpp
@@ -42,6 +42,7 @@ using DmTarget = ::android::dm::DmTarget;
using DmTargetLinear = ::android::dm::DmTargetLinear;
using DmTargetZero = ::android::dm::DmTargetZero;
using DmTargetAndroidVerity = ::android::dm::DmTargetAndroidVerity;
+using DmTargetBow = ::android::dm::DmTargetBow;
using DmTargetTypeInfo = ::android::dm::DmTargetTypeInfo;
using DmBlockDevice = ::android::dm::DeviceMapper::DmBlockDevice;
@@ -108,6 +109,13 @@ class TargetParser final {
std::string block_device = NextArg();
return std::make_unique<DmTargetAndroidVerity>(start_sector, num_sectors, keyid,
block_device);
+ } else if (target_type == "bow") {
+ if (!HasArgs(1)) {
+ std::cerr << "Expected \"bow\" <block_device>" << std::endl;
+ return nullptr;
+ }
+ std::string block_device = NextArg();
+ return std::make_unique<DmTargetBow>(start_sector, num_sectors, block_device);
} else {
std::cerr << "Unrecognized target type: " << target_type << std::endl;
return nullptr;