|
@@ -91,6 +91,10 @@ typedef struct siginfo {
|
|
|
int _trapno; /* TRAP # which caused the signal */
|
|
|
#endif
|
|
|
short _addr_lsb; /* LSB of the reported address */
|
|
|
+ struct {
|
|
|
+ void __user *_lower;
|
|
|
+ void __user *_upper;
|
|
|
+ } _addr_bnd;
|
|
|
} _sigfault;
|
|
|
|
|
|
/* SIGPOLL */
|
|
@@ -131,6 +135,8 @@ typedef struct siginfo {
|
|
|
#define si_trapno _sifields._sigfault._trapno
|
|
|
#endif
|
|
|
#define si_addr_lsb _sifields._sigfault._addr_lsb
|
|
|
+#define si_lower _sifields._sigfault._addr_bnd._lower
|
|
|
+#define si_upper _sifields._sigfault._addr_bnd._upper
|
|
|
#define si_band _sifields._sigpoll._band
|
|
|
#define si_fd _sifields._sigpoll._fd
|
|
|
#ifdef __ARCH_SIGSYS
|
|
@@ -199,7 +205,8 @@ typedef struct siginfo {
|
|
|
*/
|
|
|
#define SEGV_MAPERR (__SI_FAULT|1) /* address not mapped to object */
|
|
|
#define SEGV_ACCERR (__SI_FAULT|2) /* invalid permissions for mapped object */
|
|
|
-#define NSIGSEGV 2
|
|
|
+#define SEGV_BNDERR (__SI_FAULT|3) /* failed address bound checks */
|
|
|
+#define NSIGSEGV 3
|
|
|
|
|
|
/*
|
|
|
* SIGBUS si_codes
|