/* SPDX-License-Identifier: GPL-2.0 */ 
 | 
#ifndef _LINUX_SIGNAL_TYPES_H 
 | 
#define _LINUX_SIGNAL_TYPES_H 
 | 
  
 | 
/* 
 | 
 * Basic signal handling related data type definitions: 
 | 
 */ 
 | 
  
 | 
#include <linux/list.h> 
 | 
#include <uapi/linux/signal.h> 
 | 
  
 | 
/* 
 | 
 * Real Time signals may be queued. 
 | 
 */ 
 | 
  
 | 
struct sigqueue { 
 | 
    struct list_head list; 
 | 
    int flags; 
 | 
    siginfo_t info; 
 | 
    struct user_struct *user; 
 | 
}; 
 | 
  
 | 
/* flags values. */ 
 | 
#define SIGQUEUE_PREALLOC    1 
 | 
  
 | 
struct sigpending { 
 | 
    struct list_head list; 
 | 
    sigset_t signal; 
 | 
}; 
 | 
  
 | 
struct sigaction { 
 | 
#ifndef __ARCH_HAS_IRIX_SIGACTION 
 | 
    __sighandler_t    sa_handler; 
 | 
    unsigned long    sa_flags; 
 | 
#else 
 | 
    unsigned int    sa_flags; 
 | 
    __sighandler_t    sa_handler; 
 | 
#endif 
 | 
#ifdef __ARCH_HAS_SA_RESTORER 
 | 
    __sigrestore_t sa_restorer; 
 | 
#endif 
 | 
    sigset_t    sa_mask;    /* mask last for extensibility */ 
 | 
}; 
 | 
  
 | 
struct k_sigaction { 
 | 
    struct sigaction sa; 
 | 
#ifdef __ARCH_HAS_KA_RESTORER 
 | 
    __sigrestore_t ka_restorer; 
 | 
#endif 
 | 
}; 
 | 
  
 | 
#ifdef CONFIG_OLD_SIGACTION 
 | 
struct old_sigaction { 
 | 
    __sighandler_t sa_handler; 
 | 
    old_sigset_t sa_mask; 
 | 
    unsigned long sa_flags; 
 | 
    __sigrestore_t sa_restorer; 
 | 
}; 
 | 
#endif 
 | 
  
 | 
struct ksignal { 
 | 
    struct k_sigaction ka; 
 | 
    siginfo_t info; 
 | 
    int sig; 
 | 
}; 
 | 
  
 | 
#endif /* _LINUX_SIGNAL_TYPES_H */ 
 |