162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 262306a36Sopenharmony_ci#ifndef _UAPI_ASM_X86_SIGNAL_H 362306a36Sopenharmony_ci#define _UAPI_ASM_X86_SIGNAL_H 462306a36Sopenharmony_ci 562306a36Sopenharmony_ci#ifndef __ASSEMBLY__ 662306a36Sopenharmony_ci#include <linux/types.h> 762306a36Sopenharmony_ci#include <linux/time.h> 862306a36Sopenharmony_ci#include <linux/compiler.h> 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci/* Avoid too many header ordering problems. */ 1162306a36Sopenharmony_cistruct siginfo; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_ci#ifndef __KERNEL__ 1462306a36Sopenharmony_ci/* Here we must cater to libcs that poke about in kernel headers. */ 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#define NSIG 32 1762306a36Sopenharmony_citypedef unsigned long sigset_t; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci#endif /* __KERNEL__ */ 2062306a36Sopenharmony_ci#endif /* __ASSEMBLY__ */ 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci 2362306a36Sopenharmony_ci#define SIGHUP 1 2462306a36Sopenharmony_ci#define SIGINT 2 2562306a36Sopenharmony_ci#define SIGQUIT 3 2662306a36Sopenharmony_ci#define SIGILL 4 2762306a36Sopenharmony_ci#define SIGTRAP 5 2862306a36Sopenharmony_ci#define SIGABRT 6 2962306a36Sopenharmony_ci#define SIGIOT 6 3062306a36Sopenharmony_ci#define SIGBUS 7 3162306a36Sopenharmony_ci#define SIGFPE 8 3262306a36Sopenharmony_ci#define SIGKILL 9 3362306a36Sopenharmony_ci#define SIGUSR1 10 3462306a36Sopenharmony_ci#define SIGSEGV 11 3562306a36Sopenharmony_ci#define SIGUSR2 12 3662306a36Sopenharmony_ci#define SIGPIPE 13 3762306a36Sopenharmony_ci#define SIGALRM 14 3862306a36Sopenharmony_ci#define SIGTERM 15 3962306a36Sopenharmony_ci#define SIGSTKFLT 16 4062306a36Sopenharmony_ci#define SIGCHLD 17 4162306a36Sopenharmony_ci#define SIGCONT 18 4262306a36Sopenharmony_ci#define SIGSTOP 19 4362306a36Sopenharmony_ci#define SIGTSTP 20 4462306a36Sopenharmony_ci#define SIGTTIN 21 4562306a36Sopenharmony_ci#define SIGTTOU 22 4662306a36Sopenharmony_ci#define SIGURG 23 4762306a36Sopenharmony_ci#define SIGXCPU 24 4862306a36Sopenharmony_ci#define SIGXFSZ 25 4962306a36Sopenharmony_ci#define SIGVTALRM 26 5062306a36Sopenharmony_ci#define SIGPROF 27 5162306a36Sopenharmony_ci#define SIGWINCH 28 5262306a36Sopenharmony_ci#define SIGIO 29 5362306a36Sopenharmony_ci#define SIGPOLL SIGIO 5462306a36Sopenharmony_ci/* 5562306a36Sopenharmony_ci#define SIGLOST 29 5662306a36Sopenharmony_ci*/ 5762306a36Sopenharmony_ci#define SIGPWR 30 5862306a36Sopenharmony_ci#define SIGSYS 31 5962306a36Sopenharmony_ci#define SIGUNUSED 31 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci/* These should not be considered constants from userland. */ 6262306a36Sopenharmony_ci#define SIGRTMIN 32 6362306a36Sopenharmony_ci#define SIGRTMAX _NSIG 6462306a36Sopenharmony_ci 6562306a36Sopenharmony_ci#define SA_RESTORER 0x04000000 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci#define MINSIGSTKSZ 2048 6862306a36Sopenharmony_ci#define SIGSTKSZ 8192 6962306a36Sopenharmony_ci 7062306a36Sopenharmony_ci#include <asm-generic/signal-defs.h> 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci#ifndef __ASSEMBLY__ 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci# ifndef __KERNEL__ 7662306a36Sopenharmony_ci/* Here we must cater to libcs that poke about in kernel headers. */ 7762306a36Sopenharmony_ci#ifdef __i386__ 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_cistruct sigaction { 8062306a36Sopenharmony_ci union { 8162306a36Sopenharmony_ci __sighandler_t _sa_handler; 8262306a36Sopenharmony_ci void (*_sa_sigaction)(int, struct siginfo *, void *); 8362306a36Sopenharmony_ci } _u; 8462306a36Sopenharmony_ci sigset_t sa_mask; 8562306a36Sopenharmony_ci unsigned long sa_flags; 8662306a36Sopenharmony_ci void (*sa_restorer)(void); 8762306a36Sopenharmony_ci}; 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci#define sa_handler _u._sa_handler 9062306a36Sopenharmony_ci#define sa_sigaction _u._sa_sigaction 9162306a36Sopenharmony_ci 9262306a36Sopenharmony_ci#else /* __i386__ */ 9362306a36Sopenharmony_ci 9462306a36Sopenharmony_cistruct sigaction { 9562306a36Sopenharmony_ci __sighandler_t sa_handler; 9662306a36Sopenharmony_ci unsigned long sa_flags; 9762306a36Sopenharmony_ci __sigrestore_t sa_restorer; 9862306a36Sopenharmony_ci sigset_t sa_mask; /* mask last for extensibility */ 9962306a36Sopenharmony_ci}; 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci#endif /* !__i386__ */ 10262306a36Sopenharmony_ci# endif /* ! __KERNEL__ */ 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_citypedef struct sigaltstack { 10562306a36Sopenharmony_ci void __user *ss_sp; 10662306a36Sopenharmony_ci int ss_flags; 10762306a36Sopenharmony_ci __kernel_size_t ss_size; 10862306a36Sopenharmony_ci} stack_t; 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci#endif /* __ASSEMBLY__ */ 11162306a36Sopenharmony_ci 11262306a36Sopenharmony_ci#endif /* _UAPI_ASM_X86_SIGNAL_H */ 113