grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] efi: Change grub_efi_boolean_t from char to enum


From: Vladimir 'phcoder' Serbinenko
Subject: Re: [PATCH] efi: Change grub_efi_boolean_t from char to enum
Date: Thu, 31 Aug 2023 20:36:43 +0200

I see little value in using enum here and too much compiler variance about how it's handled. Compiler is pretty much allowed to choose any type for enum. If we go this route at all we should at very least do a compile time assert. Ideally I would keep it as-is. C unlike C++ does nothing to enforce enum. Feel free to put GRUB_EFI_TRUE and FALSE into unnamed enum

Le lun. 14 août 2023, 23:39, Glenn Washburn <development@efficientek.com> a écrit :
This allows using GRUB_EFI_TRUE and GRUB_EFI_FALSE with proper type and
value checking. The UEFI 2.10 specification, in section 2.3.1, table 2.3,
says the size of the boolean is 1 byte and may only contain the values 0 or
1. In order to have the enum be 1-byte in size instead of the default
int-sized, add the packed attribute to the enum.

Signed-off-by: Glenn Washburn <development@efficientek.com>
---
 include/grub/efi/api.h | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h
index 5934db1c992b..be7c128dfb42 100644
--- a/include/grub/efi/api.h
+++ b/include/grub/efi/api.h
@@ -552,7 +552,13 @@ enum grub_efi_reset_type
 typedef enum grub_efi_reset_type grub_efi_reset_type_t;

 /* Types.  */
-typedef char grub_efi_boolean_t;
+enum GRUB_PACKED grub_efi_boolean
+  {
+    GRUB_EFI_FALSE,
+    GRUB_EFI_TRUE
+  };
+typedef enum grub_efi_boolean grub_efi_boolean_t;
+
 #if GRUB_CPU_SIZEOF_VOID_P == 8
 typedef grub_int64_t grub_efi_intn_t;
 typedef grub_uint64_t grub_efi_uintn_t;
--
2.34.1


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

reply via email to

[Prev in Thread] Current Thread [Next in Thread]