diff options
author | Rich Felker <dalias@aerifal.cx> | 2012-07-11 04:22:13 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2012-07-11 04:22:13 -0400 |
commit | 6315004f6102dca44c4ba50654a36967b8b9c2a6 (patch) | |
tree | 7b48d4ac93ecb9993ffc2d01c8762a4e954d4000 /arch/mips/bits/signal.h | |
parent | cd8d72451662f0157d06fcf666669db543dcea3b (diff) | |
download | musl-6315004f6102dca44c4ba50654a36967b8b9c2a6.tar.gz musl-6315004f6102dca44c4ba50654a36967b8b9c2a6.tar.xz musl-6315004f6102dca44c4ba50654a36967b8b9c2a6.zip |
initial version of mips (o32) port, based on work by Richard Pennington (rdp)
basically, this version of the code was obtained by starting with rdp's work from his ellcc source tree, adapting it to musl's build system and coding style, auditing the bits headers for discrepencies with kernel definitions or glibc/LSB ABI or large file issues, fixing up incompatibility with the old binutils from aboriginal linux, and adding some new special cases to deal with the oddities of sigaction and pipe syscall interfaces on mips. at present, minimal test programs work, but some interfaces are broken or missing. threaded programs probably will not link.
Diffstat (limited to 'arch/mips/bits/signal.h')
-rw-r--r-- | arch/mips/bits/signal.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/arch/mips/bits/signal.h b/arch/mips/bits/signal.h new file mode 100644 index 00000000..aed372eb --- /dev/null +++ b/arch/mips/bits/signal.h @@ -0,0 +1,73 @@ +#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ + || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE) + +typedef struct { + unsigned long __regs[21]; +} mcontext_t; + +typedef struct __ucontext { + unsigned long uc_flags; + struct __ucontext *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + sigset_t uc_sigmask; + unsigned long uc_regspace[128]; +} ucontext_t; + +#define SA_NOCLDSTOP 1 +#define SA_NOCLDWAIT 2 +#define SA_SIGINFO 4 +#define SA_ONSTACK 0x08000000 +#define SA_RESTART 0x10000000 +#define SA_NODEFER 0x40000000 +#define SA_RESETHAND 0x80000000 +#define SA_RESTORER 0x04000000 + +#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) +struct sigcontext +{ + unsigned sc_regmask, sc_status; + unsigned long long sc_pc, sc_regs[32], sc_fpregs[32]; + unsigned sc_ownedfp, sc_fpc_csr, sc_fpc_eir, sc_used_math, sc_dsp; + unsigned long long sc_mdhi, sc_mdlo; + unsigned long sc_hi1, sc_lo1, sc_hi2, sc_lo2, sc_hi3, sc_lo3; +}; +#define NSIG 64 +#endif + +#endif + +#define SIGHUP 1 +#define SIGINT 2 +#define SIGQUIT 3 +#define SIGILL 4 +#define SIGTRAP 5 +#define SIGABRT 6 +#define SIGIOT SIGABRT +#define SIGSTKFLT 7 +#define SIGFPE 8 +#define SIGKILL 9 +#define SIGBUS 10 +#define SIGSEGV 11 +#define SIGSYS 12 +#define SIGPIPE 13 +#define SIGALRM 14 +#define SIGTERM 15 +#define SIGUSR1 16 +#define SIGUSR2 17 +#define SIGCHLD 18 +#define SIGPWR 19 +#define SIGWINCH 20 +#define SIGURG 21 +#define SIGIO 22 +#define SIGPOLL SIGIO +#define SIGSTOP 23 +#define SIGTSTP 24 +#define SIGCONT 25 +#define SIGTTIN 26 +#define SIGTTOU 27 +#define SIGVTALRM 28 +#define SIGPROF 29 +#define SIGXCPU 30 +#define SIGXFSZ 31 +#define SIGUNUSED SIGSYS |