Edit File by line
/home/barbar84/www/wp-conte.../plugins/sujqvwi/AnonR/anonr.TX.../usr/include/asm-gene...
File: siginfo.h
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
[0] Fix | Delete
#ifndef _ASM_GENERIC_SIGINFO_H
[1] Fix | Delete
#define _ASM_GENERIC_SIGINFO_H
[2] Fix | Delete
[3] Fix | Delete
[4] Fix | Delete
#include <linux/types.h>
[5] Fix | Delete
[6] Fix | Delete
typedef union sigval {
[7] Fix | Delete
int sival_int;
[8] Fix | Delete
void *sival_ptr;
[9] Fix | Delete
} sigval_t;
[10] Fix | Delete
[11] Fix | Delete
#define SI_MAX_SIZE 128
[12] Fix | Delete
[13] Fix | Delete
/*
[14] Fix | Delete
* The default "si_band" type is "long", as specified by POSIX.
[15] Fix | Delete
* However, some architectures want to override this to "int"
[16] Fix | Delete
* for historical compatibility reasons, so we allow that.
[17] Fix | Delete
*/
[18] Fix | Delete
#ifndef __ARCH_SI_BAND_T
[19] Fix | Delete
#define __ARCH_SI_BAND_T long
[20] Fix | Delete
#endif
[21] Fix | Delete
[22] Fix | Delete
#ifndef __ARCH_SI_CLOCK_T
[23] Fix | Delete
#define __ARCH_SI_CLOCK_T __kernel_clock_t
[24] Fix | Delete
#endif
[25] Fix | Delete
[26] Fix | Delete
#ifndef __ARCH_SI_ATTRIBUTES
[27] Fix | Delete
#define __ARCH_SI_ATTRIBUTES
[28] Fix | Delete
#endif
[29] Fix | Delete
[30] Fix | Delete
/*
[31] Fix | Delete
* RHEL8: The old and new siginfo structures have the same offsets for
[32] Fix | Delete
* their fields. They are just constructed in different ways.
[33] Fix | Delete
*/
[34] Fix | Delete
#ifdef __GENKSYMS__
[35] Fix | Delete
#define __ARCH_SI_PREAMBLE_SIZE (4 * sizeof(int))
[36] Fix | Delete
#define SI_PAD_SIZE ((SI_MAX_SIZE - __ARCH_SI_PREAMBLE_SIZE) / sizeof(int))
[37] Fix | Delete
[38] Fix | Delete
typedef struct siginfo {
[39] Fix | Delete
int si_signo;
[40] Fix | Delete
#ifndef __ARCH_HAS_SWAPPED_SIGINFO
[41] Fix | Delete
int si_errno;
[42] Fix | Delete
int si_code;
[43] Fix | Delete
#else
[44] Fix | Delete
int si_code;
[45] Fix | Delete
int si_errno;
[46] Fix | Delete
#endif
[47] Fix | Delete
[48] Fix | Delete
union {
[49] Fix | Delete
int _pad[SI_PAD_SIZE];
[50] Fix | Delete
[51] Fix | Delete
/* kill() */
[52] Fix | Delete
struct {
[53] Fix | Delete
__kernel_pid_t _pid; /* sender's pid */
[54] Fix | Delete
__kernel_uid32_t _uid; /* sender's uid */
[55] Fix | Delete
} _kill;
[56] Fix | Delete
[57] Fix | Delete
/* POSIX.1b timers */
[58] Fix | Delete
struct {
[59] Fix | Delete
__kernel_timer_t _tid; /* timer id */
[60] Fix | Delete
int _overrun; /* overrun count */
[61] Fix | Delete
sigval_t _sigval; /* same as below */
[62] Fix | Delete
int _sys_private; /* not to be passed to user */
[63] Fix | Delete
} _timer;
[64] Fix | Delete
[65] Fix | Delete
/* POSIX.1b signals */
[66] Fix | Delete
struct {
[67] Fix | Delete
__kernel_pid_t _pid; /* sender's pid */
[68] Fix | Delete
__kernel_uid32_t _uid; /* sender's uid */
[69] Fix | Delete
sigval_t _sigval;
[70] Fix | Delete
} _rt;
[71] Fix | Delete
[72] Fix | Delete
/* SIGCHLD */
[73] Fix | Delete
struct {
[74] Fix | Delete
__kernel_pid_t _pid; /* which child */
[75] Fix | Delete
__kernel_uid32_t _uid; /* sender's uid */
[76] Fix | Delete
int _status; /* exit code */
[77] Fix | Delete
__ARCH_SI_CLOCK_T _utime;
[78] Fix | Delete
__ARCH_SI_CLOCK_T _stime;
[79] Fix | Delete
} _sigchld;
[80] Fix | Delete
[81] Fix | Delete
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, SIGEMT */
[82] Fix | Delete
struct {
[83] Fix | Delete
void *_addr; /* faulting insn/memory ref. */
[84] Fix | Delete
#ifdef __ARCH_SI_TRAPNO
[85] Fix | Delete
int _trapno; /* TRAP # which caused the signal */
[86] Fix | Delete
#endif
[87] Fix | Delete
#ifdef __ia64__
[88] Fix | Delete
int _imm; /* immediate value for "break" */
[89] Fix | Delete
unsigned int _flags; /* see ia64 si_flags */
[90] Fix | Delete
unsigned long _isr; /* isr */
[91] Fix | Delete
#endif
[92] Fix | Delete
[93] Fix | Delete
#define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? \
[94] Fix | Delete
sizeof(short) : __alignof__(void *))
[95] Fix | Delete
union {
[96] Fix | Delete
/*
[97] Fix | Delete
* used when si_code=BUS_MCEERR_AR or
[98] Fix | Delete
* used when si_code=BUS_MCEERR_AO
[99] Fix | Delete
*/
[100] Fix | Delete
short _addr_lsb; /* LSB of the reported address */
[101] Fix | Delete
/* used when si_code=SEGV_BNDERR */
[102] Fix | Delete
struct {
[103] Fix | Delete
char _dummy_bnd[__ADDR_BND_PKEY_PAD];
[104] Fix | Delete
void *_lower;
[105] Fix | Delete
void *_upper;
[106] Fix | Delete
} _addr_bnd;
[107] Fix | Delete
/* used when si_code=SEGV_PKUERR */
[108] Fix | Delete
struct {
[109] Fix | Delete
char _dummy_pkey[__ADDR_BND_PKEY_PAD];
[110] Fix | Delete
__u32 _pkey;
[111] Fix | Delete
} _addr_pkey;
[112] Fix | Delete
};
[113] Fix | Delete
} _sigfault;
[114] Fix | Delete
[115] Fix | Delete
/* SIGPOLL */
[116] Fix | Delete
struct {
[117] Fix | Delete
__ARCH_SI_BAND_T _band; /* POLL_IN, POLL_OUT, POLL_MSG */
[118] Fix | Delete
int _fd;
[119] Fix | Delete
} _sigpoll;
[120] Fix | Delete
[121] Fix | Delete
/* SIGSYS */
[122] Fix | Delete
struct {
[123] Fix | Delete
void *_call_addr; /* calling user insn */
[124] Fix | Delete
int _syscall; /* triggering system call number */
[125] Fix | Delete
unsigned int _arch; /* AUDIT_ARCH_* of syscall */
[126] Fix | Delete
} _sigsys;
[127] Fix | Delete
} _sifields;
[128] Fix | Delete
} __ARCH_SI_ATTRIBUTES siginfo_t;
[129] Fix | Delete
[130] Fix | Delete
#else /* __GENKSYMS__ */
[131] Fix | Delete
[132] Fix | Delete
union __sifields {
[133] Fix | Delete
/* kill() */
[134] Fix | Delete
struct {
[135] Fix | Delete
__kernel_pid_t _pid; /* sender's pid */
[136] Fix | Delete
__kernel_uid32_t _uid; /* sender's uid */
[137] Fix | Delete
} _kill;
[138] Fix | Delete
[139] Fix | Delete
/* POSIX.1b timers */
[140] Fix | Delete
struct {
[141] Fix | Delete
__kernel_timer_t _tid; /* timer id */
[142] Fix | Delete
int _overrun; /* overrun count */
[143] Fix | Delete
sigval_t _sigval; /* same as below */
[144] Fix | Delete
int _sys_private; /* not to be passed to user */
[145] Fix | Delete
} _timer;
[146] Fix | Delete
[147] Fix | Delete
/* POSIX.1b signals */
[148] Fix | Delete
struct {
[149] Fix | Delete
__kernel_pid_t _pid; /* sender's pid */
[150] Fix | Delete
__kernel_uid32_t _uid; /* sender's uid */
[151] Fix | Delete
sigval_t _sigval;
[152] Fix | Delete
} _rt;
[153] Fix | Delete
[154] Fix | Delete
/* SIGCHLD */
[155] Fix | Delete
struct {
[156] Fix | Delete
__kernel_pid_t _pid; /* which child */
[157] Fix | Delete
__kernel_uid32_t _uid; /* sender's uid */
[158] Fix | Delete
int _status; /* exit code */
[159] Fix | Delete
__ARCH_SI_CLOCK_T _utime;
[160] Fix | Delete
__ARCH_SI_CLOCK_T _stime;
[161] Fix | Delete
} _sigchld;
[162] Fix | Delete
[163] Fix | Delete
/* SIGILL, SIGFPE, SIGSEGV, SIGBUS, SIGTRAP, SIGEMT */
[164] Fix | Delete
struct {
[165] Fix | Delete
void *_addr; /* faulting insn/memory ref. */
[166] Fix | Delete
#ifdef __ARCH_SI_TRAPNO
[167] Fix | Delete
int _trapno; /* TRAP # which caused the signal */
[168] Fix | Delete
#endif
[169] Fix | Delete
#ifdef __ia64__
[170] Fix | Delete
int _imm; /* immediate value for "break" */
[171] Fix | Delete
unsigned int _flags; /* see ia64 si_flags */
[172] Fix | Delete
unsigned long _isr; /* isr */
[173] Fix | Delete
#endif
[174] Fix | Delete
[175] Fix | Delete
#define __ADDR_BND_PKEY_PAD (__alignof__(void *) < sizeof(short) ? \
[176] Fix | Delete
sizeof(short) : __alignof__(void *))
[177] Fix | Delete
union {
[178] Fix | Delete
/*
[179] Fix | Delete
* used when si_code=BUS_MCEERR_AR or
[180] Fix | Delete
* used when si_code=BUS_MCEERR_AO
[181] Fix | Delete
*/
[182] Fix | Delete
short _addr_lsb; /* LSB of the reported address */
[183] Fix | Delete
/* used when si_code=SEGV_BNDERR */
[184] Fix | Delete
struct {
[185] Fix | Delete
char _dummy_bnd[__ADDR_BND_PKEY_PAD];
[186] Fix | Delete
void *_lower;
[187] Fix | Delete
void *_upper;
[188] Fix | Delete
} _addr_bnd;
[189] Fix | Delete
/* used when si_code=SEGV_PKUERR */
[190] Fix | Delete
struct {
[191] Fix | Delete
char _dummy_pkey[__ADDR_BND_PKEY_PAD];
[192] Fix | Delete
__u32 _pkey;
[193] Fix | Delete
} _addr_pkey;
[194] Fix | Delete
};
[195] Fix | Delete
} _sigfault;
[196] Fix | Delete
[197] Fix | Delete
/* SIGPOLL */
[198] Fix | Delete
struct {
[199] Fix | Delete
__ARCH_SI_BAND_T _band; /* POLL_IN, POLL_OUT, POLL_MSG */
[200] Fix | Delete
int _fd;
[201] Fix | Delete
} _sigpoll;
[202] Fix | Delete
[203] Fix | Delete
/* SIGSYS */
[204] Fix | Delete
struct {
[205] Fix | Delete
void *_call_addr; /* calling user insn */
[206] Fix | Delete
int _syscall; /* triggering system call number */
[207] Fix | Delete
unsigned int _arch; /* AUDIT_ARCH_* of syscall */
[208] Fix | Delete
} _sigsys;
[209] Fix | Delete
};
[210] Fix | Delete
[211] Fix | Delete
#ifndef __ARCH_HAS_SWAPPED_SIGINFO
[212] Fix | Delete
#define __SIGINFO \
[213] Fix | Delete
struct { \
[214] Fix | Delete
int si_signo; \
[215] Fix | Delete
int si_errno; \
[216] Fix | Delete
int si_code; \
[217] Fix | Delete
union __sifields _sifields; \
[218] Fix | Delete
}
[219] Fix | Delete
#else
[220] Fix | Delete
#define __SIGINFO \
[221] Fix | Delete
struct { \
[222] Fix | Delete
int si_signo; \
[223] Fix | Delete
int si_code; \
[224] Fix | Delete
int si_errno; \
[225] Fix | Delete
union __sifields _sifields; \
[226] Fix | Delete
}
[227] Fix | Delete
#endif /* __ARCH_HAS_SWAPPED_SIGINFO */
[228] Fix | Delete
[229] Fix | Delete
typedef struct siginfo {
[230] Fix | Delete
union {
[231] Fix | Delete
__SIGINFO;
[232] Fix | Delete
int _si_pad[SI_MAX_SIZE/sizeof(int)];
[233] Fix | Delete
};
[234] Fix | Delete
} __ARCH_SI_ATTRIBUTES siginfo_t;
[235] Fix | Delete
#endif /* __GENKSYMS__ */
[236] Fix | Delete
[237] Fix | Delete
/*
[238] Fix | Delete
* How these fields are to be accessed.
[239] Fix | Delete
*/
[240] Fix | Delete
#define si_pid _sifields._kill._pid
[241] Fix | Delete
#define si_uid _sifields._kill._uid
[242] Fix | Delete
#define si_tid _sifields._timer._tid
[243] Fix | Delete
#define si_overrun _sifields._timer._overrun
[244] Fix | Delete
#define si_sys_private _sifields._timer._sys_private
[245] Fix | Delete
#define si_status _sifields._sigchld._status
[246] Fix | Delete
#define si_utime _sifields._sigchld._utime
[247] Fix | Delete
#define si_stime _sifields._sigchld._stime
[248] Fix | Delete
#define si_value _sifields._rt._sigval
[249] Fix | Delete
#define si_int _sifields._rt._sigval.sival_int
[250] Fix | Delete
#define si_ptr _sifields._rt._sigval.sival_ptr
[251] Fix | Delete
#define si_addr _sifields._sigfault._addr
[252] Fix | Delete
#ifdef __ARCH_SI_TRAPNO
[253] Fix | Delete
#define si_trapno _sifields._sigfault._trapno
[254] Fix | Delete
#endif
[255] Fix | Delete
#define si_addr_lsb _sifields._sigfault._addr_lsb
[256] Fix | Delete
#define si_lower _sifields._sigfault._addr_bnd._lower
[257] Fix | Delete
#define si_upper _sifields._sigfault._addr_bnd._upper
[258] Fix | Delete
#define si_pkey _sifields._sigfault._addr_pkey._pkey
[259] Fix | Delete
#define si_band _sifields._sigpoll._band
[260] Fix | Delete
#define si_fd _sifields._sigpoll._fd
[261] Fix | Delete
#define si_call_addr _sifields._sigsys._call_addr
[262] Fix | Delete
#define si_syscall _sifields._sigsys._syscall
[263] Fix | Delete
#define si_arch _sifields._sigsys._arch
[264] Fix | Delete
[265] Fix | Delete
/*
[266] Fix | Delete
* si_code values
[267] Fix | Delete
* Digital reserves positive values for kernel-generated signals.
[268] Fix | Delete
*/
[269] Fix | Delete
#define SI_USER 0 /* sent by kill, sigsend, raise */
[270] Fix | Delete
#define SI_KERNEL 0x80 /* sent by the kernel from somewhere */
[271] Fix | Delete
#define SI_QUEUE -1 /* sent by sigqueue */
[272] Fix | Delete
#define SI_TIMER -2 /* sent by timer expiration */
[273] Fix | Delete
#define SI_MESGQ -3 /* sent by real time mesq state change */
[274] Fix | Delete
#define SI_ASYNCIO -4 /* sent by AIO completion */
[275] Fix | Delete
#define SI_SIGIO -5 /* sent by queued SIGIO */
[276] Fix | Delete
#define SI_TKILL -6 /* sent by tkill system call */
[277] Fix | Delete
#define SI_DETHREAD -7 /* sent by execve() killing subsidiary threads */
[278] Fix | Delete
#define SI_ASYNCNL -60 /* sent by glibc async name lookup completion */
[279] Fix | Delete
[280] Fix | Delete
#define SI_FROMUSER(siptr) ((siptr)->si_code <= 0)
[281] Fix | Delete
#define SI_FROMKERNEL(siptr) ((siptr)->si_code > 0)
[282] Fix | Delete
[283] Fix | Delete
/*
[284] Fix | Delete
* SIGILL si_codes
[285] Fix | Delete
*/
[286] Fix | Delete
#define ILL_ILLOPC 1 /* illegal opcode */
[287] Fix | Delete
#define ILL_ILLOPN 2 /* illegal operand */
[288] Fix | Delete
#define ILL_ILLADR 3 /* illegal addressing mode */
[289] Fix | Delete
#define ILL_ILLTRP 4 /* illegal trap */
[290] Fix | Delete
#define ILL_PRVOPC 5 /* privileged opcode */
[291] Fix | Delete
#define ILL_PRVREG 6 /* privileged register */
[292] Fix | Delete
#define ILL_COPROC 7 /* coprocessor error */
[293] Fix | Delete
#define ILL_BADSTK 8 /* internal stack error */
[294] Fix | Delete
#define ILL_BADIADDR 9 /* unimplemented instruction address */
[295] Fix | Delete
#define __ILL_BREAK 10 /* illegal break */
[296] Fix | Delete
#define __ILL_BNDMOD 11 /* bundle-update (modification) in progress */
[297] Fix | Delete
#define NSIGILL 11
[298] Fix | Delete
[299] Fix | Delete
/*
[300] Fix | Delete
* SIGFPE si_codes
[301] Fix | Delete
*/
[302] Fix | Delete
#define FPE_INTDIV 1 /* integer divide by zero */
[303] Fix | Delete
#define FPE_INTOVF 2 /* integer overflow */
[304] Fix | Delete
#define FPE_FLTDIV 3 /* floating point divide by zero */
[305] Fix | Delete
#define FPE_FLTOVF 4 /* floating point overflow */
[306] Fix | Delete
#define FPE_FLTUND 5 /* floating point underflow */
[307] Fix | Delete
#define FPE_FLTRES 6 /* floating point inexact result */
[308] Fix | Delete
#define FPE_FLTINV 7 /* floating point invalid operation */
[309] Fix | Delete
#define FPE_FLTSUB 8 /* subscript out of range */
[310] Fix | Delete
#define __FPE_DECOVF 9 /* decimal overflow */
[311] Fix | Delete
#define __FPE_DECDIV 10 /* decimal division by zero */
[312] Fix | Delete
#define __FPE_DECERR 11 /* packed decimal error */
[313] Fix | Delete
#define __FPE_INVASC 12 /* invalid ASCII digit */
[314] Fix | Delete
#define __FPE_INVDEC 13 /* invalid decimal digit */
[315] Fix | Delete
#define FPE_FLTUNK 14 /* undiagnosed floating-point exception */
[316] Fix | Delete
#define FPE_CONDTRAP 15 /* trap on condition */
[317] Fix | Delete
#define NSIGFPE 15
[318] Fix | Delete
[319] Fix | Delete
/*
[320] Fix | Delete
* SIGSEGV si_codes
[321] Fix | Delete
*/
[322] Fix | Delete
#define SEGV_MAPERR 1 /* address not mapped to object */
[323] Fix | Delete
#define SEGV_ACCERR 2 /* invalid permissions for mapped object */
[324] Fix | Delete
#define SEGV_BNDERR 3 /* failed address bound checks */
[325] Fix | Delete
#ifdef __ia64__
[326] Fix | Delete
# define __SEGV_PSTKOVF 4 /* paragraph stack overflow */
[327] Fix | Delete
#else
[328] Fix | Delete
# define SEGV_PKUERR 4 /* failed protection key checks */
[329] Fix | Delete
#endif
[330] Fix | Delete
#define SEGV_ACCADI 5 /* ADI not enabled for mapped object */
[331] Fix | Delete
#define SEGV_ADIDERR 6 /* Disrupting MCD error */
[332] Fix | Delete
#define SEGV_ADIPERR 7 /* Precise MCD exception */
[333] Fix | Delete
#define NSIGSEGV 7
[334] Fix | Delete
[335] Fix | Delete
/*
[336] Fix | Delete
* SIGBUS si_codes
[337] Fix | Delete
*/
[338] Fix | Delete
#define BUS_ADRALN 1 /* invalid address alignment */
[339] Fix | Delete
#define BUS_ADRERR 2 /* non-existent physical address */
[340] Fix | Delete
#define BUS_OBJERR 3 /* object specific hardware error */
[341] Fix | Delete
/* hardware memory error consumed on a machine check: action required */
[342] Fix | Delete
#define BUS_MCEERR_AR 4
[343] Fix | Delete
/* hardware memory error detected in process but not consumed: action optional*/
[344] Fix | Delete
#define BUS_MCEERR_AO 5
[345] Fix | Delete
#define NSIGBUS 5
[346] Fix | Delete
[347] Fix | Delete
/*
[348] Fix | Delete
* SIGTRAP si_codes
[349] Fix | Delete
*/
[350] Fix | Delete
#define TRAP_BRKPT 1 /* process breakpoint */
[351] Fix | Delete
#define TRAP_TRACE 2 /* process trace trap */
[352] Fix | Delete
#define TRAP_BRANCH 3 /* process taken branch trap */
[353] Fix | Delete
#define TRAP_HWBKPT 4 /* hardware breakpoint/watchpoint */
[354] Fix | Delete
#define TRAP_UNK 5 /* undiagnosed trap */
[355] Fix | Delete
#define NSIGTRAP 5
[356] Fix | Delete
[357] Fix | Delete
/*
[358] Fix | Delete
* There is an additional set of SIGTRAP si_codes used by ptrace
[359] Fix | Delete
* that are of the form: ((PTRACE_EVENT_XXX << 8) | SIGTRAP)
[360] Fix | Delete
*/
[361] Fix | Delete
[362] Fix | Delete
/*
[363] Fix | Delete
* SIGCHLD si_codes
[364] Fix | Delete
*/
[365] Fix | Delete
#define CLD_EXITED 1 /* child has exited */
[366] Fix | Delete
#define CLD_KILLED 2 /* child was killed */
[367] Fix | Delete
#define CLD_DUMPED 3 /* child terminated abnormally */
[368] Fix | Delete
#define CLD_TRAPPED 4 /* traced child has trapped */
[369] Fix | Delete
#define CLD_STOPPED 5 /* child has stopped */
[370] Fix | Delete
#define CLD_CONTINUED 6 /* stopped child has continued */
[371] Fix | Delete
#define NSIGCHLD 6
[372] Fix | Delete
[373] Fix | Delete
/*
[374] Fix | Delete
* SIGPOLL (or any other signal without signal specific si_codes) si_codes
[375] Fix | Delete
*/
[376] Fix | Delete
#define POLL_IN 1 /* data input available */
[377] Fix | Delete
#define POLL_OUT 2 /* output buffers available */
[378] Fix | Delete
#define POLL_MSG 3 /* input message available */
[379] Fix | Delete
#define POLL_ERR 4 /* i/o error */
[380] Fix | Delete
#define POLL_PRI 5 /* high priority input available */
[381] Fix | Delete
#define POLL_HUP 6 /* device disconnected */
[382] Fix | Delete
#define NSIGPOLL 6
[383] Fix | Delete
[384] Fix | Delete
/*
[385] Fix | Delete
* SIGSYS si_codes
[386] Fix | Delete
*/
[387] Fix | Delete
#define SYS_SECCOMP 1 /* seccomp triggered */
[388] Fix | Delete
#define NSIGSYS 1
[389] Fix | Delete
[390] Fix | Delete
/*
[391] Fix | Delete
* SIGEMT si_codes
[392] Fix | Delete
*/
[393] Fix | Delete
#define EMT_TAGOVF 1 /* tag overflow */
[394] Fix | Delete
#define NSIGEMT 1
[395] Fix | Delete
[396] Fix | Delete
/*
[397] Fix | Delete
* sigevent definitions
[398] Fix | Delete
*
[399] Fix | Delete
* It seems likely that SIGEV_THREAD will have to be handled from
[400] Fix | Delete
* userspace, libpthread transmuting it to SIGEV_SIGNAL, which the
[401] Fix | Delete
* thread manager then catches and does the appropriate nonsense.
[402] Fix | Delete
* However, everything is written out here so as to not get lost.
[403] Fix | Delete
*/
[404] Fix | Delete
#define SIGEV_SIGNAL 0 /* notify via signal */
[405] Fix | Delete
#define SIGEV_NONE 1 /* other notification: meaningless */
[406] Fix | Delete
#define SIGEV_THREAD 2 /* deliver via thread creation */
[407] Fix | Delete
#define SIGEV_THREAD_ID 4 /* deliver to thread */
[408] Fix | Delete
[409] Fix | Delete
/*
[410] Fix | Delete
* This works because the alignment is ok on all current architectures
[411] Fix | Delete
* but we leave open this being overridden in the future
[412] Fix | Delete
*/
[413] Fix | Delete
#ifndef __ARCH_SIGEV_PREAMBLE_SIZE
[414] Fix | Delete
#define __ARCH_SIGEV_PREAMBLE_SIZE (sizeof(int) * 2 + sizeof(sigval_t))
[415] Fix | Delete
#endif
[416] Fix | Delete
[417] Fix | Delete
#define SIGEV_MAX_SIZE 64
[418] Fix | Delete
#define SIGEV_PAD_SIZE ((SIGEV_MAX_SIZE - __ARCH_SIGEV_PREAMBLE_SIZE) \
[419] Fix | Delete
/ sizeof(int))
[420] Fix | Delete
[421] Fix | Delete
typedef struct sigevent {
[422] Fix | Delete
sigval_t sigev_value;
[423] Fix | Delete
int sigev_signo;
[424] Fix | Delete
int sigev_notify;
[425] Fix | Delete
union {
[426] Fix | Delete
int _pad[SIGEV_PAD_SIZE];
[427] Fix | Delete
int _tid;
[428] Fix | Delete
[429] Fix | Delete
struct {
[430] Fix | Delete
void (*_function)(sigval_t);
[431] Fix | Delete
void *_attribute; /* really pthread_attr_t */
[432] Fix | Delete
} _sigev_thread;
[433] Fix | Delete
} _sigev_un;
[434] Fix | Delete
} sigevent_t;
[435] Fix | Delete
[436] Fix | Delete
#define sigev_notify_function _sigev_un._sigev_thread._function
[437] Fix | Delete
#define sigev_notify_attributes _sigev_un._sigev_thread._attribute
[438] Fix | Delete
#define sigev_notify_thread_id _sigev_un._tid
[439] Fix | Delete
[440] Fix | Delete
[441] Fix | Delete
#endif /* _ASM_GENERIC_SIGINFO_H */
[442] Fix | Delete
[443] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function