1/* 2 * Copyright (C) 2004-2006 Atmel Corporation 3 * 4 * This program is free software; you can redistribute it and/or modify 5 * it under the terms of the GNU General Public License version 2 as 6 * published by the Free Software Foundation. 7 */ 8#ifndef __ASM_AVR32_SIGNAL_H 9#define __ASM_AVR32_SIGNAL_H 10 11#include <linux/types.h> 12 13/* Avoid too many header ordering problems. */ 14struct siginfo; 15 16#ifdef __KERNEL__ 17/* Most things should be clean enough to redefine this at will, if care 18 is taken to make libc match. */ 19 20#define _NSIG 64 21#define _NSIG_BPW 32 22#define _NSIG_WORDS (_NSIG / _NSIG_BPW) 23 24typedef unsigned long old_sigset_t; /* at least 32 bits */ 25 26typedef struct { 27 unsigned long sig[_NSIG_WORDS]; 28} sigset_t; 29 30#else 31/* Here we must cater to libcs that poke about in kernel headers. */ 32 33#define NSIG 32 34typedef unsigned long sigset_t; 35 36#endif /* __KERNEL__ */ 37 38#define SIGHUP 1 39#define SIGINT 2 40#define SIGQUIT 3 41#define SIGILL 4 42#define SIGTRAP 5 43#define SIGABRT 6 44#define SIGIOT 6 45#define SIGBUS 7 46#define SIGFPE 8 47#define SIGKILL 9 48#define SIGUSR1 10 49#define SIGSEGV 11 50#define SIGUSR2 12 51#define SIGPIPE 13 52#define SIGALRM 14 53#define SIGTERM 15 54#define SIGSTKFLT 16 55#define SIGCHLD 17 56#define SIGCONT 18 57#define SIGSTOP 19 58#define SIGTSTP 20 59#define SIGTTIN 21 60#define SIGTTOU 22 61#define SIGURG 23 62#define SIGXCPU 24 63#define SIGXFSZ 25 64#define SIGVTALRM 26 65#define SIGPROF 27 66#define SIGWINCH 28 67#define SIGIO 29 68#define SIGPOLL SIGIO 69/* 70#define SIGLOST 29 71*/ 72#define SIGPWR 30 73#define SIGSYS 31 74#define SIGUNUSED 31 75 76/* These should not be considered constants from userland. */ 77#define SIGRTMIN 32 78#define SIGRTMAX (_NSIG-1) 79 80/* 81 * SA_FLAGS values: 82 * 83 * SA_NOCLDSTOP flag to turn off SIGCHLD when children stop. 84 * SA_NOCLDWAIT flag on SIGCHLD to inhibit zombies. 85 * SA_SIGINFO deliver the signal with SIGINFO structs 86 * SA_ONSTACK indicates that a registered stack_t will be used. 87 * SA_RESTART flag to get restarting signals (which were the default long ago) 88 * SA_NODEFER prevents the current signal from being masked in the handler. 89 * SA_RESETHAND clears the handler when the signal is delivered. 90 * 91 * SA_ONESHOT and SA_NOMASK are the historical Linux names for the Single 92 * Unix names RESETHAND and NODEFER respectively. 93 */ 94#define SA_NOCLDSTOP 0x00000001 95#define SA_NOCLDWAIT 0x00000002 96#define SA_SIGINFO 0x00000004 97#define SA_RESTORER 0x04000000 98#define SA_ONSTACK 0x08000000 99#define SA_RESTART 0x10000000 100#define SA_NODEFER 0x40000000 101#define SA_RESETHAND 0x80000000 102 103#define SA_NOMASK SA_NODEFER 104#define SA_ONESHOT SA_RESETHAND 105 106/* 107 * sigaltstack controls 108 */ 109#define SS_ONSTACK 1 110#define SS_DISABLE 2 111 112#define MINSIGSTKSZ 2048 113#define SIGSTKSZ 8192 114 115#include <asm-generic/signal-defs.h> 116 117#ifdef __KERNEL__ 118struct old_sigaction { 119 __sighandler_t sa_handler; 120 old_sigset_t sa_mask; 121 unsigned long sa_flags; 122 __sigrestore_t sa_restorer; 123}; 124 125struct sigaction { 126 __sighandler_t sa_handler; 127 unsigned long sa_flags; 128 __sigrestore_t sa_restorer; 129 sigset_t sa_mask; /* mask last for extensibility */ 130}; 131 132struct k_sigaction { 133 struct sigaction sa; 134}; 135#else 136/* Here we must cater to libcs that poke about in kernel headers. */ 137 138struct sigaction { 139 union { 140 __sighandler_t _sa_handler; 141 void (*_sa_sigaction)(int, struct siginfo *, void *); 142 } _u; 143 sigset_t sa_mask; 144 unsigned long sa_flags; 145 void (*sa_restorer)(void); 146}; 147 148#define sa_handler _u._sa_handler 149#define sa_sigaction _u._sa_sigaction 150 151#endif /* __KERNEL__ */ 152 153typedef struct sigaltstack { 154 void __user *ss_sp; 155 int ss_flags; 156 size_t ss_size; 157} stack_t; 158 159#ifdef __KERNEL__ 160 161#include <asm/sigcontext.h> 162#undef __HAVE_ARCH_SIG_BITOPS 163 164#define ptrace_signal_deliver(regs, cookie) do { } while (0) 165 166#endif /* __KERNEL__ */ 167 168#endif 169