setjmp.c 426 B

1234567891011121314151617181920212223242526272829303132
  1. #include <efi.h>
  2. #include <efilib.h>
  3. #include <efisetjmp.h>
  4. EFI_STATUS
  5. efi_main(
  6. EFI_HANDLE image_handle,
  7. EFI_SYSTEM_TABLE *systab
  8. )
  9. {
  10. jmp_buf env;
  11. int rc;
  12. InitializeLib(image_handle, systab);
  13. rc = setjmp(env);
  14. Print(L"setjmp() = %d\n", rc);
  15. if (rc == 3) {
  16. Print(L"3 worked\n");
  17. longjmp(env, 0);
  18. return 0;
  19. }
  20. if (rc == 1) {
  21. Print(L"0 got to be one yay\n");
  22. return 0;
  23. }
  24. longjmp(env, 3);
  25. return 0;
  26. }