Viewing file: siginfo.h (1.96 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef _M68K_SIGINFO_H #define _M68K_SIGINFO_H
#define HAVE_ARCH_SIGINFO_T #define HAVE_ARCH_COPY_SIGINFO
#include <asm-generic/siginfo.h>
typedef struct siginfo { int si_signo; int si_errno; int si_code;
union { int _pad[SI_PAD_SIZE];
/* kill() */ struct { __kernel_pid_t _pid; /* sender's pid */ __kernel_uid_t _uid; /* backwards compatibility */ __kernel_uid32_t _uid32; /* sender's uid */ } _kill;
/* POSIX.1b timers */ struct { timer_t _tid; /* timer id */ int _overrun; /* overrun count */ char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)]; sigval_t _sigval; /* same as below */ int _sys_private; /* not to be passed to user */ } _timer;
/* POSIX.1b signals */ struct { __kernel_pid_t _pid; /* sender's pid */ __kernel_uid_t _uid; /* backwards compatibility */ sigval_t _sigval; __kernel_uid32_t _uid32; /* sender's uid */ } _rt;
/* SIGCHLD */ struct { __kernel_pid_t _pid; /* which child */ __kernel_uid_t _uid; /* backwards compatibility */ int _status; /* exit code */ clock_t _utime; clock_t _stime; __kernel_uid32_t _uid32; /* sender's uid */ } _sigchld;
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS */ struct { void *_addr; /* faulting insn/memory ref. */ } _sigfault;
/* SIGPOLL */ struct { int _band; /* POLL_IN, POLL_OUT, POLL_MSG */ int _fd; } _sigpoll; } _sifields; } siginfo_t;
#define UID16_SIGINFO_COMPAT_NEEDED
/* * How these fields are to be accessed. */ #undef si_uid #ifdef __KERNEL__ #define si_uid _sifields._kill._uid32 #define si_uid16 _sifields._kill._uid #else #define si_uid _sifields._kill._uid #endif
#ifdef __KERNEL__
#include <linux/string.h>
static inline void copy_siginfo(struct siginfo *to, struct siginfo *from) { if (from->si_code < 0) memcpy(to, from, sizeof(*to)); else /* _sigchld is currently the largest know union member */ memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld)); }
#endif /* __KERNEL__ */
#endif
|