OSDN Git Service

* include/cygwin/signal.h: New file.
authorcgf <cgf>
Fri, 28 Nov 2003 21:01:09 +0000 (21:01 +0000)
committercgf <cgf>
Fri, 28 Nov 2003 21:01:09 +0000 (21:01 +0000)
(also check in tlsoffsets.h, missed by previous checkin)

winsup/cygwin/ChangeLog
winsup/cygwin/include/cygwin/signal.h [new file with mode: 0644]
winsup/cygwin/tlsoffsets.h [new file with mode: 0644]

index 558cbc7..44e817b 100644 (file)
@@ -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 (file)
index 0000000..1e28634
--- /dev/null
@@ -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 (file)
index 0000000..d7abe83
--- /dev/null
@@ -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)