]> code.delx.au - refind/blob - include/refit_call_wrapper.h
Added support for ARM64 (AARCH64) platform in rEFInd, drivers, and
[refind] / include / refit_call_wrapper.h
1 #ifndef __REFIT_CALL_WRAPPER_H__
2 #define __REFIT_CALL_WRAPPER_H__
3
4 #ifdef __MAKEWITH_GNUEFI
5
6 #if defined (EFIX64) | defined (AARCH64)
7 # define refit_call1_wrapper(f, a1) \
8 uefi_call_wrapper(f, 1, (UINT64)(a1))
9 # define refit_call2_wrapper(f, a1, a2) \
10 uefi_call_wrapper(f, 2, (UINT64)(a1), (UINT64)(a2))
11 # define refit_call3_wrapper(f, a1, a2, a3) \
12 uefi_call_wrapper(f, 3, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3))
13 # define refit_call4_wrapper(f, a1, a2, a3, a4) \
14 uefi_call_wrapper(f, 4, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4))
15 # define refit_call5_wrapper(f, a1, a2, a3, a4, a5) \
16 uefi_call_wrapper(f, 5, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), (UINT64)(a5))
17 # define refit_call6_wrapper(f, a1, a2, a3, a4, a5, a6) \
18 uefi_call_wrapper(f, 6, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), (UINT64)(a5), (UINT64)(a6))
19 # define refit_call10_wrapper(f, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
20 uefi_call_wrapper(f, 10, (UINT64)(a1), (UINT64)(a2), (UINT64)(a3), (UINT64)(a4), (UINT64)(a5), (UINT64)(a6), (UINT64)(a7), (UINT64)(a8), (UINT64)(a9), (UINT64)(a10))
21 #else
22 # define refit_call1_wrapper(f, a1) \
23 uefi_call_wrapper(f, 1, a1)
24 # define refit_call2_wrapper(f, a1, a2) \
25 uefi_call_wrapper(f, 2, a1, a2)
26 # define refit_call3_wrapper(f, a1, a2, a3) \
27 uefi_call_wrapper(f, 3, a1, a2, a3)
28 # define refit_call4_wrapper(f, a1, a2, a3, a4) \
29 uefi_call_wrapper(f, 4, a1, a2, a3, a4)
30 # define refit_call5_wrapper(f, a1, a2, a3, a4, a5) \
31 uefi_call_wrapper(f, 5, a1, a2, a3, a4, a5)
32 # define refit_call6_wrapper(f, a1, a2, a3, a4, a5, a6) \
33 uefi_call_wrapper(f, 6, a1, a2, a3, a4, a5, a6)
34 # define refit_call10_wrapper(f, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
35 uefi_call_wrapper(f, 10, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
36 #endif
37
38 #else /* not GNU EFI -- TianoCore EDK2 */
39
40 #define refit_call1_wrapper(f, a1) \
41 f(a1)
42 #define refit_call2_wrapper(f, a1, a2) \
43 f(a1, a2)
44 #define refit_call3_wrapper(f, a1, a2, a3) \
45 f(a1, a2, a3)
46 #define refit_call4_wrapper(f, a1, a2, a3, a4) \
47 f(a1, a2, a3, a4)
48 #define refit_call5_wrapper(f, a1, a2, a3, a4, a5) \
49 f(a1, a2, a3, a4, a5)
50 #define refit_call6_wrapper(f, a1, a2, a3, a4, a5, a6) \
51 f(a1, a2, a3, a4, a5, a6)
52 #define refit_call7_wrapper(f, a1, a2, a3, a4, a5, a6, a7) \
53 f(a1, a2, a3, a4, a5, a6, a7)
54 #define refit_call8_wrapper(f, a1, a2, a3, a4, a5, a6, a7, a8) \
55 f(a1, a2, a3, a4, a5, a6, a7, a8)
56 #define refit_call9_wrapper(f, a1, a2, a3, a4, a5, a6, a7, a8, a9) \
57 f(a1, a2, a3, a4, a5, a6, a7, a8, a9)
58 #define refit_call10_wrapper(f, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) \
59 f(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
60
61 #define uefi_call_wrapper(f, n, ...) \
62 f(__VA_ARGS__)
63
64 #endif /* not GNU EFI -- TianoCore EDK2 */
65
66 #endif /* !__REFIT_CALL_WRAPPER_H__ */
67