setjmp.c revision 1.1
11.1Sjmcneill/* $NetBSD: setjmp.c,v 1.1 2018/08/16 18:17:47 jmcneill Exp $ */ 21.1Sjmcneill 31.1Sjmcneill 41.1Sjmcneill#include <efi.h> 51.1Sjmcneill#include <efilib.h> 61.1Sjmcneill 71.1SjmcneillEFI_STATUS 81.1Sjmcneillefi_main( 91.1Sjmcneill EFI_HANDLE image_handle, 101.1Sjmcneill EFI_SYSTEM_TABLE *systab 111.1Sjmcneill) 121.1Sjmcneill{ 131.1Sjmcneill jmp_buf env; 141.1Sjmcneill int rc; 151.1Sjmcneill 161.1Sjmcneill InitializeLib(image_handle, systab); 171.1Sjmcneill rc = setjmp(&env); 181.1Sjmcneill Print(L"setjmp() = %d\n", rc); 191.1Sjmcneill 201.1Sjmcneill if (rc == 3) { 211.1Sjmcneill Print(L"3 worked\n"); 221.1Sjmcneill longjmp(&env, 0); 231.1Sjmcneill return 0; 241.1Sjmcneill } 251.1Sjmcneill 261.1Sjmcneill if (rc == 1) { 271.1Sjmcneill Print(L"0 got to be one yay\n"); 281.1Sjmcneill return 0; 291.1Sjmcneill } 301.1Sjmcneill 311.1Sjmcneill longjmp(&env, 3); 321.1Sjmcneill return 0; 331.1Sjmcneill} 34