/* SPDX-License-Identifier: GPL-2.0 */ | |
/* | |
* Written by H. Peter Anvin <hpa@zytor.com> | |
* Brought in from Linux v4.4 and modified for U-Boot | |
* From Linux arch/um/sys-i386/setjmp.S | |
*/ | |
#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; | |
unsigned int __ebp; | |
unsigned int __esi; | |
unsigned int __edi; | |
unsigned int __eip; | |
}; | |
#endif | |
typedef struct jmp_buf_data jmp_buf[1]; | |
int setjmp(jmp_buf env); | |
void longjmp(jmp_buf env, int val); | |
#endif |