dae0b4b0b0
users, and it seems to make more sense to put it here than in the application. All of these are derived from the Tiano code, but I re-wrote the x86_64 one because we use the ELF psABI calling conventions instead of the MS ABI calling conventions. Which is to say you probably shouldn't setjmp()/longjmp() between functions with EFIAPI (aka __attribute__((ms_abi))) and those without. Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
32 lines
406 B
C
32 lines
406 B
C
|
|
#include <efi.h>
|
|
#include <efilib.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;
|
|
}
|