Эх сурвалжийг харах

Add test for ctors & dtors with a priority

Signed-off-by: Callum Farmer <gmbr3@opensuse.org>
Callum Farmer 1 жил өмнө
parent
commit
ba150f34d6

+ 1 - 1
apps/Makefile

@@ -64,7 +64,7 @@ TARGET_APPS = t.efi t2.efi t3.efi t4.efi t5.efi t6.efi \
 	      route80h.efi drv0_use.efi AllocPages.efi exit.efi \
 	      FreePages.efi setjmp.efi debughook.efi debughook.efi.debug \
 	      bltgrid.efi lfbgrid.efi setdbg.efi unsetdbg.efi \
-	      ctors_test.efi
+	      ctors_test.efi ctors_dtors_priority_test.efi
 TARGET_BSDRIVERS = drv0.efi
 TARGET_RTDRIVERS =
 

+ 29 - 0
apps/ctors_dtors_priority_test.c

@@ -0,0 +1,29 @@
+#include <efi.h>
+#include <efilib.h>
+
+// 101 in init_array, 65434 in ctors
+static void __attribute__((constructor(101))) ctors101() {
+    Print(L"1) ctor with lower numbered priority \r\n");
+}
+
+// 65434 in init_array, 101 in ctors
+static void __attribute__((constructor(65434))) ctors65434() {
+    Print(L"2) ctor with higher numbered priority \r\n");
+}
+
+// 101 in fini_array, 65434 in dtors
+static void __attribute__((destructor(101))) dtors101() {
+    Print(L"4) dtor with lower numbered priority \r\n");
+}
+
+// 65434 in fini_array, 101 in dtors
+static void __attribute__((destructor(65434))) dtors65434() {
+    Print(L"3) dtor with higher numbered priority \r\n");
+}
+
+EFI_STATUS
+efi_main (EFI_HANDLE image EFI_UNUSED, EFI_SYSTEM_TABLE *systab EFI_UNUSED)
+{
+    Print(L"Main function \r\n");
+    return EFI_SUCCESS;
+}