xref: /openbmc/u-boot/arch/arm/include/asm/setjmp.h (revision c60bfe9b)
1 /*
2  * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
3  * (C) Copyright 2016 Alexander Graf <agraf@suse.de>
4  *
5  * SPDX-License-Identifier:	GPL-2.0+
6  */
7 
8 #ifndef _SETJMP_H_
9 #define _SETJMP_H_	1
10 
11 /*
12  * This really should be opaque, but the EFI implementation wrongly
13  * assumes that a 'struct jmp_buf_data' is defined.
14  */
15 struct jmp_buf_data {
16 #if defined(__aarch64__)
17 	u64  regs[13];
18 #else
19 	u32  regs[10];  /* r4-r9, sl, fp, sp, lr */
20 #endif
21 };
22 
23 typedef struct jmp_buf_data jmp_buf[1];
24 
25 int setjmp(jmp_buf jmp);
26 void longjmp(jmp_buf jmp, int ret);
27 
28 #endif /* _SETJMP_H_ */
29