1 /* $NetBSD: setjmp.c,v 1.1.1.2 2021/09/30 18:50:09 jmcneill Exp $ */ 2 3 4 #include <efi.h> 5 #include <efilib.h> 6 #include <efisetjmp.h> 7 8 EFI_STATUS efi_main(EFI_HANDLE image_handle,EFI_SYSTEM_TABLE * systab)9efi_main( 10 EFI_HANDLE image_handle, 11 EFI_SYSTEM_TABLE *systab 12 ) 13 { 14 jmp_buf env; 15 int rc; 16 17 InitializeLib(image_handle, systab); 18 rc = setjmp(env); 19 Print(L"setjmp() = %d\n", rc); 20 21 if (rc == 3) { 22 Print(L"3 worked\n"); 23 longjmp(env, 0); 24 return 0; 25 } 26 27 if (rc == 1) { 28 Print(L"0 got to be one yay\n"); 29 return 0; 30 } 31 32 longjmp(env, 3); 33 return 0; 34 } 35