       
SYNOPSIS
       #include <pthread.h>

DESCRIPTION
       The <'pthread'.h> header shall define the following symbols:



       'PTHREAD_BARRIER_SERIAL_THREAD'

       'PTHREAD_CANCEL_ASYNCHRONOUS'
       'PTHREAD_CANCEL_ENABLE'
       'PTHREAD_CANCEL_DEFERRED'
       'PTHREAD_CANCEL_DISABLE'
       'PTHREAD_CANCELED'
       'PTHREAD_COND_INITIALIZER'
       'PTHREAD_CREATE_DETACHED'
       'PTHREAD_CREATE_JOINABLE'
       'PTHREAD_EXPLICIT_SCHED'
       'PTHREAD_INHERIT_SCHED'

       'PTHREAD_MUTEX_DEFAULT'
       'PTHREAD_MUTEX_ERRORCHECK'

       'PTHREAD_MUTEX_INITIALIZER'

       'PTHREAD_MUTEX_NORMAL'
       'PTHREAD_MUTEX_RECURSIVE'

       'PTHREAD_ONCE_INIT'

       'PTHREAD_PRIO_INHERIT'


       'PTHREAD_PRIO_NONE'


       'PTHREAD_PRIO_PROTECT'

       'PTHREAD_PROCESS_SHARED'
       'PTHREAD_PROCESS_PRIVATE'

       'PTHREAD_SCOPE_PROCESS'
       'PTHREAD_SCOPE_SYSTEM'


       The following types shall be defined as described in <sys/types.h> :


       'pthread_attr_t'

       'pthread_barrier_t'
       'pthread_barrierattr_t'

       'pthread_cond_t'
       'pthread_condattr_t'
       'pthread_key_t'
       'pthread_mutex_t'
       'pthread_mutexattr_t'
       'pthread_once_t'
       'pthread_rwlock_t'
       'pthread_rwlockattr_t'

       'pthread_spinlock_t'

       'pthread_t'

       
SYNOPSIS
       #include <pwd.h>

DESCRIPTION
       The  <'pwd'.h> header shall provide a definition for struct 'passwd', which
       shall include at least the following members:


              char    *'pw_name'   User's login name.
              uid_t    'pw_uid'    Numerical user ID.
              gid_t    'pw_gid'    Numerical group ID.
              char    *'pw_dir'    Initial working directory.
              char    *'pw_shell'  Program to use as shell.

       The  gid_t  and  uid_t  types  shall  be  defined   as   described   in
       <sys/types.h> .

       
SYNOPSIS
       #include <regex.h>

DESCRIPTION
       The <regex.h> header shall define the structures and symbolic constants
       used by the 'regcomp'(), 'regexec'(), 'regerror'(), and 'regfree'()  functions.

       The structure type 'regex_t' shall contain at least the following member:


              size_t    're_nsub'    Number of parenthesized subexpressions.

       The type size_t shall be defined as described in <sys/types.h> .

       The type 'regoff_t' shall be defined as a signed integer  type  that  can
       hold  the  largest  value  that can be stored in either a type off_t or
       type ssize_t. The structure type 'regmatch_t' shall contain at least  the
       following members:


              regoff_t    'rm_so'    Byte offset from start of string
                                   to start of substring.
              regoff_t    'rm_eo'    Byte offset from start of string of the
                                   first character after the end of substring.

       Values  for  the cflags parameter to the 'regcomp'() function are as fol-
       lows:

       'REG_EXTENDED'
              Use Extended Regular Expressions.

       'REG_ICASE'
              Ignore case in match.

       'REG_NOSUB'
              Report only success or fail in regexec().

       'REG_NEWLINE'
              Change the handling of <newline>.


       Values for the eflags parameter to the regexec() function are  as  fol-
       lows:

       'REG_NOTBOL'
              The  circumflex character ( '^' ), when taken as a special char-
              acter, does not match the beginning of string.

       'REG_NOTEOL'
              The dollar sign ( '$' ), when taken as a special character, does
              not match the end of string.


       The following constants shall be defined as error return values:

       'REG_NOMATCH'
              regexec() failed to match.

       'REG_BADPAT'
              Invalid regular expression.

       'REG_ECOLLATE'
              Invalid collating element referenced.

       'REG_ECTYPE'
              Invalid character class type referenced.

       'REG_EESCAPE'
              Trailing '\' in pattern.

       'REG_ESUBREG'
              Number in \digit invalid or in error.

       'REG_EBRACK'
              "[]" imbalance.

       'REG_EPAREN'
              "\(\)" or "()" imbalance.

       'REG_EBRACE'
              "\{\}" imbalance.

       'REG_BADBR'
              Content  of "\{\}" invalid: not a number, number too large, more
              than two numbers, first larger than second.

       'REG_ERANGE'
              Invalid endpoint in range expression.

       'REG_ESPACE'
              Out of memory.

       'REG_BADRPT'
              '?' , '*' , or '+' not preceded by valid regular expression.

       'REG_ENOSYS'
              Reserved.


       
SYNOPSIS
       #include <sys/resource.h>

DESCRIPTION
       The  <sys/'resource'.h>  header  shall define the following symbolic con-
       stants as possible values of the which argument  of  'getpriority'()  and
       'setpriority'():

       'PRIO_PROCESS'
              Identifies the who argument as a process ID.

       'PRIO_PGRP'
              Identifies the who argument as a process group ID.

       'PRIO_USER'
              Identifies the who argument as a user ID.


       The following type shall be defined through typedef:

       'rlim_t' Unsigned integer type used for limit values.


       The following symbolic constants shall be defined:

       'RLIM_INFINITY'
              A value of rlim_t indicating no limit.

       'RLIM_SAVED_MAX'
              A  value of type rlim_t indicating an unrepresentable saved hard
              limit.

       'RLIM_SAVED_CUR'
              A value of type rlim_t indicating an unrepresentable saved  soft
              limit.


       On  implementations  where  all resource limits are representable in an
       object of type rlim_t, RLIM_SAVED_MAX and RLIM_SAVED_CUR  need  not  be
       distinct from RLIM_INFINITY.

       The following symbolic constants shall be defined as possible values of
       the who parameter of 'getrusage'():

       'RUSAGE_SELF'
              Returns information about the current process.

       'RUSAGE_CHILDREN'
              Returns information about children of the current process.


       The <sys/resource.h> header shall  define  the  'rlimit'  structure  that
       includes at least the following members:


              rlim_t 'rlim_cur'  The current (soft) limit.
              rlim_t 'rlim_max'  The hard limit.

       The  <sys/resource.h>  header  shall  define  the 'rusage' structure that
       includes at least the following members:


              struct timeval 'ru_utime'  User time used.
              struct timeval 'ru_stime'  System time used.

       The timeval structure shall be defined as described in <sys/time.h> .

       The following symbolic constants shall be defined  as  possible  values
       for the resource argument of 'getrlimit'() and 'setrlimit'():

       'RLIMIT_CORE'
              Limit on size of core file.

       'RLIMIT_CPU'
              Limit on CPU time per process.

       'RLIMIT_DATA'
              Limit on data segment size.

       'RLIMIT_FSIZE'
              Limit on file size.

       'RLIMIT_NOFILE'
              Limit on number of open files.

       'RLIMIT_STACK'
              Limit on stack size.

       'RLIMIT_AS'
              Limit on address space size.


       
SYNOPSIS
       #include <sched.h>

DESCRIPTION
       The <'sched'.h> header shall define the 'sched_param' structure, which con-
       tains the scheduling parameters required  for  implementation  of  each
       supported  scheduling policy. This structure shall contain at least the
       following member:


              int       'sched_priority'        Process execution scheduling priority.

       In addition, if _POSIX_SPORADIC_SERVER or _POSIX_THREAD_SPORADIC_SERVER
       is  defined,  the sched_param structure defined in <sched.h> shall con-
       tain the following members in addition to those specified above:


              int             'sched_ss_low_priority' Low scheduling priority for
                                                    sporadic server.
              struct timespec 'sched_ss_repl_period'  Replenishment period for
                                                    sporadic server.
              struct timespec 'sched_ss_init_budget'  Initial budget for sporadic server.
              int             'sched_ss_max_repl'     Maximum pending replenishments for
                                                    sporadic server.

       Each process is controlled by an associated scheduling policy and  pri-
       ority.  Associated  with  each policy is a priority range.  Each policy
       definition specifies the minimum priority range for  that  policy.  The
       priority  ranges  for  each  policy  may overlap the priority ranges of
       other policies.

       Four scheduling policies are defined; others  may  be  defined  by  the
       implementation.  The four standard policies are indicated by the values
       of the following symbolic constants:

       'SCHED_FIFO'
              First in-first out (FIFO) scheduling policy.

       'SCHED_RR'
              Round robin scheduling policy.

       'SCHED_SPORADIC'
              Sporadic server scheduling policy.

       'SCHED_OTHER'
              Another scheduling policy.


       The values of these constants are distinct.

       
SYNOPSIS
       #include <search.h>

DESCRIPTION
       The  <'search'.h>  header shall define the 'ENTRY' type for structure entry
       which shall include the following members:


              char    *'key'
              void    *'data'

       and shall define ACTION and VISIT as  enumeration  data  types  through
       type definitions as follows:


              enum { FIND, ENTER } 'ACTION';
              enum { preorder, postorder, endorder, leaf } 'VISIT';

       The size_t type shall be defined as described in <sys/types.h> .

       
SYNOPSIS
       #include <sys/select.h>

DESCRIPTION
       The  <sys/'select'.h>  header  shall  define  the  'timeval' structure that
       includes at least the following members:


              time_t         'tv_sec'      Seconds.
              suseconds_t    'tv_usec'     Microseconds.

       The time_t and suseconds_t types  shall  be  defined  as  described  in
       <sys/types.h> .

       The sigset_t type shall be defined as described in <signal.h> .

       The timespec structure shall be defined as described in <time.h> .

       The  <sys/select.h> header shall define the 'fd_set' type as a structure.

       Each of the following may be declared as a function, or  defined  as  a
       macro, or both:

       void 'FD_CLR'(int fd, fd_set *fdset)

              Clears the bit for the file descriptor fd in the file descriptor
              set fdset.

       int 'FD_ISSET'(int fd, fd_set *fdset)

              Returns a non-zero value if the bit for the file  descriptor  fd
              is set in the file descriptor set by fdset, and 0 otherwise.

       void 'FD_SET'(int fd, fd_set *fdset)

              Sets  the  bit for the file descriptor fd in the file descriptor
              set fdset.

       void 'FD_ZERO'(fd_set *fdset)

              Initializes the file descriptor set fdset to have zero bits  for
              all file descriptors.


       If  implemented as macros, these may evaluate their arguments more than
       once, so applications should ensure that the arguments they supply  are
       never expressions with side effects.

       The following shall be defined as a macro:

       'FD_SETSIZE'

              Maximum number of file descriptors in an fd_set structure.


       
SYNOPSIS
       #include <sys/sem.h>

DESCRIPTION
       The  <sys/'sem'.h> header shall define the following constants and struc-
       tures.

       Semaphore operation flags:

       'SEM_UNDO'
              Set up adjust on exit entry.


       Command definitions for the 'semctl'() function shall be provided as fol-
       lows:

       'GETNCNT'
              Get semncnt.

       'GETPID' Get sempid.

       'GETVAL' Get semval.

       'GETALL' Get all cases of semval.

       'GETZCNT'
              Get semzcnt.

       'SETVAL' Set semval.

       'SETALL' Set all cases of semval.


       The 'semid_ds' structure shall contain the following members:


              struct ipc_perm  'sem_perm'  Operation permission structure.
              unsigned short   'sem_nsems' Number of semaphores in set.
              time_t           'sem_otime' Last semop
               () time.
              time_t           'sem_ctime' Last time changed by semctl
               ().

       The  pid_t,  time_t,  key_t,  and  size_t  types  shall  be  defined as
       described in <sys/types.h> .

       A semaphore shall be represented by an anonymous  structure  containing
       the following members:


              unsigned short  'semval'   Semaphore value.
              pid_t           'sempid'   Process ID of last operation.
              unsigned short  'semncnt'  Number of processes waiting for semval
                                       to become greater than current value.
              unsigned short  'semzcnt'  Number of processes waiting for semval
                                       to become 0.

       The 'sembuf' structure shall contain the following members:


              unsigned short  'sem_num'   Semaphore number.
              short           'sem_op'    Semaphore operation.
              short           'sem_flg'   Operation flags.

       
SYNOPSIS
       #include <semaphore.h>

DESCRIPTION
       The  <'semaphore'.h> header shall define the 'sem_t' type, used in perform-
       ing semaphore operations. The semaphore may be implemented using a file
       descriptor,  in  which case applications are able to open up at least a
       total of {OPEN_MAX} files and semaphores. The symbol  'SEM_FAILED'  shall
       be defined (see sem_open()).

       
SYNOPSIS
       #include <setjmp.h>

DESCRIPTION
       Some  of the functionality described on this reference page extends the
       ISO C standard. Applications shall define the appropriate feature  test
       macro  (see  the System Interfaces volume of IEEE Std 1003.1-2001, Sec-
       tion 2.2, The Compilation Environment)  to  enable  the  visibility  of
       these symbols in this header.

       The  <'setjmp'.h>  header  shall  define  the  array  types  'jmp_buf'  and
       'sigjmp_buf'.

       
SYNOPSIS
       #include <sys/shm.h>

DESCRIPTION
       The <sys/'shm'.h> header shall define the following symbolic constants:

       'SHM_RDONLY'
              Attach read-only (else read-write).

       'SHM_RND'
              Round attach address to SHMLBA.


       The <sys/shm.h> header shall define the following symbolic value:

       'SHMLBA' Segment low boundary address multiple.


       The following data types shall be defined through typedef:

       'shmatt_t'
              Unsigned  integer  used  for the number of current attaches that
              must be able to store  values  at  least  as  large  as  a  type
              unsigned short.


       The 'shmid_ds' structure shall contain the following members:


              struct ipc_perm 'shm_perm'   Operation permission structure.
              size_t          'shm_segsz'  Size of segment in bytes.
              pid_t           'shm_lpid'   Process ID of last shared memory operation.
              pid_t           'shm_cpid'   Process ID of creator.
              shmatt_t        'shm_nattch' Number of current attaches.
              time_t          'shm_atime'  Time of last shmat
               ().
              time_t          'shm_dtime'  Time of last shmdt
               ().
              time_t          'shm_ctime'  Time of last change by shmctl
               ().

       The  pid_t,  time_t,  key_t,  and  size_t  types  shall  be  defined as
       described in <sys/types.h> .

       
SYNOPSIS
       #include <signal.h>

DESCRIPTION
       Some  of the functionality described on this reference page extends the
       ISO C standard. Applications shall define the appropriate feature  test
       macro  (see  the System Interfaces volume of IEEE Std 1003.1-2001, Sec-
       tion 2.2, The Compilation Environment)  to  enable  the  visibility  of
       these symbols in this header.

       The  <'signal'.h>  header  shall define the following symbolic constants,
       each of which expands to a distinct constant expression of the type:


              void (*)(int)

       whose value matches no declarable function.

       'SIG_DFL'
              Request for default signal handling.

       'SIG_ERR'
              Return value from signal() in case of error.

       'SIG_HOLD'
              Request that signal be held.

       'SIG_IGN'
              Request that signal be ignored.


       The following data types shall be defined through typedef:

       'sig_atomic_t'
              Possibly volatile-qualified integer type of an object  that  can
              be  accessed  as an atomic entity, even in the presence of asyn-
              chronous interrupts.

       'sigset_t'
              Integer or structure type of an object used to represent sets of
              signals.

       pid_t  As described in <sys/types.h> .


       The <signal.h> header shall define the 'sigevent' structure, which has at
       least the following members:


              int                    'sigev_notify'            Notification type.
              int                    'sigev_signo'             Signal number.
              union sigval           'sigev_value'             Signal value.
              void(*)(union sigval)  'sigev_notify_function'   Notification function.
              (pthread_attr_t *)     'sigev_notify_attributes' Notification attributes.

       The following values of 'sigev_notify' shall be defined:

       'SIGEV_NONE'
              No asynchronous notification is  delivered  when  the  event  of
              interest occurs.

       'SIGEV_SIGNAL'
              A queued signal, with an application-defined value, is generated
              when the event of interest occurs.

       'SIGEV_THREAD'
              A notification function is called to perform notification.


       The 'sigval' union shall be defined as:


              int    'sival_int'    Integer signal value.
              void  *'sival_ptr'    Pointer signal value.

       This header shall also declare the macros 'SIGRTMIN' and 'SIGRTMAX',  which
       evaluate  to integer expressions, and specify a range of signal numbers
       that are reserved for application use and for which the realtime signal
       behavior specified in this volume of IEEE Std 1003.1-2001 is supported.
       The signal numbers in this range do not  overlap  any  of  the  signals
       specified in the following table.

       The  range  SIGRTMIN  through SIGRTMAX inclusive shall include at least
       {RTSIG_MAX} signal numbers.

       It is implementation-defined whether realtime signal behavior  is  sup-
       ported for other signals.

       This  header  also declares the constants that are used to refer to the
       signals that occur in the system. Signals defined here begin  with  the
       letters SIG. Each of the signals have distinct positive integer values.
       The value 0 is reserved for use as the null signal (see kill()).  Addi-
       tional implementation-defined signals may occur in the system.

       The ISO C standard only requires the signal names SIGABRT, SIGFPE, SIG-
       ILL, SIGINT, SIGSEGV, and SIGTERM to be defined.

       The  following  signals  shall  be  supported  on  all  implementations
       (default actions are explained below the table):

          Signal    Default Action Description
          'SIGABRT'   A              Process abort signal.
          'SIGALRM'   T              Alarm clock.
          'SIGBUS'    A              Access to an undefined portion of a mem-
                                   ory object.
          'SIGCHLD'   I              Child process terminated, stopped,
                                   or continued.
          'SIGCONT'   C              Continue executing, if stopped.
          'SIGFPE'    A              Erroneous arithmetic operation.
          'SIGHUP'    T              Hangup.
          'SIGILL'    A              Illegal instruction.
          'SIGINT'    T              Terminal interrupt signal.
          'SIGKILL'   T              Kill (cannot be caught or ignored).
          'SIGPIPE'   T              Write on a pipe with no one to read  it.
          'SIGQUIT'   A              Terminal quit signal.
          'SIGSEGV'   A              Invalid memory reference.
          'SIGSTOP'   S              Stop executing (cannot be caught or
                                   ignored).
          'SIGTERM'   T              Termination signal.
          'SIGTSTP'   S              Terminal stop signal.
          'SIGTTIN'   S              Background process attempting read.
          'SIGTTOU'   S              Background process attempting write.
          'SIGUSR1'   T              User-defined signal 1.
          'SIGUSR2'   T              User-defined signal 2.
          'SIGPOLL'   T              Pollable event.
          'SIGPROF'   T              Profiling timer expired.

          'SIGSYS'    A              Bad system call.
          'SIGTRAP'   A              Trace/breakpoint trap.
          'SIGURG'    I              High bandwidth data is available at a
                                   socket.
          'SIGVTALRM' T              Virtual timer expired.
          'SIGXCPU'   A              CPU time limit exceeded.
          'SIGXFSZ'   A              File size limit exceeded.

       The default actions are as follows:

       T      Abnormal  termination  of the process. The process is terminated
              with all the consequences of _exit() except that the status made
              available to wait() and waitpid() indicates abnormal termination
              by the specified signal.

       A      Abnormal termination of the process.
              Additionally,   implementation-defined   abnormal    termination
              actions, such as creation of a core file, may occur.

       I      Ignore the signal.

       S      Stop the process.

       C      Continue  the  process,  if it is stopped; otherwise, ignore the
              signal.



       The header shall provide a declaration of struct  'sigaction',  including
       at least the following members:


              void (*'sa_handler')(int)  Pointer to a signal-catching function or one of the macros
                                       'SIG_IGN' or 'SIG_DFL'.
              sigset_t 'sa_mask'         Set of signals to be blocked during execution of the signal
                                       handling function.
              int      'sa_flags'        Special flags.
              void (*'sa_sigaction')(int, siginfo_t *, void *)
                                       Pointer to a signal-catching function.

       The  storage occupied by sa_handler and sa_sigaction may overlap, and a
       conforming application shall not use both simultaneously.

       The following shall be declared as constants:

       'SA_NOCLDSTOP'
              Do not generate SIGCHLD when children stop
              or stopped children continue.

       'SIG_BLOCK'
              The resulting set is the union of the current set and the signal
              set pointed to by the argument set.

       'SIG_UNBLOCK'
              The resulting set is the intersection of the current set and the
              complement of the signal set pointed to by the argument set.

       'SIG_SETMASK'
              The resulting set is the signal set pointed to by  the  argument
              set.

       'SA_ONSTACK'
              Causes signal delivery to occur on an alternate stack.

       'SA_RESETHAND'
              Causes signal dispositions to be set to SIG_DFL on entry to sig-
              nal handlers.

       'SA_RESTART'
              Causes certain functions to become restartable.

       'SA_SIGINFO'
              Causes extra information to be passed to signal handlers at  the
              time of receipt of a signal.

       'SA_NOCLDWAIT'
              Causes  implementations  not to create zombie processes on child
              death.

       'SA_NODEFER'
              Causes signal not to be automatically blocked on entry to signal
              handler.

       'SS_ONSTACK'
              Process is executing on an alternate signal stack.

       'SS_DISABLE'
              Alternate signal stack is disabled.

       'MINSIGSTKSZ'
              Minimum stack size for a signal handler.

       'SIGSTKSZ'
              Default size in bytes for the alternate signal stack.


       The  'ucontext_t' structure shall be defined through typedef as described
       in <ucontext.h>.

       The 'mcontext_t' type shall be defined through typedef  as  described  in
       <ucontext.h>.

       The <signal.h> header shall define the 'stack_t' type as a structure that
       includes at least the following members:


              void     *'ss_sp'       Stack base or pointer.
              size_t    'ss_size'     Stack size.
              int       'ss_flags'    Flags.

       The <signal.h> header shall define the 'sigstack' structure that includes
       at least the following members:


              int       'ss_onstack'  Non-zero when signal stack is in use.
              void     *'ss_sp'       Signal stack pointer.

       The  <signal.h>  header  shall define the 'siginfo_t' type as a structure
       that includes at least the following members:


              int           'si_signo'  Signal number.


              int           'si_errno'  If non-zero, an errno value associated with
                                      this signal, as defined in <errno.h>.


              int           'si_code'   Signal code.


              pid_t         'si_pid'    Sending process ID.
              uid_t         'si_uid'    Real user ID of sending process.
              void         *'si_addr'   Address of faulting instruction.
              int           'si_status' Exit value or signal.
              long          'si_band'   Band event for SIGPOLL.


              union sigval  'si_value'  Signal value.


       The macros specified in the Code column  of  the  following  table  are
       defined for use as values of si_code that are  signal-specific or  non-
       signal-specific reasons why the signal was generated.

         Signal    Code            Reason
         'SIGILL'    'ILL_ILLOPC'      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.
         'SIGFPE'    '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'      Invalid floating-point operation.
                   'FPE_FLTSUB'      Subscript out of range.
         'SIGSEGV'   'SEGV_MAPERR'     Address not mapped to object.
                   'SEGV_ACCERR'     Invalid permissions for mapped object.
         'SIGBUS'    'BUS_ADRALN'      Invalid address alignment.
                   'BUS_ADRERR'      Nonexistent physical address.
                   'BUS_OBJERR'      Object-specific hardware error.
         'SIGTRAP'   'TRAP_BRKPT'      Process breakpoint.
                   'TRAP_TRACE'      Process trace trap.
         'SIGCHLD'   'CLD_EXITED'      Child has exited.
                   'CLD_KILLED'      Child has terminated abnormally and did
                                   not create a core file.
                   'CLD_DUMPED'      Child has terminated abnormally and cre-
                                   ated a core file.
                   'CLD_TRAPPED'     Traced child has trapped.
                   'CLD_STOPPED'     Child has stopped.
                   'CLD_CONTINUED'   Stopped child has continued.
         'SIGPOLL'   'POLL_IN'         Data input available.
                   'POLL_OUT'        Output buffers available.
                   'POLL_MSG'        Input message available.
                   'POLL_ERR'        I/O error.
                   'POLL_PRI'        High priority input available.
                   'POLL_HUP'        Device disconnected.
         Any       'SI_USER'         Signal sent by kill().
                   'SI_QUEUE'        Signal sent by the sigqueue().
                   'SI_TIMER'        Signal generated by expiration of a
                                   timer set by timer_settime().
                   'SI_ASYNCIO'      Signal generated by completion of an
                                   asynchronous I/O request.
                   'SI_MESGQ'        Signal generated by arrival of a message
                                   on an empty message queue.

       Implementations  may  support additional si_code values not included in
       this list, may generate values included  in  this  list  under  circum-
       stances other than those described in this list, and may contain exten-
       sions or limitations that prevent some  values  from  being  generated.
       Implementations  do  not  generate  a  different  value  from  the ones
       described in this list for circumstances described in this list.

       In addition, the following signal-specific information shall be  avail-
       able:

       Signal  Member         Value
       SIGILL  void * 'si_addr' Address of faulting instruction.
       SIGFPE
       SIGSEGV void * 'si_addr' Address of faulting memory reference.
       SIGBUS
       SIGCHLD pid_t 'si_pid'   Child process ID.
               int 'si_status'  Exit value or signal.
               uid_t 'si_uid'   Real user ID of the process that sent the signal.
       SIGPOLL long 'si_band'   Band event for POLL_IN, POLL_OUT, or POLL_MSG.

       For some implementations, the value of si_addr may be inaccurate.

