| // Copyright (c) 2012 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef INSTALLER_CHROMEOS_INSTALL_CONFIG_H_ |
| #define INSTALLER_CHROMEOS_INSTALL_CONFIG_H_ |
| |
| #include <string> |
| |
| #include "installer/inst_util.h" |
| |
| enum BiosType { |
| kBiosTypeUnknown, |
| kBiosTypeSecure, |
| kBiosTypeUBoot, |
| kBiosTypeLegacy, |
| kBiosTypeEFI, |
| }; |
| |
| bool StrToBiosType(std::string name, BiosType* bios_type); |
| |
| // We commonly need to have the same data about devices in multiple formats |
| // during the install process. This class allows us to have a partition |
| // device in whichever format is currently most useful. |
| // |
| // Partition device name "/dev/sda3" |
| // Base device and number "/dev/sda" 3 |
| // Mount point (optional) "/tmp/root.mnt" |
| class Partition { |
| public: |
| Partition() {} |
| explicit Partition(std::string device) : device_(device) {} |
| Partition(std::string device, std::string mount) |
| : device_(device), mount_(mount) {} |
| |
| // Get/Set the partition device, usually of form: /dev/sda3 |
| std::string device() const { return device_; } |
| void set_device(const std::string& device) { device_ = device; } |
| |
| // If the device is /dev/sda3 the base_device is /dev/sda |
| std::string base_device() const { |
| return GetBlockDevFromPartitionDev(device()); |
| } |
| |
| // If the device is /dev/sda3 the number is 3 |
| int number() const { |
| return GetPartitionFromPartitionDev(device()); |
| } |
| |
| virtual std::string uuid() const; |
| |
| // The mount point for this device or "" if unmounted/unknown |
| std::string mount() const { return mount_; } |
| void set_mount(const std::string& mount) { mount_ = mount; } |
| |
| private: |
| std::string device_; |
| std::string mount_; |
| }; |
| |
| // This class contains all of the information commonly passed around |
| // during a post install. |
| struct InstallConfig { |
| // "A" or "B" in a standard install |
| std::string slot; |
| |
| Partition root; |
| Partition kernel; |
| Partition boot; |
| |
| BiosType bios_type; |
| }; |
| |
| #endif // INSTALLER_CHROMEOS_INSTALL_CONFIG_H_ |