--- /dev/null
+#ifndef __SIGNAL_H
+#define __SIGNAL_H
+
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#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 /* unused */
+#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 SIGPWR 30
+#define SIGSYS 31
+
+/* synonyms */
+#define SIGIOT 6
+#define SIGCLD SIGCHLD
+#define SIGINFO SIGPWR
+#define SIGLOST -1 /* not defined */
+#define SIGPOLL SIGIO
+#define SIGUNUSED SIGSYS
+#define SIGEMT SIGUNUSED
+
+#ifndef __ASSEMBLY_SOURCE
+
+typedef struct siginfo siginfo_t;
+
+/* FIXME: move definition of clock_t into the proper header file */
+typedef unsigned int clock_t;
+
+/* FIXME: add the correct definition for sigval_t and sigset_t */
+typedef unsigned int sigval_t;
+typedef unsigned int sigset_t;
+
+struct siginfo {
+ int si_signo;
+ int si_errno;
+ int si_code;
+ int si_trapno;
+ pid_t si_pid;
+ uid_t si_uid;
+ int si_status;
+ clock_t si_utime;
+ clock_t si_stime;
+ sigval_t si_value;
+ int si_int;
+ void *si_ptr;
+ int si_overrun;
+ int si_timerid;
+ void *si_addr;
+ long si_band;
+ int si_fd;
+ short si_addr_lsb;
+ void *si_call_addr;
+ int si_syscall;
+ unsigned int si_arch;
+};
+
+struct sigaction {
+ void (*sa_handler)(int);
+ void (*sa_sigaction)(int, siginfo_t*, void*);
+ sigset_t sa_mask;
+ int sa_flags;
+ void (*sa_restorer)(void);
+};
+
+typedef void (*sighandler_t)(int);
+
+#define SIG_IGN ((sighandler_t)0x1) /* "ignore" handler */
+#define SIG_DFL ((sighandler_t)0x0) /* default handler */
+
+#endif /* __ASSEMBLY_SOURCE */
+
+#endif /* __SIGNAL_H */