diff options
author | Karel Zak | 2015-04-21 14:35:18 +0200 |
---|---|---|
committer | Karel Zak | 2015-04-22 12:21:19 +0200 |
commit | b17c1f14475498d8e1dc6d19792360270572d9d6 (patch) | |
tree | 478936fb8ba87f27991305961f20de67eccedbb7 /libfdisk/src/table.c | |
parent | libfdisk: fix script parser to support resize operations (diff) | |
download | kernel-qcow2-util-linux-b17c1f14475498d8e1dc6d19792360270572d9d6.tar.gz kernel-qcow2-util-linux-b17c1f14475498d8e1dc6d19792360270572d9d6.tar.xz kernel-qcow2-util-linux-b17c1f14475498d8e1dc6d19792360270572d9d6.zip |
libfdisk: add fdisk_table_get_partition_by_partno()
Signed-off-by: Karel Zak <kzak@redhat.com>
Diffstat (limited to 'libfdisk/src/table.c')
-rw-r--r-- | libfdisk/src/table.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libfdisk/src/table.c b/libfdisk/src/table.c index ae6e7daab..ea47951c1 100644 --- a/libfdisk/src/table.c +++ b/libfdisk/src/table.c @@ -158,6 +158,13 @@ int fdisk_table_next_partition( return rc; } +/** + * fdisk_table_get_partition: + * @tb: tab pointer + * @n: number of entry in table + * + * Returns: n-th entry from table or NULL + */ struct fdisk_partition *fdisk_table_get_partition( struct fdisk_table *tb, size_t n) @@ -180,6 +187,33 @@ struct fdisk_partition *fdisk_table_get_partition( } /** + * fdisk_table_get_partition_by_partno: + * @tb: tab pointer + * @partno: partition number + * + * Returns: partition with @partno or NULL. + */ +struct fdisk_partition *fdisk_table_get_partition_by_partno( + struct fdisk_table *tb, + size_t partno) +{ + struct fdisk_partition *pa = NULL; + struct fdisk_iter itr; + + if (!tb) + return NULL; + + fdisk_reset_iter(&itr, FDISK_ITER_FORWARD); + + while (fdisk_table_next_partition(tb, &itr, &pa) == 0) { + if (pa->partno == partno) + return pa; + } + + return NULL; +} + +/** * fdisk_table_add_partition * @tb: tab pointer * @pa: new entry |