01ad6d081f2ff2f977a384ed058df3ed1d00792f
[platform/kernel/u-boot.git] / arch / riscv / include / asm / setjmp.h
1 /*
2  * (C) Copyright 2018 Alexander Graf <agraf@suse.de>
3  *
4  * SPDX-License-Identifier:     GPL-2.0+
5  */
6
7 #ifndef _SETJMP_H_
8 #define _SETJMP_H_      1
9
10 /*
11  * This really should be opaque, but the EFI implementation wrongly
12  * assumes that a 'struct jmp_buf_data' is defined.
13  */
14 struct jmp_buf_data {
15         /* x2, x8, x9, x18, x19, x20, x21, x22, x23, x24, x25, x26, x27, sp */
16         unsigned long s_regs[12];       /* s0 - s11 */
17         unsigned long ra;
18         unsigned long sp;
19 };
20
21 typedef struct jmp_buf_data jmp_buf[1];
22
23 int setjmp(jmp_buf jmp);
24 void longjmp(jmp_buf jmp, int ret);
25
26 #endif /* _SETJMP_H_ */