Module Name: src Committed By: riastradh Date: Thu Sep 22 14:46:38 UTC 2022
Modified Files: src/sys/dev/efi: efi.h Log Message: efi(9): Set correct calling convention for EFI runtime services. No functional change intended -- this only affects x86, which currently doesn't support EFI runtime services. To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/sys/dev/efi/efi.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/efi/efi.h diff -u src/sys/dev/efi/efi.h:1.1 src/sys/dev/efi/efi.h:1.2 --- src/sys/dev/efi/efi.h:1.1 Sat Aug 20 10:55:28 2022 +++ src/sys/dev/efi/efi.h Thu Sep 22 14:46:37 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: efi.h,v 1.1 2022/08/20 10:55:28 riastradh Exp $ */ +/* $NetBSD: efi.h,v 1.2 2022/09/22 14:46:37 riastradh Exp $ */ /*- * Copyright (c) 2004 Marcel Moolenaar @@ -38,6 +38,12 @@ * https://uefi.org/sites/default/files/resources/UEFI_Spec_2_9_2021_03_18.pdf */ +#if defined(__i386__) || defined(__x86_64__) +#define EFIAPI __attribute__((__ms_abi__)) +#else +#define EFIAPI /* empty */ +#endif + enum efi_reset { EFI_RESET_COLD, EFI_RESET_WARM, @@ -121,22 +127,24 @@ struct efi_tblhdr { struct efi_rt { struct efi_tblhdr rt_hdr; - efi_status (*rt_gettime)(struct efi_tm *, struct efi_tmcap *); - efi_status (*rt_settime)(struct efi_tm *); + efi_status (*rt_gettime)(struct efi_tm *, struct efi_tmcap *) + EFIAPI; + efi_status (*rt_settime)(struct efi_tm *) EFIAPI; efi_status (*rt_getwaketime)(uint8_t *, uint8_t *, - struct efi_tm *); - efi_status (*rt_setwaketime)(uint8_t, struct efi_tm *); + struct efi_tm *) EFIAPI; + efi_status (*rt_setwaketime)(uint8_t, struct efi_tm *) EFIAPI; efi_status (*rt_setvirtual)(u_long, u_long, uint32_t, - struct efi_md *); - efi_status (*rt_cvtptr)(u_long, void **); + struct efi_md *) EFIAPI; + efi_status (*rt_cvtptr)(u_long, void **) EFIAPI; efi_status (*rt_getvar)(efi_char *, struct uuid *, uint32_t *, - u_long *, void *); - efi_status (*rt_scanvar)(u_long *, efi_char *, struct uuid *); + u_long *, void *) EFIAPI; + efi_status (*rt_scanvar)(u_long *, efi_char *, struct uuid *) + EFIAPI; efi_status (*rt_setvar)(efi_char *, struct uuid *, uint32_t, - u_long, void *); - efi_status (*rt_gethicnt)(uint32_t *); + u_long, void *) EFIAPI; + efi_status (*rt_gethicnt)(uint32_t *) EFIAPI; efi_status (*rt_reset)(enum efi_reset, efi_status, u_long, - efi_char *); + efi_char *) EFIAPI; }; struct efi_systbl {