diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:16:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:16:34 +0000 |
commit | a398d2c2b5fd6ab0545d8bb019f9a970b2309404 (patch) | |
tree | 272fc7ab226258d7ceddee12c8c682c8e711c2b0 /tests/print-flags.c | |
parent | Initial commit. (diff) | |
download | parted-a398d2c2b5fd6ab0545d8bb019f9a970b2309404.tar.xz parted-a398d2c2b5fd6ab0545d8bb019f9a970b2309404.zip |
Adding upstream version 3.6.upstream/3.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/print-flags.c')
-rw-r--r-- | tests/print-flags.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/print-flags.c b/tests/print-flags.c new file mode 100644 index 0000000..db088e8 --- /dev/null +++ b/tests/print-flags.c @@ -0,0 +1,58 @@ +/* Print the available flags for a particular partition. */ + +#include <config.h> +#include <parted/parted.h> +#include <stdio.h> +#include <stdlib.h> +#include "progname.h" + +int +main (int argc, char **argv) +{ + PedDevice *dev; + PedDisk *disk; + PedPartition *part; + int partnum; + + set_program_name (argv[0]); + + if (argc != 3 ) { + fprintf (stderr, "Usage: %s <device> <ptnnum>\n", argv[0]); + return EXIT_FAILURE; + } + + dev = ped_device_get(argv[1]); + if (!dev) { + fprintf (stderr, "Error: failed to create device %s\n", + argv[1]); + return EXIT_FAILURE; + } + if (!ped_device_open (dev)) { + fprintf (stderr, "Error: failed to open device %s\n", argv[1]); + return EXIT_FAILURE; + } + disk = ped_disk_new (dev); + if (!disk) { + fprintf (stderr, + "Error: failed to read partition table from device %s\n", + argv[1]); + return EXIT_FAILURE; + } + + partnum = atoi (argv[2]); + part = ped_disk_get_partition (disk, partnum); + if (!part) { + fprintf (stderr, + "Error: failed to get partition %d from device %s\n", + partnum, argv[1]); + return EXIT_FAILURE; + } + + for (PedPartitionFlag flag = PED_PARTITION_FIRST_FLAG; + flag <= PED_PARTITION_LAST_FLAG; flag++) + { + if (ped_partition_is_flag_available (part, flag)) + puts (ped_partition_flag_get_name (flag)); + } + return EXIT_SUCCESS; +} |