mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-12-11 05:42:58 +00:00
964927323f
Add setjmp/longjmp functions for x86_64. Signed-off-by: Ivan Gorinov <ivan.gorinov@intel.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
40 lines
719 B
C
40 lines
719 B
C
/* 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
|
|
|
|
int setjmp(struct jmp_buf_data *jmp_buf);
|
|
void longjmp(struct jmp_buf_data *jmp_buf, int val);
|
|
|
|
#endif
|