diff --git a/inc/aarch64/efibind.h b/inc/aarch64/efibind.h index 182a210..bdaa523 100644 --- a/inc/aarch64/efibind.h +++ b/inc/aarch64/efibind.h @@ -115,9 +115,13 @@ typedef uint64_t UINTN; // // When build similiar to FW, then link everything together as -// one big module. +// one big module. For the MSVC toolchain, we simply tell the +// linker what our driver init function is using /ENTRY. // - +#if defined(_MSC_EXTENSIONS) +#define EFI_DRIVER_ENTRY_POINT(InitFunction) \ + __pragma(comment(linker, "/ENTRY:" # InitFunction)) +#else #define EFI_DRIVER_ENTRY_POINT(InitFunction) \ UINTN \ InitializeDriver ( \ @@ -134,6 +138,7 @@ typedef uint64_t UINTN; EFI_SYSTEM_TABLE *systab \ ) __attribute__((weak, \ alias ("InitializeDriver"))); +#endif #define LOAD_INTERNAL_DRIVER(_if, type, name, entry) \ (_if)->LoadInternal(type, name, entry)