aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2003-11-28 21:01:09 +0000
committerChristopher Faylor <me@cgf.cx>2003-11-28 21:01:09 +0000
commitabd2fa9994bc5145cc168a6139a0f4dc9b935011 (patch)
tree245dbc55f690ce2d35824c0b638cbfa119d8cfe0
parent9a4d574b8d4550f53036dced342022b64e508abf (diff)
downloadnewlib-abd2fa9994bc5145cc168a6139a0f4dc9b935011.zip
newlib-abd2fa9994bc5145cc168a6139a0f4dc9b935011.tar.gz
newlib-abd2fa9994bc5145cc168a6139a0f4dc9b935011.tar.bz2
* include/cygwin/signal.h: New file.
(also check in tlsoffsets.h, missed by previous checkin)
-rw-r--r--winsup/cygwin/ChangeLog4
-rw-r--r--winsup/cygwin/include/cygwin/signal.h191
-rw-r--r--winsup/cygwin/tlsoffsets.h40
3 files changed, 235 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 558cbc7..44e817b 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,9 @@
2003-11-28 Christopher Faylor <cgf@redhat.com>
+ * include/cygwin/signal.h: New file.
+
+2003-11-28 Christopher Faylor <cgf@redhat.com>
+
Eliminate use of sigframe and sigthread throughout.
* Makefile.in (DLL_OFILES): Add sigfe.o. Remove reliance on cygwin.def
from cygwin0.dll dependency since dependence on sigfe.o implies that.
diff --git a/winsup/cygwin/include/cygwin/signal.h b/winsup/cygwin/include/cygwin/signal.h
new file mode 100644
index 0000000..1e28634
--- /dev/null
+++ b/winsup/cygwin/include/cygwin/signal.h
@@ -0,0 +1,191 @@
+#ifndef _CYGWIN_SIGNAL_H
+#define _CYGWIN_SIGNAL_H
+
+#if 0
+struct ucontext
+{
+ unsigned long uc_flags;
+ void *uc_link;
+ stack_t uc_stack;
+ struct sigcontext uc_mcontext;
+ sigset_t uc_sigmask;
+};
+#endif
+
+typedef union sigval
+{
+ int sival_int; /* integer signal value */
+ void *sival_ptr; /* pointer signal value */
+} sigval_t;
+
+#pragma pack(push,4)
+typedef struct
+{
+ int si_signo; /* signal number */
+ int si_errno; /* errno associated with signal */
+ int si_code; /* signal code */
+
+ union
+ {
+ int __pad[128]; /* plan for future growth */
+
+ union
+ {
+ /* timers */
+ struct
+ {
+ unsigned int si_tid; /* timer id */
+ unsigned int si_overrun; /* overrun count */
+ };
+
+ /* POSIX signals or signals invoked by kill() */
+ struct
+ {
+ pid_t si_pid; /* sender's pid */
+ uid_t si_uid; /* sender's uid */
+ };
+ sigval_t si_sigval; /* signal value */
+ };
+
+ struct
+ {
+ pid_t si_pid2; /* which child */
+ uid_t si_uid2; /* sender's uid */
+ int si_status; /* exit code */
+ clock_t si_utime; /* user time */
+ clock_t si_stime; /* system time */
+ };
+
+ /* core dumping signals */
+ struct
+ {
+ void *si_addr; /* faulting address */
+ };
+ };
+} siginfo_t;
+#pragma pack(pop)
+
+enum
+{
+ SI_USER = 1, /* sent by kill, raise, pthread_kill */
+ SI_ASYNCIO, /* sent by AIO completion (currently
+ unimplemented) */
+ SI_MESGQ, /* sent by real time mesq state change
+ (currently unimplemented) */
+ SI_TIMER, /* sent by timer expiration */
+ SI_QUEUE, /* sent by sigqueue (currently
+ unimplemented) */
+ SI_KERNEL, /* sent by system */
+
+ ILL_ILLOP, /* illegal opcode */
+ ILL_ILLOPN, /* illegal operand */
+ ILL_ILLADR, /* illegal addressing mode */
+ ILL_ILLTRP, /* illegal trap*/
+ ILL_PRVOPC, /* privileged opcode */
+ ILL_PRVREG, /* privileged register */
+ ILL_COPROC, /* coprocessor error */
+ ILL_BADSTK, /* internal stack error */
+
+ FPE_INTDIV, /* integer divide by zero */
+ FPE_INTOVF, /* integer overflow */
+ FPE_FLTDIV, /* floating point divide by zero */
+ FPE_FLTOVF, /* floating point overflow */
+ FPE_FLTUND, /* floating point underflow */
+ FPE_FLTRES, /* floating point inexact result */
+ FPE_FLTINV, /* floating point invalid operation */
+ FPE_FLTSUB, /* subscript out of range */
+
+ SEGV_MAPERR, /* address not mapped to object */
+ SEGV_ACCERR, /* invalid permissions for mapped object */
+
+ BUS_ADRALN, /* invalid address alignment. */
+ BUS_ADRERR, /* non-existant physical address. */
+ BUS_OBJERR, /* object specific hardware error. */
+
+ CLD_EXITED, /* child has exited */
+ CLD_KILLED, /* child was killed */
+ CLD_DUMPED, /* child terminated abnormally */
+ CLD_TRAPPED, /* traced child has trapped */
+ CLD_STOPPED, /* child has stopped */
+ CLD_CONTINUED /* stopped child has continued */
+};
+
+typedef struct sigevent
+{
+ sigval_t sigev_value; /* signal value */
+ int sigev_signo; /* signal number */
+ int sigev_notify; /* notification type */
+ void (*sigev_notify_function) (sigval_t); /* notification function */
+ pthread_attr_t *sigev_notify_attributes; /* notification attributes */
+} sigevent_t;
+
+enum
+{
+ SIGEV_SIGNAL = 0, /* a queued signal, with an application
+ defined value, is generated when the
+ event of interest occurs */
+ SIGEV_NONE, /* no asynchronous notification is
+ delivered when the event of interest
+ occurs */
+ SIGEV_THREAD /* a notification function is called to
+ perform notification */
+};
+
+typedef void (*_sig_func_ptr)(int);
+
+struct sigaction
+{
+ union
+ {
+ _sig_func_ptr sa_handler; /* SIG_DFL, SIG_IGN, or pointer to a function */
+ void (*sa_sigaction) ( int, siginfo_t *, void * );
+ };
+ sigset_t sa_mask;
+ int sa_flags;
+};
+
+#define SA_NOCLDSTOP 1 /* Do not generate SIGCHLD when children
+ stop */
+#define SA_SIGINFO 2 /* Invoke the signal catching function
+ with three arguments instead of one
+ */
+#define SA_RESTART 0x10000000 /* Restart syscall on signal return */
+#define SA_NODEFER 0x40000000 /* Don't automatically block the signal
+ when its handler is being executed */
+#define SA_RESETHAND 0x80000000 /* Reset to SIG_DFL on entry to handler */
+
+#define SIGHUP 1 /* hangup */
+#define SIGINT 2 /* interrupt */
+#define SIGQUIT 3 /* quit */
+#define SIGILL 4 /* illegal instruction (not reset when caught) */
+#define SIGTRAP 5 /* trace trap (not reset when caught) */
+#define SIGABRT 6 /* used by abort */
+#define SIGEMT 7 /* EMT instruction */
+#define SIGFPE 8 /* floating point exception */
+#define SIGKILL 9 /* kill (cannot be caught or ignored) */
+#define SIGBUS 10 /* bus error */
+#define SIGSEGV 11 /* segmentation violation */
+#define SIGSYS 12 /* bad argument to system call */
+#define SIGPIPE 13 /* write on a pipe with no one to read it */
+#define SIGALRM 14 /* alarm clock */
+#define SIGTERM 15 /* software termination signal from kill */
+#define SIGURG 16 /* urgent condition on IO channel */
+#define SIGSTOP 17 /* sendable stop signal not from tty */
+#define SIGTSTP 18 /* stop signal from tty */
+#define SIGCONT 19 /* continue a stopped process */
+#define SIGCHLD 20 /* to parent on child stop or exit */
+#define SIGCLD 20 /* System V name for SIGCHLD */
+#define SIGTTIN 21 /* to readers pgrp upon background tty read */
+#define SIGTTOU 22 /* like TTIN for output if (tp->t_local&LTOSTOP) */
+#define SIGIO 23 /* input/output possible signal */
+#define SIGPOLL SIGIO /* System V name for SIGIO */
+#define SIGXCPU 24 /* exceeded CPU time limit */
+#define SIGXFSZ 25 /* exceeded file size limit */
+#define SIGVTALRM 26 /* virtual time alarm */
+#define SIGPROF 27 /* profiling time alarm */
+#define SIGWINCH 28 /* window changed */
+#define SIGLOST 29 /* resource lost (eg, record-lock lost) */
+#define SIGUSR1 30 /* user defined signal 1 */
+#define SIGUSR2 31 /* user defined signal 2 */
+#define NSIG 32 /* signal 0 implied */
+#endif /*_CYGWIN_SIGNAL_H*/
diff --git a/winsup/cygwin/tlsoffsets.h b/winsup/cygwin/tlsoffsets.h
new file mode 100644
index 0000000..d7abe83
--- /dev/null
+++ b/winsup/cygwin/tlsoffsets.h
@@ -0,0 +1,40 @@
+//;# autogenerated: Do not edit.
+
+//; $tls::func = -620;
+//; $tls::saved_errno = -616;
+//; $tls::sa_flags = -612;
+//; $tls::oldmask = -608;
+//; $tls::newmask = -604;
+//; $tls::event = -600;
+//; $tls::errno_addr = -596;
+//; $tls::initialized = -592;
+//; $tls::sigmask = -588;
+//; $tls::sigwait_mask = -584;
+//; $tls::sigwait_info = -580;
+//; $tls::infodata = -576;
+//; $tls::tid = -52;
+//; $tls::prev = -48;
+//; $tls::next = -44;
+//; $tls::stack = -40;
+//; $tls::sig = -8;
+//; $tls::stackptr = -4;
+//; __DATA__
+
+#define tls_func (-620)
+#define tls_saved_errno (-616)
+#define tls_sa_flags (-612)
+#define tls_oldmask (-608)
+#define tls_newmask (-604)
+#define tls_event (-600)
+#define tls_errno_addr (-596)
+#define tls_initialized (-592)
+#define tls_sigmask (-588)
+#define tls_sigwait_mask (-584)
+#define tls_sigwait_info (-580)
+#define tls_infodata (-576)
+#define tls_tid (-52)
+#define tls_prev (-48)
+#define tls_next (-44)
+#define tls_stack (-40)
+#define tls_sig (-8)
+#define tls_stackptr (-4)