24 #ifndef STORAGE_PARTITION_H 25 #define STORAGE_PARTITION_H 28 #include "storage/Devices/BlkDevice.h" 326 unsigned int get_id()
const;
335 void set_id(
unsigned int id);
407 void set_label(
const std::string& label);
412 const std::string&
get_uuid()
const;
470 const Impl& get_impl()
const;
472 virtual Partition* clone()
const override;
473 virtual std::unique_ptr<Device> clone_v2()
const override;
476 ST_NO_SWIG
Partition(std::unique_ptr<Device::Impl>&& impl);
bool is_linux_partition_id(IdNum id)
Check whether the id is a Linux partition id.
Only for MS-DOS.
Definition: Partition.h:97
Partition * to_partition(Device *device)
Converts pointer to Device to pointer to Partition.
BIOS boot partition (https://en.wikipedia.org/wiki/BIOS_boot_partition), only for GPT...
Definition: Partition.h:139
Only set during probing.
Definition: Partition.h:135
Linux USR Partition (x86), only for GPT.
Definition: Partition.h:214
Linux Root Partition (x86), only for GPT.
Definition: Partition.h:181
Linux Root Partition (s390x), only for GPT.
Definition: Partition.h:178
For MS-DOS, GPT, DASD and implicit.
Definition: Partition.h:116
void set_type(PartitionType type)
Set the partition type.
Boot Loader Specification (https://uapi-group.org/specifications/specs/boot_loader_specification/), for MS-DOS and GPT.
Definition: Partition.h:129
std::string get_partition_id_name(IdNum partition_id)
Convert the IdNum partition_id to a string.
For MS-DOS and GPT.
Definition: Partition.h:106
Linux USR Partition (s390), only for GPT.
Definition: Partition.h:208
unsigned int get_id() const
Get the partition id.
void set_legacy_boot(bool legacy_boot)
Set the legacy boot flag of the partition.
PartitionTable * get_partition_table()
Return the partition table the partition belongs to.
static bool compare_by_number(const Partition *lhs, const Partition *rhs)
Compare (less than) two Partitions by number.
void set_no_automount(bool no_automount)
Set the no-automount flag of the partition.
Linux Root Partition (aarch64), only for GPT.
Definition: Partition.h:157
Linux Server Data, only for GPT.
Definition: Partition.h:151
IdNum get_linux_partition_id(LinuxPartitionIdCategory linux_partition_id_category, const Arch &arch)
Get the partition id for the Linux partition of the given category (root, usr, ...) depending on the architecture.
Linux USR Partition (ppc), only for GPT.
Definition: Partition.h:193
Only for MS-DOS.
Definition: Partition.h:94
PartitionType
Enum with partition types.
Definition: Partition.h:43
Only for MS-DOS.
Definition: Partition.h:91
void set_label(const std::string &label)
Set the partition label.
LVM partition, for MS-DOS, GPT and DASD.
Definition: Partition.h:122
Linux Root Partition (ppc64be), only for GPT.
Definition: Partition.h:163
LinuxPartitionIdCategory
Enum with categories for Linux partitions.
Definition: Partition.h:245
Linux USR Partition (riscv32), only for GPT.
Definition: Partition.h:202
Linux USR Partition (x86_64), only for GPT.
Definition: Partition.h:217
Linux Root Partition (arm), only for GPT.
Definition: Partition.h:154
std::string get_partition_type_name(PartitionType partition_type)
Convert the PartitionType partition_type to a string.
A start/length pair with a block size.
Definition: Region.h:84
Linux Root Partition (x86_64), only for GPT.
Definition: Partition.h:184
Region get_unused_surrounding_region() const
Returns the unused region surrounding the partition (including the partition itself).
PPC PReP Boot partition, for MS-DOS and GPT.
Definition: Partition.h:109
Linux USR Partition (s390x), only for GPT.
Definition: Partition.h:211
Windows basic data partition, only for GPT.
Definition: Partition.h:142
Linux USR Partition (ppc64le), only for GPT.
Definition: Partition.h:199
bool is_partition(const Device *device)
Checks whether device points to a Partition.
Intel Rapid Start Technology, for MS-DOS and GPT.
Definition: Partition.h:119
EFI System Partition, for MS-DOS and GPT.
Definition: Partition.h:132
The main container of the libstorage-ng.
Definition: Devicegraph.h:169
Swap partition, for MS-DOS, GPT and DASD.
Definition: Partition.h:112
Only for MS-DOS.
Definition: Partition.h:100
const std::string & get_label() const
Get the partition label.
An abstract Block Device.
Definition: BlkDevice.h:49
unsigned int get_number() const
Get the partition number.
const std::string & get_uuid() const
Get the partition UUID.
void set_boot(bool boot)
Set the boot flag of the partition.
Linux Root Partition (s390), only for GPT.
Definition: Partition.h:175
Linux USR Partition (arm), only for GPT.
Definition: Partition.h:187
An abstract base class for storage devices.
Definition: Device.h:81
PartitionType get_type() const
Get the partition type.
Partitionable * get_partitionable()
Return the partitionable the partition belongs to.
bool is_no_automount() const
Query the no-automount flag of the partition.
Microsoft reserved partition, only for GPT.
Definition: Partition.h:145
Only for MS-DOS.
Definition: Partition.h:103
Definition: Partitionable.h:39
Linux USR Partition (ppc64be), only for GPT.
Definition: Partition.h:196
bool is_legacy_boot() const
Query the legacy boot flag of the partition.
Linux Root Partition (ppc64le), only for GPT.
Definition: Partition.h:166
A partition of a Partitionable, e.g.
Definition: Partition.h:284
Linux USR Partition (riscv64), only for GPT.
Definition: Partition.h:205
RAID partition, for MS-DOS, GPT and DASD.
Definition: Partition.h:125
Linux Root Partition (riscv64), only for GPT.
Definition: Partition.h:172
Linux Home, only for GPT.
Definition: Partition.h:148
The storage namespace.
Definition: Actiongraph.h:39
Linux Root Partition (riscv32, only for GPT.
Definition: Partition.h:169
static Partition * find_by_name(Devicegraph *devicegraph, const std::string &name)
Find a Partition by its name.
Definition: PartitionTable.h:87
Linux Root Partition (ppc), only for GPT.
Definition: Partition.h:160
Linux USR Partition (aarch64), only for GPT.
Definition: Partition.h:190
bool is_boot() const
Query the boot flag of the partition.
IdNum
Enum with values used as partition ids.
Definition: Partition.h:88
static Partition * create(Devicegraph *devicegraph, const std::string &name, const Region ®ion, PartitionType type)
Create a device of type Partition.
void set_id(unsigned int id)
Set the partition id.