xref: /DragonStub/inc/riscv64/efisetjmp_arch.h (revision 0f9c15fe4fd4b37691fdb505794b0d73df21d4d5)
1*0f9c15feSbmeng@tinylab.org /* SPDX-License-Identifier: GPL-2.0+ OR BSD-2-Clause */
2*0f9c15feSbmeng@tinylab.org 
3df31239aSHeinrich Schuchardt #ifndef GNU_EFI_RISCV64_SETJMP_H
4df31239aSHeinrich Schuchardt #define GNU_EFI_RISCV64_SETJMP_H
5df31239aSHeinrich Schuchardt 
6df31239aSHeinrich Schuchardt #define JMPBUF_ALIGN 8
7df31239aSHeinrich Schuchardt 
8df31239aSHeinrich Schuchardt typedef struct {
9df31239aSHeinrich Schuchardt 	/* GP regs */
10df31239aSHeinrich Schuchardt 	UINT64	s0;
11df31239aSHeinrich Schuchardt 	UINT64	s1;
12df31239aSHeinrich Schuchardt 	UINT64	s2;
13df31239aSHeinrich Schuchardt 	UINT64	s3;
14df31239aSHeinrich Schuchardt 	UINT64	s4;
15df31239aSHeinrich Schuchardt 	UINT64	s5;
16df31239aSHeinrich Schuchardt 	UINT64	s6;
17df31239aSHeinrich Schuchardt 	UINT64	s7;
18df31239aSHeinrich Schuchardt 	UINT64	s8;
19df31239aSHeinrich Schuchardt 	UINT64	s9;
20df31239aSHeinrich Schuchardt 	UINT64	s10;
21df31239aSHeinrich Schuchardt 	UINT64	s11;
22df31239aSHeinrich Schuchardt 	UINT64	sp;
23df31239aSHeinrich Schuchardt 	UINT64	ra;
24df31239aSHeinrich Schuchardt 
25df31239aSHeinrich Schuchardt 	/* FP regs */
26df31239aSHeinrich Schuchardt 	UINT64	fs0;
27df31239aSHeinrich Schuchardt 	UINT64	fs1;
28df31239aSHeinrich Schuchardt 	UINT64	fs2;
29df31239aSHeinrich Schuchardt 	UINT64	fs3;
30df31239aSHeinrich Schuchardt 	UINT64	fs4;
31df31239aSHeinrich Schuchardt 	UINT64	fs5;
32df31239aSHeinrich Schuchardt 	UINT64	fs6;
33df31239aSHeinrich Schuchardt 	UINT64	fs7;
34df31239aSHeinrich Schuchardt 	UINT64	fs8;
35df31239aSHeinrich Schuchardt 	UINT64	fs9;
36df31239aSHeinrich Schuchardt 	UINT64	fs10;
37df31239aSHeinrich Schuchardt 	UINT64	fs11;
38df31239aSHeinrich Schuchardt } ALIGN(JMPBUF_ALIGN) jmp_buf[1];
39df31239aSHeinrich Schuchardt 
40df31239aSHeinrich Schuchardt #endif /* GNU_EFI_RISCV64_SETJMP_H */
41