18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef _M68K_UCONTEXT_H
38c2ecf20Sopenharmony_ci#define _M68K_UCONTEXT_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_citypedef int greg_t;
68c2ecf20Sopenharmony_ci#define NGREG 18
78c2ecf20Sopenharmony_citypedef greg_t gregset_t[NGREG];
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_citypedef struct fpregset {
108c2ecf20Sopenharmony_ci	int f_fpcntl[3];
118c2ecf20Sopenharmony_ci	int f_fpregs[8*3];
128c2ecf20Sopenharmony_ci} fpregset_t;
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_cistruct mcontext {
158c2ecf20Sopenharmony_ci	int version;
168c2ecf20Sopenharmony_ci	gregset_t gregs;
178c2ecf20Sopenharmony_ci	fpregset_t fpregs;
188c2ecf20Sopenharmony_ci};
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci#define MCONTEXT_VERSION 2
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_cistruct ucontext {
238c2ecf20Sopenharmony_ci	unsigned long	  uc_flags;
248c2ecf20Sopenharmony_ci	struct ucontext  *uc_link;
258c2ecf20Sopenharmony_ci	stack_t		  uc_stack;
268c2ecf20Sopenharmony_ci	struct mcontext	  uc_mcontext;
278c2ecf20Sopenharmony_ci	unsigned long	  uc_filler[80];
288c2ecf20Sopenharmony_ci	sigset_t	  uc_sigmask;	/* mask last for extensibility */
298c2ecf20Sopenharmony_ci};
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci#endif
32