linux/include/asm-m68k/siginfo.h
<<
>>
Prefs
   1#ifndef _M68K_SIGINFO_H
   2#define _M68K_SIGINFO_H
   3
   4#define HAVE_ARCH_SIGINFO_T
   5#define HAVE_ARCH_COPY_SIGINFO
   6
   7#include <asm-generic/siginfo.h>
   8
   9typedef struct siginfo {
  10        int si_signo;
  11        int si_errno;
  12        int si_code;
  13
  14        union {
  15                int _pad[SI_PAD_SIZE];
  16
  17                /* kill() */
  18                struct {
  19                        __kernel_pid_t _pid;    /* sender's pid */
  20                        __kernel_uid_t _uid;    /* backwards compatibility */
  21                        __kernel_uid32_t _uid32; /* sender's uid */
  22                } _kill;
  23
  24                /* POSIX.1b timers */
  25                struct {
  26                        timer_t _tid;           /* timer id */
  27                        int _overrun;           /* overrun count */
  28                        char _pad[sizeof( __ARCH_SI_UID_T) - sizeof(int)];
  29                        sigval_t _sigval;       /* same as below */
  30                        int _sys_private;       /* not to be passed to user */
  31                } _timer;
  32
  33                /* POSIX.1b signals */
  34                struct {
  35                        __kernel_pid_t _pid;    /* sender's pid */
  36                        __kernel_uid_t _uid;    /* backwards compatibility */
  37                        sigval_t _sigval;
  38                        __kernel_uid32_t _uid32; /* sender's uid */
  39                } _rt;
  40
  41                /* SIGCHLD */
  42                struct {
  43                        __kernel_pid_t _pid;    /* which child */
  44                        __kernel_uid_t _uid;    /* backwards compatibility */
  45                        int _status;            /* exit code */
  46                        clock_t _utime;
  47                        clock_t _stime;
  48                        __kernel_uid32_t _uid32; /* sender's uid */
  49                } _sigchld;
  50
  51                /* SIGILL, SIGFPE, SIGSEGV, SIGBUS */
  52                struct {
  53                        void *_addr; /* faulting insn/memory ref. */
  54                } _sigfault;
  55
  56                /* SIGPOLL */
  57                struct {
  58                        int _band;      /* POLL_IN, POLL_OUT, POLL_MSG */
  59                        int _fd;
  60                } _sigpoll;
  61        } _sifields;
  62} siginfo_t;
  63
  64#define UID16_SIGINFO_COMPAT_NEEDED
  65
  66/*
  67 * How these fields are to be accessed.
  68 */
  69#undef si_uid
  70#ifdef __KERNEL__
  71#define si_uid          _sifields._kill._uid32
  72#define si_uid16        _sifields._kill._uid
  73#else
  74#define si_uid          _sifields._kill._uid
  75#endif
  76
  77#ifdef __KERNEL__
  78
  79#include <linux/string.h>
  80
  81static inline void copy_siginfo(struct siginfo *to, struct siginfo *from)
  82{
  83        if (from->si_code < 0)
  84                memcpy(to, from, sizeof(*to));
  85        else
  86                /* _sigchld is currently the largest know union member */
  87                memcpy(to, from, 3*sizeof(int) + sizeof(from->_sifields._sigchld));
  88}
  89
  90#endif /* __KERNEL__ */
  91
  92#endif
  93
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.