From 85118d4de37e76a1596a75bae75f75f69c33225c Mon Sep 17 00:00:00 2001 From: Edjunior Barbosa Machado Date: Wed, 22 May 2013 14:19:49 -0500 Subject: Update bits/siginfo.h with Linux hwpoison SIGBUS changes 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. --- ChangeLog | 9 +++++++++ ports/ChangeLog.alpha | 7 +++++++ ports/ChangeLog.ia64 | 7 +++++++ ports/ChangeLog.mips | 7 +++++++ ports/ChangeLog.tile | 7 +++++++ 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 | 10 ++++++++-- 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 +++++++- 12 files changed, 89 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 49d3c366b6..d04f3900e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2013-05-22 Edjunior Barbosa Machado + + * 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 [BZ #15441] diff --git a/ports/ChangeLog.alpha b/ports/ChangeLog.alpha index c5d2a62d96..2229bb6063 100644 --- a/ports/ChangeLog.alpha +++ b/ports/ChangeLog.alpha @@ -1,3 +1,10 @@ +2013-05-22 Edjunior Barbosa Machado + + * 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 * sysdeps/alpha/fpu/libm-test-ulps: Update test names. diff --git a/ports/ChangeLog.ia64 b/ports/ChangeLog.ia64 index e1a83ad249..46cddaff0e 100644 --- a/ports/ChangeLog.ia64 +++ b/ports/ChangeLog.ia64 @@ -1,3 +1,10 @@ +2013-05-22 Edjunior Barbosa Machado + + * 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 * sysdeps/ia64/fpu/libm-test-ulps: Update test names. diff --git a/ports/ChangeLog.mips b/ports/ChangeLog.mips index fdbeaed766..c44068cc20 100644 --- a/ports/ChangeLog.mips +++ b/ports/ChangeLog.mips @@ -1,3 +1,10 @@ +2013-05-22 Edjunior Barbosa Machado + + * 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 * sysdeps/mips/mips32/libm-test-ulps: Update test names. diff --git a/ports/ChangeLog.tile b/ports/ChangeLog.tile index 612c2c8b3a..7204ae578b 100644 --- a/ports/ChangeLog.tile +++ b/ports/ChangeLog.tile @@ -1,3 +1,10 @@ +2013-05-22 Edjunior Barbosa Machado + + * 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 * sysdeps/tile/libm-test-ulps: Update test names. diff --git a/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/alpha/bits/siginfo.h index 12778856fa..49ca826479 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 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. */ diff --git a/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/ia64/bits/siginfo.h index 7887b45540..5fa97b5d59 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 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. */ diff --git a/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/mips/bits/siginfo.h index 56ae34c03b..a9a845a617 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 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. */ diff --git a/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h b/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h index 4ad1a5db6c..7b40f3db03 100644 --- a/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h +++ b/ports/sysdeps/unix/sysv/linux/tile/bits/siginfo.h @@ -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. */ diff --git a/sysdeps/unix/sysv/linux/bits/siginfo.h b/sysdeps/unix/sysv/linux/bits/siginfo.h index a67bd5c0d1..160378457e 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 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. */ diff --git a/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h b/sysdeps/unix/sysv/linux/sparc/bits/siginfo.h index 85a54625e1..88fa1dfd5e 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 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. */ diff --git a/sysdeps/unix/sysv/linux/x86/bits/siginfo.h b/sysdeps/unix/sysv/linux/x86/bits/siginfo.h index 48aef6db64..bfc6aa3b5f 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 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. */ -- cgit 1.4.1