Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(539)

Unified Diff: set_bootable_flag_action.cc

Issue 4719002: AU: Remove obsolete SetBootableFlagAction. (Closed) Base URL: ssh://git@gitrw.chromium.org:9222/update_engine.git@master
Patch Set: Created 10 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: set_bootable_flag_action.cc
diff --git a/set_bootable_flag_action.cc b/set_bootable_flag_action.cc
deleted file mode 100644
index 1cec31e052f279870468e5003c8f9cb9c5a5cfbc..0000000000000000000000000000000000000000
--- a/set_bootable_flag_action.cc
+++ /dev/null
@@ -1,77 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "update_engine/set_bootable_flag_action.h"
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <string>
-#include <vector>
-#include "update_engine/subprocess.h"
-#include "update_engine/utils.h"
-
-using std::string;
-using std::vector;
-
-namespace chromeos_update_engine {
-
-namespace {
-const char* const kGpt = "/usr/bin/gpt";
-const ssize_t kPmbrLength = 512;
-}
-
-void SetBootableFlagAction::PerformAction() {
- ScopedActionCompleter completer(processor_, this);
-
- TEST_AND_RETURN(HasInputObject());
- const InstallPlan install_plan = GetInputObject();
- TEST_AND_RETURN(!install_plan.install_path.empty());
- const string partition = install_plan.install_path;
- string root_device = utils::RootDevice(partition);
- string partition_number = utils::PartitionNumber(partition);
-
- utils::BootLoader boot_loader;
- TEST_AND_RETURN(utils::GetBootloader(&boot_loader));
-
- // For now, only support Syslinux bootloader
- TEST_AND_RETURN(boot_loader == utils::BootLoader_SYSLINUX);
-
- string temp_file;
- TEST_AND_RETURN(utils::MakeTempFile("/tmp/pmbr_copy.XXXXXX",
- &temp_file,
- NULL));
- ScopedPathUnlinker temp_file_unlinker(temp_file);
-
- // Copy existing PMBR to temp file
- vector<char> buf(kPmbrLength);
- {
- int fd = open(root_device.c_str(), O_RDONLY);
- TEST_AND_RETURN(fd >= 0);
- ScopedFdCloser fd_closer(&fd);
- ssize_t bytes_read;
- TEST_AND_RETURN(utils::PReadAll(fd, &buf[0], buf.size(), 0, &bytes_read));
- }
- TEST_AND_RETURN(utils::WriteFile(temp_file.c_str(), &buf[0], buf.size()));
-
- // Call gpt tool to do the work
- vector<string> command;
- command.push_back(kGpt);
- command.push_back("-S");
- command.push_back("boot");
- command.push_back("-i");
- command.push_back(partition_number);
- command.push_back("-b");
- command.push_back(temp_file);
- command.push_back(root_device);
- int rc = 0;
- Subprocess::SynchronousExec(command, &rc);
- TEST_AND_RETURN(rc == 0);
-
- completer.set_code(kActionCodeSuccess);
- if (HasOutputPipe())
- SetOutputObject(GetInputObject());
-}
-
-} // namespace chromeos_update_engine

Powered by Google App Engine
This is Rietveld 408576698