|
@@ -69,6 +69,22 @@ typedef struct siginfo
|
|
|
__uid_t si_uid; /* Real user ID of sending process. */
|
|
|
} _kill;
|
|
|
|
|
|
+ /* POSIX.1b timers. */
|
|
|
+ struct
|
|
|
+ {
|
|
|
+ int si_tid; /* Timer ID. */
|
|
|
+ int si_overrun; /* Overrun count. */
|
|
|
+ sigval_t si_sigval; /* Signal value. */
|
|
|
+ } _timer;
|
|
|
+
|
|
|
+ /* POSIX.1b signals. */
|
|
|
+ struct
|
|
|
+ {
|
|
|
+ __pid_t si_pid; /* Sending process ID. */
|
|
|
+ __uid_t si_uid; /* Real user ID of sending process. */
|
|
|
+ sigval_t si_sigval; /* Signal value. */
|
|
|
+ } _rt;
|
|
|
+
|
|
|
/* SIGCHLD. */
|
|
|
struct
|
|
|
{
|
|
@@ -83,29 +99,15 @@ typedef struct siginfo
|
|
|
struct
|
|
|
{
|
|
|
void *si_addr; /* Faulting insn/memory ref. */
|
|
|
+ short int si_addr_lsb; /* Valid LSB of the reported address. */
|
|
|
} _sigfault;
|
|
|
|
|
|
/* SIGPOLL. */
|
|
|
struct
|
|
|
{
|
|
|
- int si_band; /* Band event for SIGPOLL. */
|
|
|
+ long int si_band; /* Band event for SIGPOLL. */
|
|
|
int si_fd;
|
|
|
} _sigpoll;
|
|
|
-
|
|
|
- /* POSIX.1b timers. */
|
|
|
- struct
|
|
|
- {
|
|
|
- unsigned int _timer1;
|
|
|
- unsigned int _timer2;
|
|
|
- } _timer;
|
|
|
-
|
|
|
- /* POSIX.1b signals. */
|
|
|
- struct
|
|
|
- {
|
|
|
- __pid_t si_pid; /* Sending process ID. */
|
|
|
- __uid_t si_uid; /* Real user ID of sending process. */
|
|
|
- sigval_t si_sigval; /* Signal value. */
|
|
|
- } _rt;
|
|
|
} _sifields;
|
|
|
} siginfo_t;
|
|
|
|
|
@@ -113,6 +115,8 @@ typedef struct siginfo
|
|
|
/* X/Open requires some more fields with fixed names. */
|
|
|
# define si_pid _sifields._kill.si_pid
|
|
|
# define si_uid _sifields._kill.si_uid
|
|
|
+# define si_timerid _sifields._timer.si_tid
|
|
|
+# define si_overrun _sifields._timer.si_overrun
|
|
|
# define si_status _sifields._sigchld.si_status
|
|
|
# define si_utime _sifields._sigchld.si_utime
|
|
|
# define si_stime _sifields._sigchld.si_stime
|
|
@@ -120,6 +124,7 @@ typedef struct siginfo
|
|
|
# define si_int _sifields._rt.si_sigval.sival_int
|
|
|
# define si_ptr _sifields._rt.si_sigval.sival_ptr
|
|
|
# define si_addr _sifields._sigfault.si_addr
|
|
|
+# define si_addr_lsb _sifields._sigfault.si_addr_lsb
|
|
|
# define si_band _sifields._sigpoll.si_band
|
|
|
# define si_fd _sifields._sigpoll.si_fd
|
|
|
|
|
@@ -142,13 +147,14 @@ enum
|
|
|
# define SI_ASYNCIO SI_ASYNCIO
|
|
|
SI_QUEUE, /* Sent by sigqueue. */
|
|
|
# define SI_QUEUE SI_QUEUE
|
|
|
- SI_USER, /* Sent by kill, sigsend, raise. */
|
|
|
+ SI_USER, /* Sent by kill, sigsend. */
|
|
|
# define SI_USER SI_USER
|
|
|
SI_KERNEL = 0x80 /* Send by kernel. */
|
|
|
#define SI_KERNEL SI_KERNEL
|
|
|
};
|
|
|
|
|
|
|
|
|
+# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
|
|
|
/* `si_code' values for SIGILL signal. */
|
|
|
enum
|
|
|
{
|
|
@@ -207,10 +213,16 @@ enum
|
|
|
# define BUS_ADRALN BUS_ADRALN
|
|
|
BUS_ADRERR, /* Non-existant physical address. */
|
|
|
# define BUS_ADRERR BUS_ADRERR
|
|
|
- BUS_OBJERR /* Object specific hardware error. */
|
|
|
+ BUS_OBJERR, /* Object specific hardware error. */
|
|
|
# define BUS_OBJERR BUS_OBJERR
|
|
|
+ BUS_MCEERR_AR, /* Hardware memory error: action required. */
|
|
|
+# define BUS_MCEERR_AR BUS_MCEERR_AR
|
|
|
+ BUS_MCEERR_AO /* Hardware memory error: action optional. */
|
|
|
+# define BUS_MCEERR_AO BUS_MCEERR_AO
|
|
|
};
|
|
|
+# endif
|
|
|
|
|
|
+# ifdef __USE_XOPEN_EXTENDED
|
|
|
/* `si_code' values for SIGTRAP signal. */
|
|
|
enum
|
|
|
{
|
|
@@ -219,7 +231,9 @@ enum
|
|
|
TRAP_TRACE /* Process trace trap. */
|
|
|
# define TRAP_TRACE TRAP_TRACE
|
|
|
};
|
|
|
+# endif
|
|
|
|
|
|
+# if defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K8
|
|
|
/* `si_code' values for SIGCHLD signal. */
|
|
|
enum
|
|
|
{
|
|
@@ -253,6 +267,7 @@ enum
|
|
|
POLL_HUP /* Device disconnected. */
|
|
|
# define POLL_HUP POLL_HUP
|
|
|
};
|
|
|
+# endif
|
|
|
|
|
|
# undef __need_siginfo_t
|
|
|
#endif /* !have siginfo_t && (have _SIGNAL_H || need siginfo_t). */
|