Update bits/siginfo.h with Linux hwpoison SIGBUS changes
authorEdjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
Wed, 22 May 2013 19:19:49 +0000 (14:19 -0500)
committerEdjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
Wed, 22 May 2013 19:19:49 +0000 (14:19 -0500)
Adds new SIGBUS error codes for hardware poison signals, syncing with
the current kernel headers (v3.9). It also adds si_trapno field for
alpha.

12 files changed:
ChangeLog
ports/ChangeLog.alpha
ports/ChangeLog.ia64
ports/ChangeLog.mips
ports/ChangeLog.tile
ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h
ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h
sysdeps/unix/sysv/linux/bits/siginfo.h
sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
sysdeps/unix/sysv/linux/x86/bits/siginfo.h

index 49d3c366b6fd950f025263747f6f399c68aa2e99..d04f3900e5b83472e7dc6c64480d50f66105de5b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2013-05-22  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
+
+       * sysdeps/unix/sysv/linux/bits/siginfo.h (siginfo_t): Add si_addr_lsb
+       to _sifields.sigfault.
+       (si_addr_lsb): Define new macro.
+       (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+       * sysdeps/unix/sysv/linux/sparc/bits/siginfo.h: Likewise.
+       * sysdeps/unix/sysv/linux/x86/bits/siginfo.h: Likewise.
+
 2013-05-03  Carlos O'Donell  <carlos at redhat.com>
 
        [BZ #15441]
index c5d2a62d96ad3f3e14fde9e5c2e6520dd011051b..2229bb6063630c849066bb0579aa5e1c674c888f 100644 (file)
@@ -1,3 +1,10 @@
+2013-05-22  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
+
+       * sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (siginfo_t): Add
+       si_trapno and si_addr_lsb to _sifields.sigfault.
+       (si_trapno, si_addr_lsb): Define new macros.
+       (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+
 2013-05-22  Joseph Myers  <joseph@codesourcery.com>
 
        * sysdeps/alpha/fpu/libm-test-ulps: Update test names.
index e1a83ad249dd513194415a1f526ec52956da7f4f..46cddaff0ec8202d11706908fc288e02f1ee9db7 100644 (file)
@@ -1,3 +1,10 @@
+2013-05-22  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
+
+       * sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (siginfo_t): Add
+       si_addr_lsb to _sifields.sigfault.
+       (si_addr_lsb): Define new macro.
+       (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+
 2013-05-22  Joseph Myers  <joseph@codesourcery.com>
 
        * sysdeps/ia64/fpu/libm-test-ulps: Update test names.
index fdbeaed766d1ab9b087429bfa47f72234585fa5a..c44068cc208b7787f43ffdf221de6d1b3cbde0c5 100644 (file)
@@ -1,3 +1,10 @@
+2013-05-22  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
+
+       * sysdeps/unix/sysv/linux/mips/bits/siginfo.h (siginfo_t): Add
+       si_addr_lsb to _sifields.sifault.
+       (si_addr_lsb): Define new macro.
+       (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+
 2013-05-22  Joseph Myers  <joseph@codesourcery.com>
 
        * sysdeps/mips/mips32/libm-test-ulps: Update test names.
index 612c2c8b3a35c4a593a2c7b3bad166eae06e6d7c..7204ae578bc3d4ae030c65a14569a67216df6680 100644 (file)
@@ -1,3 +1,10 @@
+2013-05-22  Edjunior Barbosa Machado  <emachado@linux.vnet.ibm.com>
+
+       * sysdeps/unix/sysv/linux/tile/bits/siginfo.h (siginfo_t): Fix comment
+       formatting. Add si_addr_lsb to _sifields.sigfault.
+       (si_addr_lsb): Define new macro.
+       (BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.
+
 2013-05-22  Joseph Myers  <joseph@codesourcery.com>
 
        * sysdeps/tile/libm-test-ulps: Update test names.
index 12778856fa7d1fd39628c666f0212035b63f66e9..49ca826479dfae205422614efc30a488519bf802 100644 (file)
@@ -89,6 +89,8 @@ typedef struct
        struct
          {
            void *si_addr;      /* Faulting insn/memory ref.  */
+           int si_trapno;      /* TRAP # which caused the signal.  */
+           short int si_addr_lsb;      /* Valid LSB of the reported address.  */
          } _sigfault;
 
        /* SIGPOLL.  */
@@ -121,6 +123,8 @@ typedef struct
 # 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_trapno     _sifields._sigfault.si_trapno
+# define si_addr_lsb   _sifields._sigfault.si_addr_lsb
 # define si_band       _sifields._sigpoll.si_band
 # define si_fd         _sifields._sigpoll.si_fd
 # define si_call_addr  _sifields._sigsys._call_addr
@@ -211,8 +215,12 @@ 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
 };
 
 /* `si_code' values for SIGTRAP signal.  */
index 7887b4554000db5798a6631d1e84f109bc5ed5ec..5fa97b5d598973543fe200fb5a77aab0ee845e25 100644 (file)
@@ -94,6 +94,7 @@ typedef struct siginfo
            int _si_imm;
            unsigned int _si_flags;
            unsigned long int _si_isr;
+           short int si_addr_lsb;      /* Valid LSB of the reported address.  */
          } _sigfault;
 
        /* SIGPOLL.  */
@@ -118,6 +119,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
 
@@ -233,8 +235,12 @@ 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
 };
 
 /* `si_code' values for SIGTRAP signal.  */
index 56ae34c03baf9014a8ee4b4be0c6fa8a700139d0..a9a845a61770ab0ca98362f4d9d5cbb17f326273 100644 (file)
@@ -98,6 +98,7 @@ typedef struct
        struct
          {
            void *si_addr;      /* Faulting insn/memory ref.  */
+           short int si_addr_lsb;      /* Valid LSB of the reported address.  */
          } _sigfault;
 
        /* SIGPOLL.  */
@@ -122,6 +123,7 @@ typedef struct
 # 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
 
@@ -209,8 +211,12 @@ 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
 };
 
 /* `si_code' values for SIGTRAP signal.  */
index 4ad1a5db6c00d5282568e21cbfd68e75d7a08ae8..7b40f3db037e2a8dbe9a285344039b9aa29da4fa 100644 (file)
@@ -95,7 +95,8 @@ typedef struct
        struct
          {
            void *si_addr;      /* Faulting insn/memory ref.  */
-           int si_trapno;      /* TRAP # which caused the signal */
+           int si_trapno;      /* TRAP # which caused the signal.  */
+           short int si_addr_lsb;      /* Valid LSB of the reported address.  */
          } _sigfault;
 
        /* SIGPOLL.  */
@@ -129,6 +130,7 @@ typedef struct
 # define si_ptr                _sifields._rt.si_sigval.sival_ptr
 # define si_addr       _sifields._sigfault.si_addr
 # define si_trapno     _sifields._sigfault.si_trapno
+# define si_addr_lsb   _sifields._sigfault.si_addr_lsb
 # define si_band       _sifields._sigpoll.si_band
 # define si_fd         _sifields._sigpoll.si_fd
 # define si_call_addr  _sifields._sigsys._call_addr
@@ -223,8 +225,12 @@ 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
 };
 
 /* `si_code' values for SIGTRAP signal.  */
index a67bd5c0d140afb99efc6b173d8d6db0686e8cb5..160378457e34eadad4fc3ccd22fdaf12d3888777 100644 (file)
@@ -95,6 +95,7 @@ typedef struct
        struct
          {
            void *si_addr;      /* Faulting insn/memory ref.  */
+           short int si_addr_lsb;      /* Valid LSB of the reported address.  */
          } _sigfault;
 
        /* SIGPOLL.  */
@@ -127,6 +128,7 @@ typedef struct
 # 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
 # define si_call_addr  _sifields._sigsys._call_addr
@@ -217,8 +219,12 @@ 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
 };
 
 /* `si_code' values for SIGTRAP signal.  */
index 85a54625e15a0c61f2f667c3a95c2b989e0e7b67..88fa1dfd5eca1e687506860691a78d93a841124a 100644 (file)
@@ -96,6 +96,7 @@ typedef struct
          {
            void *si_addr;      /* Faulting insn/memory ref.  */
            int si_trapno;
+           short int si_addr_lsb;      /* Valid LSB of the reported address.  */
          } _sigfault;
 
        /* SIGPOLL.  */
@@ -129,6 +130,7 @@ typedef struct
 # define si_ptr                _sifields._rt.si_sigval.sival_ptr
 # define si_addr       _sifields._sigfault.si_addr
 # define si_trapno     _sifields._sigfault.si_trapno
+# define si_addr_lsb   _sifields._sigfault.si_addr_lsb
 # define si_band       _sifields._sigpoll.si_band
 # define si_fd         _sifields._sigpoll.si_fd
 # define si_call_addr  _sifields._sigsys._call_addr
@@ -219,8 +221,12 @@ 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
 };
 
 /* `si_code' values for SIGTRAP signal.  */
index 48aef6db64e2dd212d521b435d065c6d50500b5e..bfc6aa3b5ff2f5a4668497a43b9c9f20c0070675 100644 (file)
@@ -107,6 +107,7 @@ typedef struct
        struct
          {
            void *si_addr;      /* Faulting insn/memory ref.  */
+           short int si_addr_lsb;      /* Valid LSB of the reported address.  */
          } _sigfault;
 
        /* SIGPOLL.  */
@@ -139,6 +140,7 @@ typedef struct
 # 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
 # define si_call_addr  _sifields._sigsys._call_addr
@@ -229,8 +231,12 @@ 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
 };
 
 /* `si_code' values for SIGTRAP signal.  */