|
|
d30f3b |
From 787b53a66cbbec6b10d47264b9eea9b24bc4e34c Mon Sep 17 00:00:00 2001
|
|
|
d30f3b |
From: Nigel Croxon <ncroxon@redhat.com>
|
|
|
d30f3b |
Date: Mon, 6 Nov 2017 09:34:14 -0500
|
|
|
d30f3b |
Subject: [PATCH 05/25] Add EFI_DRIVER_ENTRY_POINT support for MSVC/ARM64
|
|
|
d30f3b |
|
|
|
d30f3b |
Similar to what we do for other MSVC architectures.
|
|
|
d30f3b |
|
|
|
d30f3b |
Signed-off-by: Pete Batard <pete@akeo.ie>
|
|
|
d30f3b |
Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
|
|
|
d30f3b |
---
|
|
|
d30f3b |
inc/aarch64/efibind.h | 9 +++++++--
|
|
|
d30f3b |
1 file changed, 7 insertions(+), 2 deletions(-)
|
|
|
d30f3b |
|
|
|
d30f3b |
diff --git a/inc/aarch64/efibind.h b/inc/aarch64/efibind.h
|
|
|
d30f3b |
index 182a2109062..bdaa5238e84 100644
|
|
|
d30f3b |
--- a/inc/aarch64/efibind.h
|
|
|
d30f3b |
+++ b/inc/aarch64/efibind.h
|
|
|
d30f3b |
@@ -115,9 +115,13 @@ typedef uint64_t UINTN;
|
|
|
d30f3b |
|
|
|
d30f3b |
//
|
|
|
d30f3b |
// When build similiar to FW, then link everything together as
|
|
|
d30f3b |
-// one big module.
|
|
|
d30f3b |
+// one big module. For the MSVC toolchain, we simply tell the
|
|
|
d30f3b |
+// linker what our driver init function is using /ENTRY.
|
|
|
d30f3b |
//
|
|
|
d30f3b |
-
|
|
|
d30f3b |
+#if defined(_MSC_EXTENSIONS)
|
|
|
d30f3b |
+#define EFI_DRIVER_ENTRY_POINT(InitFunction) \
|
|
|
d30f3b |
+ __pragma(comment(linker, "/ENTRY:" # InitFunction))
|
|
|
d30f3b |
+#else
|
|
|
d30f3b |
#define EFI_DRIVER_ENTRY_POINT(InitFunction) \
|
|
|
d30f3b |
UINTN \
|
|
|
d30f3b |
InitializeDriver ( \
|
|
|
d30f3b |
@@ -134,6 +138,7 @@ typedef uint64_t UINTN;
|
|
|
d30f3b |
EFI_SYSTEM_TABLE *systab \
|
|
|
d30f3b |
) __attribute__((weak, \
|
|
|
d30f3b |
alias ("InitializeDriver")));
|
|
|
d30f3b |
+#endif
|
|
|
d30f3b |
|
|
|
d30f3b |
#define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \
|
|
|
d30f3b |
(_if)->LoadInternal(type, name, entry)
|
|
|
d30f3b |
--
|
|
|
d30f3b |
2.15.0
|
|
|
d30f3b |
|