Skip to content

Commit 240de1f

Browse files
committed
Auto merge of #3400 - devnexen:nbsd_obsd_siginfo_upd, r=JohnTitor
netbsd/openbsd adding more accessors to siginfo_t. close #3397
2 parents 68f46d3 + ed7c9e8 commit 240de1f

File tree

2 files changed

+71
-1
lines changed

2 files changed

+71
-1
lines changed

src/unix/bsd/netbsdlike/netbsd/mod.rs

+33
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,39 @@ impl siginfo_t {
6060
self.si_addr
6161
}
6262

63+
pub unsafe fn si_code(&self) -> ::c_int {
64+
self.si_code
65+
}
66+
67+
pub unsafe fn si_errno(&self) -> ::c_int {
68+
self.si_errno
69+
}
70+
71+
pub unsafe fn si_pid(&self) -> ::pid_t {
72+
#[repr(C)]
73+
struct siginfo_timer {
74+
_si_signo: ::c_int,
75+
_si_errno: ::c_int,
76+
_si_code: ::c_int,
77+
__pad1: ::c_int,
78+
_pid: ::pid_t,
79+
}
80+
(*(self as *const siginfo_t as *const siginfo_timer))._pid
81+
}
82+
83+
pub unsafe fn si_uid(&self) -> ::uid_t {
84+
#[repr(C)]
85+
struct siginfo_timer {
86+
_si_signo: ::c_int,
87+
_si_errno: ::c_int,
88+
_si_code: ::c_int,
89+
__pad1: ::c_int,
90+
_pid: ::pid_t,
91+
_uid: ::uid_t,
92+
}
93+
(*(self as *const siginfo_t as *const siginfo_timer))._uid
94+
}
95+
6396
pub unsafe fn si_value(&self) -> ::sigval {
6497
#[repr(C)]
6598
struct siginfo_timer {

src/unix/bsd/netbsdlike/openbsd/mod.rs

+38-1
Original file line numberDiff line numberDiff line change
@@ -548,12 +548,46 @@ impl siginfo_t {
548548
self.si_addr
549549
}
550550

551-
pub unsafe fn si_value(&self) -> ::sigval {
551+
pub unsafe fn si_code(&self) -> ::c_int {
552+
self.si_code
553+
}
554+
555+
pub unsafe fn si_errno(&self) -> ::c_int {
556+
self.si_errno
557+
}
558+
559+
pub unsafe fn si_pid(&self) -> ::pid_t {
560+
#[repr(C)]
561+
struct siginfo_timer {
562+
_si_signo: ::c_int,
563+
_si_code: ::c_int,
564+
_si_errno: ::c_int,
565+
_pad: [::c_int; SI_PAD],
566+
_pid: ::pid_t,
567+
}
568+
(*(self as *const siginfo_t as *const siginfo_timer))._pid
569+
}
570+
571+
pub unsafe fn si_uid(&self) -> ::uid_t {
552572
#[repr(C)]
553573
struct siginfo_timer {
554574
_si_signo: ::c_int,
575+
_si_code: ::c_int,
555576
_si_errno: ::c_int,
577+
_pad: [::c_int; SI_PAD],
578+
_pid: ::pid_t,
579+
_uid: ::uid_t,
580+
}
581+
(*(self as *const siginfo_t as *const siginfo_timer))._uid
582+
}
583+
584+
pub unsafe fn si_value(&self) -> ::sigval {
585+
#[repr(C)]
586+
struct siginfo_timer {
587+
_si_signo: ::c_int,
556588
_si_code: ::c_int,
589+
_si_errno: ::c_int,
590+
_pad: [::c_int; SI_PAD],
557591
_pid: ::pid_t,
558592
_uid: ::uid_t,
559593
value: ::sigval,
@@ -1652,6 +1686,9 @@ pub const NTFS_MFLAG_ALLNAMES: ::c_int = 0x2;
16521686

16531687
pub const TMPFS_ARGS_VERSION: ::c_int = 1;
16541688

1689+
const SI_MAXSZ: ::size_t = 128;
1690+
const SI_PAD: ::size_t = (SI_MAXSZ / ::mem::size_of::<::c_int>()) - 3;
1691+
16551692
pub const MAP_STACK: ::c_int = 0x4000;
16561693
pub const MAP_CONCEAL: ::c_int = 0x8000;
16571694

0 commit comments

Comments
 (0)