xref: /linux/arch/m68k/include/uapi/asm/ucontext.h (revision 090748e62f57a80286b2fcc32fe2be069f891200)
1*5247c783SThomas Weißschuh /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2*5247c783SThomas Weißschuh #ifndef _M68K_UCONTEXT_H
3*5247c783SThomas Weißschuh #define _M68K_UCONTEXT_H
4*5247c783SThomas Weißschuh 
5*5247c783SThomas Weißschuh #include <asm/sigcontext.h>
6*5247c783SThomas Weißschuh #include <asm/signal.h>
7*5247c783SThomas Weißschuh 
8*5247c783SThomas Weißschuh typedef int greg_t;
9*5247c783SThomas Weißschuh #define NGREG 18
10*5247c783SThomas Weißschuh typedef greg_t gregset_t[NGREG];
11*5247c783SThomas Weißschuh 
12*5247c783SThomas Weißschuh typedef struct fpregset {
13*5247c783SThomas Weißschuh 	int f_fpcntl[3];
14*5247c783SThomas Weißschuh 	int f_fpregs[8*3];
15*5247c783SThomas Weißschuh } fpregset_t;
16*5247c783SThomas Weißschuh 
17*5247c783SThomas Weißschuh struct mcontext {
18*5247c783SThomas Weißschuh 	int version;
19*5247c783SThomas Weißschuh 	gregset_t gregs;
20*5247c783SThomas Weißschuh 	fpregset_t fpregs;
21*5247c783SThomas Weißschuh };
22*5247c783SThomas Weißschuh 
23*5247c783SThomas Weißschuh #define MCONTEXT_VERSION 2
24*5247c783SThomas Weißschuh 
25*5247c783SThomas Weißschuh struct ucontext {
26*5247c783SThomas Weißschuh 	unsigned long	  uc_flags;
27*5247c783SThomas Weißschuh 	struct ucontext  *uc_link;
28*5247c783SThomas Weißschuh 	stack_t		  uc_stack;
29*5247c783SThomas Weißschuh 	struct mcontext	  uc_mcontext;
30*5247c783SThomas Weißschuh 	unsigned long	  uc_filler[80];
31*5247c783SThomas Weißschuh 	sigset_t	  uc_sigmask;	/* mask last for extensibility */
32*5247c783SThomas Weißschuh };
33*5247c783SThomas Weißschuh 
34*5247c783SThomas Weißschuh #endif
35