24#ifndef STORAGE_FREE_INFO_H
25#define STORAGE_FREE_INFO_H
28#include <libxml/tree.h>
201 ResizeInfo(
bool resize_ok, uint32_t reasons,
unsigned long long min_size,
unsigned long long max_size);
213 void combine_min(
unsigned long long extra_min_size);
215 void combine_max(
unsigned long long extra_max_size);
217 void combine_block_size(
unsigned long long extra_block_size);
225 void shift(
unsigned long long offset);
231 unsigned long long min_size;
232 unsigned long long max_size;
234 unsigned long long block_size;
236 friend std::ostream& operator<<(std::ostream& out,
const ResizeInfo& resize_info);
242 void save(xmlNode* node)
const;
295 friend std::ostream& operator<<(std::ostream& out,
const RemoveInfo& remove_info);
304 ContentInfo(
bool is_windows,
bool is_efi,
unsigned num_homes);
311 friend std::ostream& operator<<(std::ostream& out,
const ContentInfo& content_info);
317 void save(xmlNode* node)
const;
326 SpaceInfo(
unsigned long long size,
unsigned long long used);
328 unsigned long long size;
329 unsigned long long used;
331 std::string get_size_string()
const;
333 friend std::ostream& operator<<(std::ostream& out,
const SpaceInfo& space_info);
339 void save(xmlNode* node)
const;
Definition: FreeInfo.h:301
Definition: FreeInfo.h:286
Definition: FreeInfo.h:198
void shift(unsigned long long offset)
min_size += offset max_size += offset
void combine(ResizeInfo extra_resize_info)
min_size = max(min_size, extra_resize_info.min_size) max_size = min(max_size, extra_resize_info....
Definition: FreeInfo.h:323
The storage namespace.
Definition: Actiongraph.h:40
@ RB_MIN_SIZE_FOR_FILESYSTEM
The filesystem has already the minimal possible size.
Definition: FreeInfo.h:94
@ RB_MIN_SIZE_FOR_PARTITION
The partition has already the minimal possible size.
Definition: FreeInfo.h:124
@ RB_RESIZE_NOT_SUPPORTED_DUE_TO_SNAPSHOTS
Resize of LVM logical volume is not supported since it has snapshots.
Definition: FreeInfo.h:192
@ RB_MIN_MAX_ERROR
Several limitations were combined, e.g.
Definition: FreeInfo.h:65
@ RB_EXTENDED_PARTITION
Extended partitions cannot be resized.
Definition: FreeInfo.h:131
@ RB_MIN_SIZE_FOR_LVM_LV
The LVM logical volume has already the minimal possible size.
Definition: FreeInfo.h:166
@ RB_SHRINK_NOT_SUPPORTED_FOR_LVM_LV_TYPE
Shrink of LVM logical volume of this type not supported, e.g.
Definition: FreeInfo.h:145
@ RB_ON_IMPLICIT_PARTITION_TABLE
Partition on an implicit partition table cannot be resized.
Definition: FreeInfo.h:138
@ RB_MAX_SIZE_FOR_LVM_LV_THIN
LVM thin logical volume has already maximal size.
Definition: FreeInfo.h:173
@ RB_PASSWORD_REQUIRED
The encryption password is required.
Definition: FreeInfo.h:185
@ RB_FILESYSTEM_INCONSISTENT
The filesystem seems to be inconsistent or checking filesystem consistency failed.
Definition: FreeInfo.h:87
@ RB_MAX_SIZE_FOR_FILESYSTEM
The filesystem has already the maximal possible size.
Definition: FreeInfo.h:101
@ RB_SHRINK_NOT_SUPPORTED_BY_FILESYSTEM
The filesystem does not support shrink.
Definition: FreeInfo.h:72
@ RB_RESIZE_NOT_SUPPORTED_FOR_LVM_LV_TYPE
Resize of LVM logical volume of this type not supported, e.g.
Definition: FreeInfo.h:152
@ RB_NO_SPACE_BEHIND_PARTITION
No space behind partition.
Definition: FreeInfo.h:117
@ RB_NO_SPACE_IN_LVM_VG
No space left in LVM volume group.
Definition: FreeInfo.h:159
@ RB_FILESYSTEM_FULL
The filesystem is full and cannot be shrunk.
Definition: FreeInfo.h:108
@ RB_RESIZE_NOT_SUPPORTED_BY_DEVICE
The device or one of its descendants that also needs resizing does not support resizing.
Definition: FreeInfo.h:57
@ RB_SHRINK_NOT_SUPPORTED_BY_MULTIDEVICE_FILESYSTEM
Multi-device filesystems (i.e., Btrfs) do not support shrink.
Definition: FreeInfo.h:180
@ RB_GROW_NOT_SUPPORTED_BY_FILESYSTEM
The filesystem does not support grow.
Definition: FreeInfo.h:79
@ RMB_ON_IMPLICIT_PARTITION_TABLE
Partition on an implicit partition table cannot be removed - at least not without creating a partitio...
Definition: FreeInfo.h:280
@ RMB_RENUMBER_ACTIVE_PARTITIONS
Removing the partition would result in renumbering of partitions with active stuff on them.
Definition: FreeInfo.h:274
@ RMB_HARDWARE
The device corresponds to hardware, e.g.
Definition: FreeInfo.h:268