home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-mips / signal.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  5.8 KB  |  180 lines

  1. /*
  2.  * This file is subject to the terms and conditions of the GNU General Public
  3.  * License.  See the file "COPYING" in the main directory of this archive
  4.  * for more details.
  5.  *
  6.  * Copyright (C) 1995, 96, 97, 98, 99, 2003 by Ralf Baechle
  7.  * Copyright (C) 1999 Silicon Graphics, Inc.
  8.  */
  9. #ifndef _ASM_SIGNAL_H
  10. #define _ASM_SIGNAL_H
  11.  
  12. #include <linux/types.h>
  13.  
  14. #define _NSIG        128
  15. #define _NSIG_BPW    (sizeof(unsigned long) * 8)
  16. #define _NSIG_WORDS    (_NSIG / _NSIG_BPW)
  17.  
  18. typedef struct {
  19.     unsigned long sig[_NSIG_WORDS];
  20. } sigset_t;
  21.  
  22. typedef unsigned long old_sigset_t;        /* at least 32 bits */
  23.  
  24. #define SIGHUP         1    /* Hangup (POSIX).  */
  25. #define SIGINT         2    /* Interrupt (ANSI).  */
  26. #define SIGQUIT         3    /* Quit (POSIX).  */
  27. #define SIGILL         4    /* Illegal instruction (ANSI).  */
  28. #define SIGTRAP         5    /* Trace trap (POSIX).  */
  29. #define SIGIOT         6    /* IOT trap (4.2 BSD).  */
  30. #define SIGABRT         SIGIOT    /* Abort (ANSI).  */
  31. #define SIGEMT         7
  32. #define SIGFPE         8    /* Floating-point exception (ANSI).  */
  33. #define SIGKILL         9    /* Kill, unblockable (POSIX).  */
  34. #define SIGBUS        10    /* BUS error (4.2 BSD).  */
  35. #define SIGSEGV        11    /* Segmentation violation (ANSI).  */
  36. #define SIGSYS        12
  37. #define SIGPIPE        13    /* Broken pipe (POSIX).  */
  38. #define SIGALRM        14    /* Alarm clock (POSIX).  */
  39. #define SIGTERM        15    /* Termination (ANSI).  */
  40. #define SIGUSR1        16    /* User-defined signal 1 (POSIX).  */
  41. #define SIGUSR2        17    /* User-defined signal 2 (POSIX).  */
  42. #define SIGCHLD        18    /* Child status has changed (POSIX).  */
  43. #define SIGCLD        SIGCHLD    /* Same as SIGCHLD (System V).  */
  44. #define SIGPWR        19    /* Power failure restart (System V).  */
  45. #define SIGWINCH    20    /* Window size change (4.3 BSD, Sun).  */
  46. #define SIGURG        21    /* Urgent condition on socket (4.2 BSD).  */
  47. #define SIGIO        22    /* I/O now possible (4.2 BSD).  */
  48. #define SIGPOLL        SIGIO    /* Pollable event occurred (System V).  */
  49. #define SIGSTOP        23    /* Stop, unblockable (POSIX).  */
  50. #define SIGTSTP        24    /* Keyboard stop (POSIX).  */
  51. #define SIGCONT        25    /* Continue (POSIX).  */
  52. #define SIGTTIN        26    /* Background read from tty (POSIX).  */
  53. #define SIGTTOU        27    /* Background write to tty (POSIX).  */
  54. #define SIGVTALRM    28    /* Virtual alarm clock (4.2 BSD).  */
  55. #define SIGPROF        29    /* Profiling alarm clock (4.2 BSD).  */
  56. #define SIGXCPU        30    /* CPU limit exceeded (4.2 BSD).  */
  57. #define SIGXFSZ        31    /* File size limit exceeded (4.2 BSD).  */
  58.  
  59. /* These should not be considered constants from userland.  */
  60. #define SIGRTMIN    32
  61. #define SIGRTMAX    _NSIG
  62.  
  63. /*
  64.  * SA_FLAGS values:
  65.  *
  66.  * SA_ONSTACK indicates that a registered stack_t will be used.
  67.  * SA_INTERRUPT is a no-op, but left due to historical reasons. Use the
  68.  * SA_RESTART flag to get restarting signals (which were the default long ago)
  69.  * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop.
  70.  * SA_RESETHAND clears the handler when the signal is delivered.
  71.  * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies.
  72.  * SA_NODEFER prevents the current signal from being masked in the handler.
  73.  *
  74.  * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single
  75.  * Unix names RESETHAND and NODEFER respectively.
  76.  */
  77. #define SA_ONSTACK    0x08000000
  78. #define SA_RESETHAND    0x80000000
  79. #define SA_RESTART    0x10000000
  80. #define SA_SIGINFO    0x00000008
  81. #define SA_NODEFER    0x40000000
  82. #define SA_NOCLDWAIT    0x00010000
  83. #define SA_NOCLDSTOP    0x00000001
  84.  
  85. #define SA_NOMASK    SA_NODEFER
  86. #define SA_ONESHOT    SA_RESETHAND
  87. #define SA_INTERRUPT    0x20000000    /* dummy -- ignored */
  88.  
  89. #define SA_RESTORER    0x04000000    /* Only for o32 */
  90.  
  91. /*
  92.  * sigaltstack controls
  93.  */
  94. #define SS_ONSTACK     1
  95. #define SS_DISABLE     2
  96.  
  97. #define MINSIGSTKSZ    2048
  98. #define SIGSTKSZ       8192
  99.  
  100. #ifdef __KERNEL__
  101.  
  102. /*
  103.  * These values of sa_flags are used only by the kernel as part of the
  104.  * irq handling routines.
  105.  *
  106.  * SA_INTERRUPT is also used by the irq handling routines.
  107.  * SA_SHIRQ flag is for shared interrupt support on PCI and EISA.
  108.  */
  109. #define SA_SAMPLE_RANDOM    SA_RESTART
  110.  
  111. #ifdef CONFIG_TRAD_SIGNALS
  112. #define sig_uses_siginfo(ka)    ((ka)->sa.sa_flags & SA_SIGINFO)
  113. #else
  114. #define sig_uses_siginfo(ka)    (1)
  115. #endif
  116.  
  117. #endif /* __KERNEL__ */
  118.  
  119. #define SIG_BLOCK    1    /* for blocking signals */
  120. #define SIG_UNBLOCK    2    /* for unblocking signals */
  121. #define SIG_SETMASK    3    /* for setting the signal mask */
  122. #define SIG_SETMASK32    256    /* Goodie from SGI for BSD compatibility:
  123.                    set only the low 32 bit of the sigset.  */
  124.  
  125. /* Type of a signal handler.  */
  126. typedef void __signalfn_t(int);
  127. typedef __signalfn_t __user *__sighandler_t;
  128.  
  129. /* Fake signal functions */
  130. #define SIG_DFL    ((__sighandler_t)0)    /* default signal handling */
  131. #define SIG_IGN    ((__sighandler_t)1)    /* ignore signal */
  132. #define SIG_ERR    ((__sighandler_t)-1)    /* error return from signal */
  133.  
  134. struct sigaction {
  135.     unsigned int    sa_flags;
  136.     __sighandler_t    sa_handler;
  137.     sigset_t    sa_mask;
  138. };
  139.  
  140. struct k_sigaction {
  141.     struct sigaction sa;
  142. #ifdef CONFIG_BINFMT_IRIX
  143.     void        (*sa_restorer)(void);
  144. #endif
  145. };
  146.  
  147. /* IRIX compatible stack_t  */
  148. typedef struct sigaltstack {
  149.     void __user *ss_sp;
  150.     size_t ss_size;
  151.     int ss_flags;
  152. } stack_t;
  153.  
  154. #ifdef __KERNEL__
  155. #include <asm/sigcontext.h>
  156. #include <asm/siginfo.h>
  157.  
  158. #define ptrace_signal_deliver(regs, cookie) do { } while (0)
  159.  
  160. struct pt_regs;
  161. extern void do_signal(struct pt_regs *regs);
  162. extern void do_signal32(struct pt_regs *regs);
  163.  
  164. extern int setup_frame(struct k_sigaction * ka, struct pt_regs *regs,
  165.         int signr, sigset_t *set);
  166. extern int setup_rt_frame(struct k_sigaction * ka, struct pt_regs *regs,
  167.         int signr, sigset_t *set, siginfo_t *info);
  168.  
  169. extern int setup_frame_32(struct k_sigaction * ka, struct pt_regs *regs,
  170.         int signr, sigset_t *set);
  171. extern int setup_rt_frame_32(struct k_sigaction * ka, struct pt_regs *regs,
  172.         int signr, sigset_t *set, siginfo_t *info);
  173.  
  174. extern int setup_rt_frame_n32(struct k_sigaction * ka, struct pt_regs *regs,
  175.         int signr, sigset_t *set, siginfo_t *info);
  176.  
  177. #endif /* __KERNEL__ */
  178.  
  179. #endif /* _ASM_SIGNAL_H */
  180.