summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNigel Croxon <ncroxon@redhat.com>2019-03-15 09:32:06 -0400
committerNigel Croxon <ncroxon@redhat.com>2019-03-15 09:32:06 -0400
commit5b74db0e154ffd2fba4bcc254069844f21913988 (patch)
treed9bbb30fa1e591544973ff2621d3ce8139f1cdff
parentd34132e62f666904158c7ec2f1eef5a9d5281c36 (diff)
downloadgnu-efi-5b74db0e154ffd2fba4bcc254069844f21913988.tar.gz
gnu-efi-5b74db0e154ffd2fba4bcc254069844f21913988.tar.xz
gnu-efi-5b74db0e154ffd2fba4bcc254069844f21913988.zip
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>
-rw-r--r--apps/setjmp.c6
-rw-r--r--inc/aarch64/efisetjmp_arch.h2
-rw-r--r--inc/arm/efisetjmp_arch.h2
-rw-r--r--inc/efisetjmp.h4
-rw-r--r--inc/ia32/efisetjmp_arch.h2
-rw-r--r--inc/ia64/efisetjmp_arch.h2
-rw-r--r--inc/mips64el/efisetjmp_arch.h2
-rw-r--r--inc/x86_64/efisetjmp_arch.h2
8 files changed, 11 insertions, 11 deletions
diff --git a/apps/setjmp.c b/apps/setjmp.c
index bd70c11..b20070e 100644
--- a/apps/setjmp.c
+++ b/apps/setjmp.c
@@ -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;
}
diff --git a/inc/aarch64/efisetjmp_arch.h b/inc/aarch64/efisetjmp_arch.h
index abd7a0e..8dbce07 100644
--- a/inc/aarch64/efisetjmp_arch.h
+++ b/inc/aarch64/efisetjmp_arch.h
@@ -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 */
diff --git a/inc/arm/efisetjmp_arch.h b/inc/arm/efisetjmp_arch.h
index 3a09ea5..17f5dc0 100644
--- a/inc/arm/efisetjmp_arch.h
+++ b/inc/arm/efisetjmp_arch.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 */
diff --git a/inc/efisetjmp.h b/inc/efisetjmp.h
index 58a93a7..de69194 100644
--- a/inc/efisetjmp.h
+++ b/inc/efisetjmp.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 */
diff --git a/inc/ia32/efisetjmp_arch.h b/inc/ia32/efisetjmp_arch.h
index 17184e7..a5c1a81 100644
--- a/inc/ia32/efisetjmp_arch.h
+++ b/inc/ia32/efisetjmp_arch.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 */
diff --git a/inc/ia64/efisetjmp_arch.h b/inc/ia64/efisetjmp_arch.h
index 3afa044..ceda448 100644
--- a/inc/ia64/efisetjmp_arch.h
+++ b/inc/ia64/efisetjmp_arch.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 */
diff --git a/inc/mips64el/efisetjmp_arch.h b/inc/mips64el/efisetjmp_arch.h
index fd17f1f..2b8f756 100644
--- a/inc/mips64el/efisetjmp_arch.h
+++ b/inc/mips64el/efisetjmp_arch.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 */
diff --git a/inc/x86_64/efisetjmp_arch.h b/inc/x86_64/efisetjmp_arch.h
index a489993..b1ad1fe 100644
--- a/inc/x86_64/efisetjmp_arch.h
+++ b/inc/x86_64/efisetjmp_arch.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 */