From ba150f34d68e8ddea000bbe4cf64300aec5b80bf Mon Sep 17 00:00:00 2001 From: Callum Farmer Date: Sun, 7 May 2023 16:31:32 +0100 Subject: Add test for ctors & dtors with a priority Signed-off-by: Callum Farmer --- apps/Makefile | 2 +- apps/ctors_dtors_priority_test.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 apps/ctors_dtors_priority_test.c (limited to 'apps') diff --git a/apps/Makefile b/apps/Makefile index 6ebd438..424ee9d 100644 --- a/apps/Makefile +++ b/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 = diff --git a/apps/ctors_dtors_priority_test.c b/apps/ctors_dtors_priority_test.c new file mode 100644 index 0000000..0458c08 --- /dev/null +++ b/apps/ctors_dtors_priority_test.c @@ -0,0 +1,29 @@ +#include +#include + +// 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; +} \ No newline at end of file -- cgit v1.2.1