1a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng/****************************************************************************
2a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ****************************************************************************
3a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***
4a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   This header was automatically generated from a Linux kernel header
5a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   of the same name, to make information necessary for userspace to
6a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   call into the kernel available to libc.  It contains only constants,
7a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   structures, and macros generated from the original header, and thus,
8a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   contains no copyrightable information.
9a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***
10a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   To edit the content of this header, modify the corresponding
11a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   source file (e.g. under external/kernel-headers/original/) then
12a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   run bionic/libc/kernel/tools/update_all.py
13a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***
14a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   Any manual change here will be lost the next time this script will
15a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***   be run. You've been warned!
16a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ***
17a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ****************************************************************************
18a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng ****************************************************************************/
19a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#ifndef _UAPI_ASMARM_SIGNAL_H
20a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define _UAPI_ASMARM_SIGNAL_H
21a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#include <linux/types.h>
22a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Chengstruct siginfo;
23199346a2abd8b6ba282e1fe291cc3766fa921f40Elliott Hughes#define _KERNEL_NSIG 32
24a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Chengtypedef unsigned long sigset_t;
25a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGHUP 1
26a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGINT 2
27a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGQUIT 3
28a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGILL 4
29a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGTRAP 5
30a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGABRT 6
31a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGIOT 6
32a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGBUS 7
33a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGFPE 8
34a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGKILL 9
35a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGUSR1 10
36a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGSEGV 11
37a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGUSR2 12
38a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGPIPE 13
39a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGALRM 14
40a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGTERM 15
41a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGSTKFLT 16
42a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGCHLD 17
43a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGCONT 18
44a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGSTOP 19
45a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGTSTP 20
46a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGTTIN 21
47a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGTTOU 22
48a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGURG 23
49a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGXCPU 24
50a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGXFSZ 25
51a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGVTALRM 26
52a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGPROF 27
53a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGWINCH 28
54a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGIO 29
55a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGPOLL SIGIO
56a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGPWR 30
57a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGSYS 31
58a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGUNUSED 31
590990d4fda898ada86e557f872f5cb7d16b138e3cElliott Hughes#define __SIGRTMIN 32
600990d4fda898ada86e557f872f5cb7d16b138e3cElliott Hughes#define __SIGRTMAX _KERNEL__NSIG
61a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGSWI 32
62a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_NOCLDSTOP 0x00000001
63a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_NOCLDWAIT 0x00000002
64a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_SIGINFO 0x00000004
65a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_THIRTYTWO 0x02000000
66a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_RESTORER 0x04000000
67a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_ONSTACK 0x08000000
68a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_RESTART 0x10000000
69a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_NODEFER 0x40000000
70a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_RESETHAND 0x80000000
71a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_NOMASK SA_NODEFER
72a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SA_ONESHOT SA_RESETHAND
73a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define MINSIGSTKSZ 2048
74a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define SIGSTKSZ 8192
75a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#include <asm-generic/signal-defs.h>
76a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Chengstruct sigaction {
77d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  union {
78d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    __sighandler_t _sa_handler;
79d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao    void(* _sa_sigaction) (int, struct siginfo *, void *);
80d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  } _u;
81d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  sigset_t sa_mask;
82d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  unsigned long sa_flags;
83d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  void(* sa_restorer) (void);
84a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng};
85a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define sa_handler _u._sa_handler
86a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#define sa_sigaction _u._sa_sigaction
87a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Chengtypedef struct sigaltstack {
88d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  void __user * ss_sp;
89d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  int ss_flags;
90d7db594b8d1dab36b711bd887a9dd21675c87243Tao Bao  size_t ss_size;
91a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng} stack_t;
92a6b53f03c7c03c5bd28a1d582585b2b86fe70d59Ben Cheng#endif
93