summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgnzlbg <gnzlbg@users.noreply.github.com>2018-11-10 08:53:18 +0100
committerGitHub <noreply@github.com>2018-11-10 08:53:18 +0100
commit5d3025b3c9545cafe143cca77b5206709ad97edc (patch)
tree11030182c0c1cf527cf92e225cb28c82515bedf8
parent9c5e70ae306463a23ec02179ac2c9fe05c3fb44e (diff)
parent24752782efbda21bd0b206c33326bf425e6ce694 (diff)
downloadrust-libc-5d3025b3c9545cafe143cca77b5206709ad97edc.tar.gz
Merge pull request #1121 from smibarber/signalfd-sigsys
Add support for SIGSYS in signalfd
-rw-r--r--libc-test/build.rs8
-rw-r--r--src/fuchsia/mod.rs7
-rw-r--r--src/unix/notbsd/android/mod.rs6
-rw-r--r--src/unix/notbsd/emscripten.rs7
-rw-r--r--src/unix/notbsd/linux/mod.rs7
-rw-r--r--src/unix/uclibc/mod.rs7
6 files changed, 36 insertions, 6 deletions
diff --git a/libc-test/build.rs b/libc-test/build.rs
index be148b83fb..6723b2723a 100644
--- a/libc-test/build.rs
+++ b/libc-test/build.rs
@@ -841,7 +841,13 @@ fn main() {
// musl seems to define this as an *anonymous* bitfield
(musl && struct_ == "statvfs" && field == "__f_unused") ||
// sigev_notify_thread_id is actually part of a sigev_un union
- (struct_ == "sigevent" && field == "sigev_notify_thread_id")
+ (struct_ == "sigevent" && field == "sigev_notify_thread_id") ||
+ // signalfd had SIGSYS fields added in Linux 4.18, but no libc release has them yet.
+ (struct_ == "signalfd_siginfo" && (field == "ssi_addr_lsb" ||
+ field == "_pad2" ||
+ field == "ssi_syscall" ||
+ field == "ssi_call_addr" ||
+ field == "ssi_arch"))
});
cfg.fn_cname(move |name, cname| {
diff --git a/src/fuchsia/mod.rs b/src/fuchsia/mod.rs
index 0b93d84af3..7c1d1a4976 100644
--- a/src/fuchsia/mod.rs
+++ b/src/fuchsia/mod.rs
@@ -685,7 +685,12 @@ s! {
pub ssi_utime: ::uint64_t,
pub ssi_stime: ::uint64_t,
pub ssi_addr: ::uint64_t,
- _pad: [::uint8_t; 48],
+ pub ssi_addr_lsb: ::uint16_t,
+ _pad2: ::uint16_t,
+ pub ssi_syscall: ::int32_t,
+ pub ssi_call_addr: ::uint64_t,
+ pub ssi_arch: ::uint32_t,
+ _pad: [::uint8_t; 28],
}
pub struct itimerspec {
diff --git a/src/unix/notbsd/android/mod.rs b/src/unix/notbsd/android/mod.rs
index 5b750b2b11..70052e1966 100644
--- a/src/unix/notbsd/android/mod.rs
+++ b/src/unix/notbsd/android/mod.rs
@@ -177,7 +177,11 @@ s! {
pub ssi_stime: ::c_ulonglong,
pub ssi_addr: ::c_ulonglong,
pub ssi_addr_lsb: ::uint16_t,
- _pad: [::uint8_t; 46],
+ _pad2: ::uint16_t,
+ pub ssi_syscall: ::int32_t,
+ pub ssi_call_addr: ::uint64_t,
+ pub ssi_arch: ::uint32_t,
+ _pad: [::uint8_t; 28],
}
pub struct ucred {
diff --git a/src/unix/notbsd/emscripten.rs b/src/unix/notbsd/emscripten.rs
index b30fee3232..e680032cc7 100644
--- a/src/unix/notbsd/emscripten.rs
+++ b/src/unix/notbsd/emscripten.rs
@@ -184,7 +184,12 @@ s! {
pub ssi_utime: ::uint64_t,
pub ssi_stime: ::uint64_t,
pub ssi_addr: ::uint64_t,
- _pad: [::uint8_t; 48],
+ pub ssi_addr_lsb: ::uint16_t,
+ _pad2: ::uint16_t,
+ pub ssi_syscall: ::int32_t,
+ pub ssi_call_addr: ::uint64_t,
+ pub ssi_arch: ::uint32_t,
+ _pad: [::uint8_t; 28],
}
pub struct fsid_t {
diff --git a/src/unix/notbsd/linux/mod.rs b/src/unix/notbsd/linux/mod.rs
index 1e1a66709c..a47e809c24 100644
--- a/src/unix/notbsd/linux/mod.rs
+++ b/src/unix/notbsd/linux/mod.rs
@@ -270,7 +270,12 @@ s! {
pub ssi_utime: ::uint64_t,
pub ssi_stime: ::uint64_t,
pub ssi_addr: ::uint64_t,
- _pad: [::uint8_t; 48],
+ pub ssi_addr_lsb: ::uint16_t,
+ _pad2: ::uint16_t,
+ pub ssi_syscall: ::int32_t,
+ pub ssi_call_addr: ::uint64_t,
+ pub ssi_arch: ::uint32_t,
+ _pad: [::uint8_t; 28],
}
pub struct itimerspec {
diff --git a/src/unix/uclibc/mod.rs b/src/unix/uclibc/mod.rs
index 5a947fddd6..03a8594f4f 100644
--- a/src/unix/uclibc/mod.rs
+++ b/src/unix/uclibc/mod.rs
@@ -391,7 +391,12 @@ s! {
pub ssi_utime: ::uint64_t,
pub ssi_stime: ::uint64_t,
pub ssi_addr: ::uint64_t,
- _pad: [::uint8_t; 48],
+ pub ssi_addr_lsb: ::uint16_t,
+ _pad2: ::uint16_t,
+ pub ssi_syscall: ::int32_t,
+ pub ssi_call_addr: ::uint64_t,
+ pub ssi_arch: ::uint32_t,
+ _pad: [::uint8_t; 28],
}
pub struct fsid_t {