(SI_KERNEL): Added.
[kopensolaris-gnu/glibc.git] / sysdeps / unix / sysv / linux / bits / siginfo.h
index 503465b..dcabddb 100644 (file)
@@ -1,5 +1,5 @@
 /* siginfo_t, sigevent and constants.  Linux version.
-   Copyright (C) 1997 Free Software Foundation, Inc.
+   Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -32,8 +32,8 @@ typedef union sigval
     void *sival_ptr;
   } sigval_t;
 
-# define SI_MAX_SIZE     128
-# define SI_PAD_SIZE     ((SI_MAX_SIZE / sizeof (int)) - 3)
+# define __SI_MAX_SIZE     128
+# define __SI_PAD_SIZE     ((__SI_MAX_SIZE / sizeof (int)) - 3)
 
 typedef struct siginfo
   {
@@ -44,7 +44,7 @@ typedef struct siginfo
 
     union
       {
-       int _pad[SI_PAD_SIZE];
+       int _pad[__SI_PAD_SIZE];
 
         /* kill().  */
        struct
@@ -72,6 +72,7 @@ typedef struct siginfo
        struct
          {
            __pid_t si_pid;     /* Which child.  */
+           __uid_t si_uid;     /* Real user ID of sending process.  */
            int si_status;      /* Exit value or signal.  */
            __clock_t si_utime;
            __clock_t si_stime;
@@ -96,6 +97,8 @@ typedef struct siginfo
 /* X/Open requires some more fields with fixed names.  */
 # define si_pid                _sifields._kill.si_pid
 # define si_uid                _sifields._kill.si_uid
+# define si_timer1     _sifields._timer._timer1
+# define si_timer2     _sifields._timer._timer2
 # define si_status     _sifields._sigchld.si_status
 # define si_utime      _sifields._sigchld.si_utime
 # define si_stime      _sifields._sigchld.si_stime
@@ -111,7 +114,9 @@ typedef struct siginfo
    signals.  */
 enum
 {
-  SI_ASYNCIO = -4,             /* Sent by AIO completion.  */
+  SI_SIGIO = -5,               /* Sent by queued SIGIO. */
+# define SI_SIGIO      SI_SIGIO
+  SI_ASYNCIO,                  /* Sent by AIO completion.  */
 # define SI_ASYNCIO    SI_ASYNCIO
   SI_MESGQ,                    /* Sent by real time mesq state change.  */
 # define SI_MESGQ      SI_MESGQ
@@ -119,8 +124,10 @@ enum
 # define SI_TIMER      SI_TIMER
   SI_QUEUE,                    /* Sent by sigqueue.  */
 # define SI_QUEUE      SI_QUEUE
-  SI_USER                      /* Sent by kill, sigsend, raise.  */
+  SI_USER,                     /* Sent by kill, sigsend, raise.  */
 # define SI_USER       SI_USER
+  SI_KERNEL = 0x80             /* Send by kernel.  */
+#define SI_KERNEL      SI_KERNEL
 };
 
 
@@ -129,7 +136,7 @@ enum
 {
   ILL_ILLOPC = 1,              /* Illegal opcode.  */
 # define ILL_ILLOPC    ILL_ILLOPC
-  ILL_ILL_OPN,                 /* Illegal operand.  */
+  ILL_ILLOPN,                  /* Illegal operand.  */
 # define ILL_ILLOPN    ILL_ILLOPN
   ILL_ILLADR,                  /* Illegal addressing mode.  */
 # define ILL_ILLADR    ILL_ILLADR
@@ -237,8 +244,8 @@ enum
 # define __have_sigevent_t     1
 
 /* Structure to transport application-defined values with signals.  */
-# define SIGEV_MAX_SIZE        64
-# define SIGEV_PAD_SIZE        ((SIGEV_MAX_SIZE / sizeof (int)) - 3)
+# define __SIGEV_MAX_SIZE      64
+# define __SIGEV_PAD_SIZE      ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
 
 typedef struct sigevent
   {
@@ -248,12 +255,12 @@ typedef struct sigevent
 
     union
       {
-       int _pad[SIGEV_PAD_SIZE];
+       int _pad[__SIGEV_PAD_SIZE];
 
        struct
          {
-           void (*_function) __P ((sigval_t)); /* Function to start.  */
-           void *_attribute;                   /* Really pthread_attr_t.  */
+           void (*_function) (sigval_t);         /* Function to start.  */
+           void *_attribute;                     /* Really pthread_attr_t.  */
          } _sigev_thread;
       } _sigev_un;
   } sigevent_t;