11.1Sjmcneill/* $NetBSD: setjmp.c,v 1.1.1.2 2021/09/30 18:50:09 jmcneill Exp $ */ 21.1Sjmcneill 31.1Sjmcneill 41.1Sjmcneill#include <efi.h> 51.1Sjmcneill#include <efilib.h> 61.1.1.2Sjmcneill#include <efisetjmp.h> 71.1Sjmcneill 81.1SjmcneillEFI_STATUS 91.1Sjmcneillefi_main( 101.1Sjmcneill EFI_HANDLE image_handle, 111.1Sjmcneill EFI_SYSTEM_TABLE *systab 121.1Sjmcneill) 131.1Sjmcneill{ 141.1Sjmcneill jmp_buf env; 151.1Sjmcneill int rc; 161.1Sjmcneill 171.1Sjmcneill InitializeLib(image_handle, systab); 181.1.1.2Sjmcneill rc = setjmp(env); 191.1Sjmcneill Print(L"setjmp() = %d\n", rc); 201.1Sjmcneill 211.1Sjmcneill if (rc == 3) { 221.1Sjmcneill Print(L"3 worked\n"); 231.1.1.2Sjmcneill longjmp(env, 0); 241.1Sjmcneill return 0; 251.1Sjmcneill } 261.1Sjmcneill 271.1Sjmcneill if (rc == 1) { 281.1Sjmcneill Print(L"0 got to be one yay\n"); 291.1Sjmcneill return 0; 301.1Sjmcneill } 311.1Sjmcneill 321.1.1.2Sjmcneill longjmp(env, 3); 331.1Sjmcneill return 0; 341.1Sjmcneill} 35