Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba0b4bb9 authored by Akilesh Kailash's avatar Akilesh Kailash Committed by Gerrit Code Review
Browse files

Merge "libdm: dm-user target creation takes an additional argument"

parents fe1eba00 eef49c9e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -284,6 +284,7 @@ std::string DmTargetUser::GetParameterString() const {
    std::vector<std::string> argv;
    argv.push_back(std::to_string(start()));
    argv.push_back(std::to_string(size()));
    argv.push_back(control_device());
    return android::base::Join(argv, " ");
}

+6 −1
Original line number Diff line number Diff line
@@ -311,10 +311,15 @@ class DmTargetDefaultKey final : public DmTarget {

class DmTargetUser final : public DmTarget {
  public:
    DmTargetUser(uint64_t start, uint64_t length) : DmTarget(start, length) {}
    DmTargetUser(uint64_t start, uint64_t length, std::string control_device)
        : DmTarget(start, length), control_device_(control_device) {}

    std::string name() const override { return "user"; }
    std::string control_device() const { return control_device_; }
    std::string GetParameterString() const override;

  private:
    std::string control_device_;
};

}  // namespace dm
+6 −1
Original line number Diff line number Diff line
@@ -177,7 +177,12 @@ class TargetParser final {
            return std::make_unique<DmTargetSnapshot>(start_sector, num_sectors, base_device,
                                                      cow_device, mode, chunk_size);
        } else if (target_type == "user") {
            return std::make_unique<DmTargetUser>(start_sector, num_sectors);
            if (!HasArgs(1)) {
                std::cerr << "Expected \"user\" <control_device_name>" << std::endl;
                return nullptr;
            }
            std::string control_device = NextArg();
            return std::make_unique<DmTargetUser>(start_sector, num_sectors, control_device);
        } else {
            std::cerr << "Unrecognized target type: " << target_type << std::endl;
            return nullptr;