* include/cygwin/signal.h: New file.

(also check in tlsoffsets.h, missed by previous checkin)
This commit is contained in:
Christopher Faylor 2003-11-28 21:01:09 +00:00
parent 9a4d574b8d
commit abd2fa9994
3 changed files with 235 additions and 0 deletions

View File

@ -1,3 +1,7 @@
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.

View File

@ -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*/

View File

@ -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)