Redefine jmp_buf to comply with C calling convention.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@infinera.com> Signed-off-by: Nigel Croxon <ncroxon@redhat.com>
This commit is contained in:
parent
d34132e62f
commit
5b74db0e15
@ -12,12 +12,12 @@ efi_main(
|
||||
int rc;
|
||||
|
||||
InitializeLib(image_handle, systab);
|
||||
rc = setjmp(&env);
|
||||
rc = setjmp(env);
|
||||
Print(L"setjmp() = %d\n", rc);
|
||||
|
||||
if (rc == 3) {
|
||||
Print(L"3 worked\n");
|
||||
longjmp(&env, 0);
|
||||
longjmp(env, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -26,6 +26,6 @@ efi_main(
|
||||
return 0;
|
||||
}
|
||||
|
||||
longjmp(&env, 3);
|
||||
longjmp(env, 3);
|
||||
return 0;
|
||||
}
|
||||
|
@ -28,6 +28,6 @@ typedef struct {
|
||||
UINT64 D13;
|
||||
UINT64 D14;
|
||||
UINT64 D15;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf[1];
|
||||
|
||||
#endif /* GNU_EFI_AARCH64_SETJMP_H */
|
||||
|
@ -16,6 +16,6 @@ typedef struct {
|
||||
UINT32 R12;
|
||||
UINT32 R13;
|
||||
UINT32 R14;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf[1];
|
||||
|
||||
#endif /* GNU_EFI_ARM_SETJMP_H */
|
||||
|
@ -4,7 +4,7 @@
|
||||
#include "eficompiler.h"
|
||||
#include "efisetjmp_arch.h"
|
||||
|
||||
extern UINTN setjmp(jmp_buf *env) __attribute__((returns_twice));
|
||||
extern VOID longjmp(jmp_buf *env, UINTN value) __attribute__((noreturn));
|
||||
extern UINTN setjmp(jmp_buf env) __attribute__((returns_twice));
|
||||
extern VOID longjmp(jmp_buf env, UINTN value) __attribute__((noreturn));
|
||||
|
||||
#endif /* GNU_EFI_SETJMP_H */
|
||||
|
@ -10,6 +10,6 @@ typedef struct {
|
||||
UINT32 Ebp;
|
||||
UINT32 Esp;
|
||||
UINT32 Eip;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf[1];
|
||||
|
||||
#endif /* GNU_EFI_IA32_SETJMP_H */
|
||||
|
@ -42,6 +42,6 @@ typedef struct {
|
||||
UINT64 Predicates;
|
||||
UINT64 LoopCount;
|
||||
UINT64 FPSR;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf[1];
|
||||
|
||||
#endif /* GNU_EFI_IA64_SETJMP_H */
|
||||
|
@ -29,6 +29,6 @@ typedef struct {
|
||||
UINT64 F30;
|
||||
UINT64 F31;
|
||||
#endif
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf[1];
|
||||
|
||||
#endif /* GNU_EFI_MIPS64EL_SETJMP_H */
|
||||
|
@ -17,6 +17,6 @@ typedef struct {
|
||||
UINT64 Rip;
|
||||
UINT64 MxCsr;
|
||||
UINT8 XmmBuffer[160]; // XMM6 - XMM15
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf;
|
||||
} ALIGN(JMPBUF_ALIGN) jmp_buf[1];
|
||||
|
||||
#endif /* GNU_EFI_X86_64_SETJMP_H */
|
||||
|
Loading…
x
Reference in New Issue
Block a user