Skip to content

Commit 5d3025b

Browse files
authored
Merge pull request #1121 from smibarber/signalfd-sigsys
Add support for SIGSYS in signalfd
2 parents 9c5e70a + 2475278 commit 5d3025b

File tree

6 files changed

+36
-6
lines changed

6 files changed

+36
-6
lines changed

libc-test/build.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -841,7 +841,13 @@ fn main() {
841841
// musl seems to define this as an *anonymous* bitfield
842842
(musl && struct_ == "statvfs" && field == "__f_unused") ||
843843
// sigev_notify_thread_id is actually part of a sigev_un union
844-
(struct_ == "sigevent" && field == "sigev_notify_thread_id")
844+
(struct_ == "sigevent" && field == "sigev_notify_thread_id") ||
845+
// signalfd had SIGSYS fields added in Linux 4.18, but no libc release has them yet.
846+
(struct_ == "signalfd_siginfo" && (field == "ssi_addr_lsb" ||
847+
field == "_pad2" ||
848+
field == "ssi_syscall" ||
849+
field == "ssi_call_addr" ||
850+
field == "ssi_arch"))
845851
});
846852

847853
cfg.fn_cname(move |name, cname| {

src/fuchsia/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -685,7 +685,12 @@ s! {
685685
pub ssi_utime: ::uint64_t,
686686
pub ssi_stime: ::uint64_t,
687687
pub ssi_addr: ::uint64_t,
688-
_pad: [::uint8_t; 48],
688+
pub ssi_addr_lsb: ::uint16_t,
689+
_pad2: ::uint16_t,
690+
pub ssi_syscall: ::int32_t,
691+
pub ssi_call_addr: ::uint64_t,
692+
pub ssi_arch: ::uint32_t,
693+
_pad: [::uint8_t; 28],
689694
}
690695

691696
pub struct itimerspec {

src/unix/notbsd/android/mod.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,11 @@ s! {
177177
pub ssi_stime: ::c_ulonglong,
178178
pub ssi_addr: ::c_ulonglong,
179179
pub ssi_addr_lsb: ::uint16_t,
180-
_pad: [::uint8_t; 46],
180+
_pad2: ::uint16_t,
181+
pub ssi_syscall: ::int32_t,
182+
pub ssi_call_addr: ::uint64_t,
183+
pub ssi_arch: ::uint32_t,
184+
_pad: [::uint8_t; 28],
181185
}
182186

183187
pub struct ucred {

src/unix/notbsd/emscripten.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,12 @@ s! {
184184
pub ssi_utime: ::uint64_t,
185185
pub ssi_stime: ::uint64_t,
186186
pub ssi_addr: ::uint64_t,
187-
_pad: [::uint8_t; 48],
187+
pub ssi_addr_lsb: ::uint16_t,
188+
_pad2: ::uint16_t,
189+
pub ssi_syscall: ::int32_t,
190+
pub ssi_call_addr: ::uint64_t,
191+
pub ssi_arch: ::uint32_t,
192+
_pad: [::uint8_t; 28],
188193
}
189194

190195
pub struct fsid_t {

src/unix/notbsd/linux/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,12 @@ s! {
270270
pub ssi_utime: ::uint64_t,
271271
pub ssi_stime: ::uint64_t,
272272
pub ssi_addr: ::uint64_t,
273-
_pad: [::uint8_t; 48],
273+
pub ssi_addr_lsb: ::uint16_t,
274+
_pad2: ::uint16_t,
275+
pub ssi_syscall: ::int32_t,
276+
pub ssi_call_addr: ::uint64_t,
277+
pub ssi_arch: ::uint32_t,
278+
_pad: [::uint8_t; 28],
274279
}
275280

276281
pub struct itimerspec {

src/unix/uclibc/mod.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,12 @@ s! {
391391
pub ssi_utime: ::uint64_t,
392392
pub ssi_stime: ::uint64_t,
393393
pub ssi_addr: ::uint64_t,
394-
_pad: [::uint8_t; 48],
394+
pub ssi_addr_lsb: ::uint16_t,
395+
_pad2: ::uint16_t,
396+
pub ssi_syscall: ::int32_t,
397+
pub ssi_call_addr: ::uint64_t,
398+
pub ssi_arch: ::uint32_t,
399+
_pad: [::uint8_t; 28],
395400
}
396401

397402
pub struct fsid_t {

0 commit comments

Comments
 (0)