From 964927323ff0b0cb7b00320d08589db7b429e442 Mon Sep 17 00:00:00 2001 From: Ivan Gorinov Date: Tue, 19 Jun 2018 11:40:42 -0700 Subject: x86: Add 64-bit setjmp/longjmp implementation Add setjmp/longjmp functions for x86_64. Signed-off-by: Ivan Gorinov Reviewed-by: Bin Meng --- arch/x86/include/asm/setjmp.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'arch/x86/include/asm/setjmp.h') diff --git a/arch/x86/include/asm/setjmp.h b/arch/x86/include/asm/setjmp.h index f25975fe1d..49c36c1cc8 100644 --- a/arch/x86/include/asm/setjmp.h +++ b/arch/x86/include/asm/setjmp.h @@ -8,6 +8,21 @@ #ifndef __setjmp_h #define __setjmp_h +#ifdef CONFIG_X86_64 + +struct jmp_buf_data { + unsigned long __rip; + unsigned long __rsp; + unsigned long __rbp; + unsigned long __rbx; + unsigned long __r12; + unsigned long __r13; + unsigned long __r14; + unsigned long __r15; +}; + +#else + struct jmp_buf_data { unsigned int __ebx; unsigned int __esp; @@ -17,6 +32,8 @@ struct jmp_buf_data { unsigned int __eip; }; +#endif + int setjmp(struct jmp_buf_data *jmp_buf); void longjmp(struct jmp_buf_data *jmp_buf, int val); -- cgit