74 lines
2.7 KiB
Diff
74 lines
2.7 KiB
Diff
|
From 6ce543f4999f21b363865bf845543326ba91406b Mon Sep 17 00:00:00 2001
|
||
|
From: Adam Williamson <awilliam@redhat.com>
|
||
|
Date: Mon, 20 Jun 2022 12:07:14 -0700
|
||
|
Subject: [PATCH] Set _FIRST_ and _LAST_ macro values in disk.h directly
|
||
|
|
||
|
I may be missing something, but it seems impossible to use these
|
||
|
_FIRST_ and _LAST_ macros in practice as they are currently set.
|
||
|
You cannot use them at preprocessor time, because they will
|
||
|
always evaluate to 0 at that time, because the preprocessor does
|
||
|
not handle enums:
|
||
|
|
||
|
https://stackoverflow.com/questions/34677148
|
||
|
|
||
|
and you cannot really use them at build time, because if you do
|
||
|
something like this:
|
||
|
|
||
|
if (PED_PARTITION_LAST_FLAG > 17) {
|
||
|
PyModule_AddIntConstant(m, "PARTITION_ESP", PED_PARTITION_ESP);
|
||
|
}
|
||
|
|
||
|
the compiler still throws an undeclared identifier error if you
|
||
|
actually try and build the code against an older parted.
|
||
|
|
||
|
Unless anyone can suggest a way to use these properly as-is,
|
||
|
this is the best idea I can come up with: we just have to define
|
||
|
the _FIRST_ and _LAST_ values directly, and remember to keep
|
||
|
them in line when adding new entries to the enums.
|
||
|
|
||
|
Signed-off-by: Adam Williamson <awilliam@redhat.com>
|
||
|
---
|
||
|
include/parted/disk.in.h | 12 ++++++------
|
||
|
1 file changed, 6 insertions(+), 6 deletions(-)
|
||
|
|
||
|
diff --git a/include/parted/disk.in.h b/include/parted/disk.in.h
|
||
|
index 672c4ee..fedcee9 100644
|
||
|
--- a/include/parted/disk.in.h
|
||
|
+++ b/include/parted/disk.in.h
|
||
|
@@ -47,8 +47,8 @@ enum _PedDiskFlag {
|
||
|
/* This flag controls whether the boot flag of a GPT PMBR is set */
|
||
|
PED_DISK_GPT_PMBR_BOOT=2,
|
||
|
};
|
||
|
-#define PED_DISK_FIRST_FLAG PED_DISK_CYLINDER_ALIGNMENT
|
||
|
-#define PED_DISK_LAST_FLAG PED_DISK_GPT_PMBR_BOOT
|
||
|
+#define PED_DISK_FIRST_FLAG 1
|
||
|
+#define PED_DISK_LAST_FLAG 2
|
||
|
|
||
|
/**
|
||
|
* Partition types
|
||
|
@@ -88,8 +88,8 @@ enum _PedPartitionFlag {
|
||
|
PED_PARTITION_BLS_BOOT=20,
|
||
|
PED_PARTITION_LINUX_HOME=21,
|
||
|
};
|
||
|
-#define PED_PARTITION_FIRST_FLAG PED_PARTITION_BOOT
|
||
|
-#define PED_PARTITION_LAST_FLAG PED_PARTITION_LINUX_HOME
|
||
|
+#define PED_PARTITION_FIRST_FLAG 1
|
||
|
+#define PED_PARTITION_LAST_FLAG 21
|
||
|
|
||
|
enum _PedDiskTypeFeature {
|
||
|
PED_DISK_TYPE_EXTENDED=1, /**< supports extended partitions */
|
||
|
@@ -97,8 +97,8 @@ enum _PedDiskTypeFeature {
|
||
|
PED_DISK_TYPE_PARTITION_TYPE_ID=4, /**< supports partition type-ids */
|
||
|
PED_DISK_TYPE_PARTITION_TYPE_UUID=8, /**< supports partition type-uuids */
|
||
|
};
|
||
|
-#define PED_DISK_TYPE_FIRST_FEATURE PED_DISK_TYPE_EXTENDED
|
||
|
-#define PED_DISK_TYPE_LAST_FEATURE PED_DISK_TYPE_PARTITION_TYPE_UUID
|
||
|
+#define PED_DISK_TYPE_FIRST_FEATURE 1
|
||
|
+#define PED_DISK_TYPE_LAST_FEATURE 8
|
||
|
|
||
|
struct _PedDisk;
|
||
|
struct _PedPartition;
|
||
|
--
|
||
|
2.36.1
|
||
|
|