summaryrefslogtreecommitdiff
path: root/arch/aarch64/bits/signal.h
diff options
context:
space:
mode:
authorSzabolcs Nagy <nsz@port70.net>2015-03-10 21:18:41 +0000
committerRich Felker <dalias@aerifal.cx>2015-03-11 20:12:35 -0400
commit01ef3dd9c5fa7a56aa370f244dd08e05c73010f5 (patch)
tree8fe90d994a43124ff309d3af4c185e28b2b1d6ff /arch/aarch64/bits/signal.h
parentf4e4632abfa8297db1485e132bb15b9ef6c32a1b (diff)
downloadmusl-01ef3dd9c5fa7a56aa370f244dd08e05c73010f5.tar.gz
add aarch64 port
This adds complete aarch64 target support including bigendian subarch. Some of the long double math functions are known to be broken otherwise interfaces should be fully functional, but at this point consider this port experimental. Initial work on this port was done by Sireesh Tripurari and Kevin Bortis.
Diffstat (limited to 'arch/aarch64/bits/signal.h')
-rw-r--r--arch/aarch64/bits/signal.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/arch/aarch64/bits/signal.h b/arch/aarch64/bits/signal.h
new file mode 100644
index 00000000..95f252f6
--- /dev/null
+++ b/arch/aarch64/bits/signal.h
@@ -0,0 +1,86 @@
+#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+
+#if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+typedef unsigned long greg_t;
+typedef unsigned long gregset_t[34];
+
+typedef struct {
+ long double vregs[32];
+ unsigned int fpsr;
+ unsigned int fpcr;
+} fpregset_t;
+typedef struct sigcontext
+{
+ unsigned long fault_address;
+ unsigned long regs[31];
+ unsigned long sp, pc, pstate;
+ long double __reserved[256];
+} mcontext_t;
+#else
+typedef struct {
+ long double __regs[18+256];
+} mcontext_t;
+#endif
+
+struct sigaltstack {
+ void *ss_sp;
+ int ss_flags;
+ size_t ss_size;
+};
+
+typedef struct __ucontext {
+ unsigned long uc_flags;
+ struct ucontext *uc_link;
+ stack_t uc_stack;
+ sigset_t uc_sigmask;
+ mcontext_t uc_mcontext;
+} 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
+
+#endif
+
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#define SIGIOT SIGABRT
+#define SIGBUS 7
+#define SIGFPE 8
+#define SIGKILL 9
+#define SIGUSR1 10
+#define SIGSEGV 11
+#define SIGUSR2 12
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGTERM 15
+#define SIGSTKFLT 16
+#define SIGCHLD 17
+#define SIGCONT 18
+#define SIGSTOP 19
+#define SIGTSTP 20
+#define SIGTTIN 21
+#define SIGTTOU 22
+#define SIGURG 23
+#define SIGXCPU 24
+#define SIGXFSZ 25
+#define SIGVTALRM 26
+#define SIGPROF 27
+#define SIGWINCH 28
+#define SIGIO 29
+#define SIGPOLL 29
+#define SIGPWR 30
+#define SIGSYS 31
+#define SIGUNUSED SIGSYS
+
+#define _NSIG 65