public inbox for libc-ports@sourceware.org
 help / color / mirror / Atom feed
From: Edjunior Barbosa Machado <emachado@linux.vnet.ibm.com>
To: libc-alpha@sourceware.org, libc-ports@sourceware.org
Cc: naveen.n.rao@linux.vnet.ibm.com
Subject: [PATCH] Update bits/siginfo.h with Linux hwpoison SIGBUS changes
Date: Tue, 07 May 2013 04:47:00 -0000	[thread overview]
Message-ID: <1367901958-331-1-git-send-email-emachado@linux.vnet.ibm.com> (raw)

This patch 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.

Ok?
--
Edjunior

ChangeLog.alpha:
2013-05-07  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (_sigfault): Add
	si_trapno and si_addr_lsb.
	(si_trapno, si_addr_lsb): Define new macros.
	(BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.

ChangeLog.ia64:
2013-05-07  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (_sigfault): Add
	si_addr_lsb.
	(si_addr_lsb): Define new macro.
	(BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.

ChangeLog.mips:
2013-05-07  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* sysdeps/unix/sysv/linux/mips/bits/siginfo.h (_sigfault): Add
	si_addr_lsb.
	(si_addr_lsb): Define new macro.
	(BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.

ChangeLog.tile:
2013-05-07  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* sysdeps/unix/sysv/linux/tile/bits/siginfo.h (_sigfault): Add
	si_addr_lsb.
	(si_addr_lsb): Define new macro.
	(BUS_MCEERR_AR, BUS_MCEERR_AO): Define new values.

ChangeLog:
2013-05-07  Edjunior Machado  <emachado@linux.vnet.ibm.com>

	* sysdeps/unix/sysv/linux/bits/siginfo.h (_sigfault): Add si_addr_lsb.
	(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.

---
 ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h |   10 +++++++++-
 ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h  |    8 +++++++-
 ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h  |    8 +++++++-
 ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h  |    8 +++++++-
 sysdeps/unix/sysv/linux/bits/siginfo.h             |    8 +++++++-
 sysdeps/unix/sysv/linux/sparc/bits/siginfo.h       |    8 +++++++-
 sysdeps/unix/sysv/linux/x86/bits/siginfo.h         |    8 +++++++-
 7 files changed, 51 insertions(+), 7 deletions(-)

diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
index 1277885..71e4424 100644
--- a/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
+++ b/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h
@@ -89,6 +89,8 @@ typedef struct
 	struct
 	  {
 	    void *si_addr;	/* Faulting insn/memory ref.  */
+	    int si_trapno;	/* TRAP # which caused the signal */
+	    short 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.  */
diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
index 7887b45..33a41a6 100644
--- a/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
+++ b/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h
@@ -94,6 +94,7 @@ typedef struct siginfo
 	    int _si_imm;
 	    unsigned int _si_flags;
 	    unsigned long int _si_isr;
+	    short 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.  */
diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h
index 56ae34c..150f2a6 100644
--- a/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h
+++ b/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h
@@ -98,6 +98,7 @@ typedef struct
 	struct
 	  {
 	    void *si_addr;	/* Faulting insn/memory ref.  */
+	    short 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.  */
diff --git a/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h
index 4ad1a5d..81d9141 100644
--- a/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h
+++ b/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h
@@ -96,6 +96,7 @@ typedef struct
 	  {
 	    void *si_addr;	/* Faulting insn/memory ref.  */
 	    int si_trapno;	/* TRAP # which caused the signal */
+	    short 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.  */
diff --git a/sysdeps/unix/sysv/linux/bits/siginfo.h b/sysdeps/unix/sysv/linux/bits/siginfo.h
index a67bd5c..fcd27c3 100644
--- a/sysdeps/unix/sysv/linux/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/bits/siginfo.h
@@ -95,6 +95,7 @@ typedef struct
 	struct
 	  {
 	    void *si_addr;	/* Faulting insn/memory ref.  */
+	    short 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.  */
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h b/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
index 85a5462..f414aaf 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h
@@ -96,6 +96,7 @@ typedef struct
 	  {
 	    void *si_addr;	/* Faulting insn/memory ref.  */
 	    int si_trapno;
+	    short 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.  */
diff --git a/sysdeps/unix/sysv/linux/x86/bits/siginfo.h b/sysdeps/unix/sysv/linux/x86/bits/siginfo.h
index 48aef6d..044274d 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/siginfo.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/siginfo.h
@@ -107,6 +107,7 @@ typedef struct
 	struct
 	  {
 	    void *si_addr;	/* Faulting insn/memory ref.  */
+	    short 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.  */
-- 
1.7.1

             reply	other threads:[~2013-05-07  4:47 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-07  4:47 Edjunior Barbosa Machado [this message]
2013-05-14 18:32 ` Edjunior Barbosa Machado
2013-05-14 19:38 ` Andreas Jaeger
2013-05-14 20:45 ` Carlos O'Donell
2013-05-15  6:53   ` Edjunior Barbosa Machado
2013-05-17  0:43     ` Roland McGrath
2013-05-18  7:17       ` Edjunior Barbosa Machado
2013-05-22 20:09         ` Edjunior Barbosa Machado

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1367901958-331-1-git-send-email-emachado@linux.vnet.ibm.com \
    --to=emachado@linux.vnet.ibm.com \
    --cc=libc-alpha@sourceware.org \
    --cc=libc-ports@sourceware.org \
    --cc=naveen.n.rao@linux.vnet.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).