diff options
Diffstat (limited to 'gnu-efi/apps/setjmp.c')
-rw-r--r-- | gnu-efi/apps/setjmp.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/gnu-efi/apps/setjmp.c b/gnu-efi/apps/setjmp.c new file mode 100644 index 00000000..d9e0f290 --- /dev/null +++ b/gnu-efi/apps/setjmp.c @@ -0,0 +1,32 @@ + +#include <efi.h> +#include <efilib.h> +#include <efisetjmp.h> + +EFI_STATUS +efi_main( + EFI_HANDLE image_handle, + EFI_SYSTEM_TABLE *systab +) +{ + jmp_buf env; + int rc; + + InitializeLib(image_handle, systab); + rc = setjmp(env); + Print(L"setjmp() = %d\n", rc); + + if (rc == 3) { + Print(L"3 worked\n"); + longjmp(env, 0); + return 0; + } + + if (rc == 1) { + Print(L"0 got to be one yay\n"); + return 0; + } + + longjmp(env, 3); + return 0; +} |