1#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  2 || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
  3
  4#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
  5#define MINSIGSTKSZ 4096
  6#define SIGSTKSZ 16384
  7#endif
  8
  9#if defined(_GNU_SOURCE)
 10#define LARCH_NGREG 32
 11#define LARCH_REG_RA 1
 12#define LARCH_REG_SP 3
 13#define LARCH_REG_S0 23
 14#define LARCH_REG_S1 24
 15#define LARCH_REG_A0 4
 16#define LARCH_REG_S2 25
 17#define LARCH_REG_NARGS 8
 18#endif
 19
 20#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
 21typedef unsigned long greg_t, gregset_t[32];
 22
 23struct sigcontext {
 24	unsigned long sc_pc;
 25	unsigned long sc_regs[32];
 26	unsigned sc_flags;
 27	unsigned long sc_extcontext[] __attribute__((__aligned__(16)));
 28};
 29#endif
 30
 31typedef struct {
 32	unsigned long __pc;
 33	unsigned long __gregs[32];
 34	unsigned __flags;
 35	unsigned long __extcontext[] __attribute__((__aligned__(16)));
 36} mcontext_t;
 37
 38struct sigaltstack {
 39	void *ss_sp;
 40	int ss_flags;
 41	size_t ss_size;
 42};
 43
 44typedef struct __ucontext
 45{
 46	unsigned long uc_flags;
 47	struct __ucontext *uc_link;
 48	stack_t uc_stack;
 49	sigset_t uc_sigmask;
 50	long __uc_pad;
 51	mcontext_t uc_mcontext;
 52} ucontext_t;
 53
 54#define __uc_flags uc_flags
 55
 56#define SA_NOCLDSTOP 1
 57#define SA_NOCLDWAIT 2
 58#define SA_SIGINFO   4
 59#define SA_ONSTACK   0x08000000
 60#define SA_RESTART   0x10000000
 61#define SA_NODEFER   0x40000000
 62#define SA_RESETHAND 0x80000000
 63
 64#endif
 65
 66#define SIGHUP     1
 67#define SIGINT     2
 68#define SIGQUIT    3
 69#define SIGILL     4
 70#define SIGTRAP    5
 71#define SIGABRT    6
 72#define SIGIOT     SIGABRT
 73#define SIGBUS     7
 74#define SIGFPE     8
 75#define SIGKILL    9
 76#define SIGUSR1   10
 77#define SIGSEGV   11
 78#define SIGUSR2   12
 79#define SIGPIPE   13
 80#define SIGALRM   14
 81#define SIGTERM   15
 82#define SIGSTKFLT 16
 83#define SIGCHLD   17
 84#define SIGCONT   18
 85#define SIGSTOP   19
 86#define SIGTSTP   20
 87#define SIGTTIN   21
 88#define SIGTTOU   22
 89#define SIGURG    23
 90#define SIGXCPU   24
 91#define SIGXFSZ   25
 92#define SIGVTALRM 26
 93#define SIGPROF   27
 94#define SIGWINCH  28
 95#define SIGIO     29
 96#define SIGPOLL   SIGIO
 97#define SIGPWR    30
 98#define SIGSYS    31
 99#define SIGUNUSED SIGSYS
100
101#define _NSIG 65