[efi] Allow compiler to perform type checks on EFI_EVENT

As with EFI_HANDLE, the EFI headers define EFI_EVENT as a void
pointer, rendering EFI_EVENT compatible with a pointer to itself and
hence guaranteeing that pointer type bugs will be introduced.

Redefine EFI_EVENT as a pointer to an anonymous structure (as we
already do for EFI_HANDLE) to allow the compiler to perform type
checking as expected.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2025-07-15 16:51:05 +01:00
parent 1e3fb1b37e
commit 8701863a17
3 changed files with 9 additions and 6 deletions
+1 -1
View File
@@ -387,7 +387,7 @@ static int efi_iskey ( void ) {
EFI_BOOT_SERVICES *bs = efi_systab->BootServices;
EFI_SIMPLE_TEXT_INPUT_PROTOCOL *conin = efi_systab->ConIn;
EFI_SIMPLE_TEXT_INPUT_EX_PROTOCOL *conin_ex = efi_conin_ex;
EFI_EVENT *event;
EFI_EVENT event;
EFI_STATUS efirc;
/* If we are mid-sequence, we are always ready */
+1 -1
View File
@@ -175,7 +175,7 @@ static void efi_snp_poll ( struct efi_snp_device *snpdev ) {
while ( ( iobuf = netdev_rx_dequeue ( snpdev->netdev ) ) ) {
list_add_tail ( &iobuf->list, &snpdev->rx );
snpdev->interrupts |= EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT;
bs->SignalEvent ( &snpdev->snp.WaitForPacket );
bs->SignalEvent ( snpdev->snp.WaitForPacket );
}
}