From 88bd71a27abb658a2ac12b54ed78c5cfd4c99f53 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 31 Jul 2014 12:17:59 +0100 Subject: [PATCH] [efi] Allow compiler to perform type checks on EFI_HANDLE The EFI headers define EFI_HANDLE as a void pointer, which renders type checking on anything dealing with EFI handles somewhat useless. Work around this bizarre sabotage attempt by redefining EFI_HANDLE as a pointer to an anonymous structure. Signed-off-by: Michael Brown --- src/include/ipxe/efi/efi.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/include/ipxe/efi/efi.h b/src/include/ipxe/efi/efi.h index 0e029632..a1ba4966 100644 --- a/src/include/ipxe/efi/efi.h +++ b/src/include/ipxe/efi/efi.h @@ -41,6 +41,16 @@ FILE_LICENCE ( GPL2_OR_LATER ); #define EFIAPI __attribute__((cdecl,regparm(0))) #endif +/* EFI headers define EFI_HANDLE as a void pointer, which renders type + * checking somewhat useless. Work around this bizarre sabotage + * attempt by redefining EFI_HANDLE as a pointer to an anonymous + * structure. + */ +#define EFI_HANDLE STUPID_EFI_HANDLE +#include +#undef EFI_HANDLE +typedef struct {} *EFI_HANDLE; + /* Include the top-level EFI header files */ #include #include