diff options
Diffstat (limited to 'common/partitions.c')
-rw-r--r-- | common/partitions.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/common/partitions.c b/common/partitions.c index d80878e065..b579559672 100644 --- a/common/partitions.c +++ b/common/partitions.c @@ -156,3 +156,30 @@ int partition_parser_register(struct partition_parser *p) return 0; } + +/** + * cdev_unallocated_space - return unallocated space + * cdev: The cdev + * + * This function returns the space that is not allocated by any partition + * at the start of a device. + * + * Return: The unallocated space at the start of the device in bytes + */ +loff_t cdev_unallocated_space(struct cdev *cdev) +{ + struct cdev *partcdev; + loff_t start; + + if (!cdev) + return 0; + + start = cdev->size; + + list_for_each_entry(partcdev, &cdev->partitions, partition_entry) { + if (partcdev->offset < start) + start = partcdev->offset; + } + + return start; +} |