Skip to content

Commit bce5b30

Browse files
committed
Merge remote-tracking branch 'upstream/master' into cpu-fanotify-linux-bindings
2 parents 0bef8ef + 8fdf28e commit bce5b30

File tree

8 files changed

+138
-8
lines changed

8 files changed

+138
-8
lines changed

ci/run-docker.sh

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,13 @@
55

66
set -ex
77

8+
# Default to assuming the CARGO_HOME is one directory up (to account for a `bin`
9+
# subdir) from where the `cargo` binary in `$PATH` lives.
10+
DEFAULT_CARGO_HOME="$(dirname "$(dirname "$(command -v cargo)")")"
11+
# If the CARGO_HOME env var is already set, use that. If it isn't set use the
12+
# default.
13+
CARGO_HOME="${CARGO_HOME:-$DEFAULT_CARGO_HOME}"
14+
815
echo "${HOME}"
916
pwd
1017

@@ -26,7 +33,7 @@ run() {
2633
--env LIBC_CI \
2734
--env CARGO_HOME=/cargo \
2835
--env CARGO_TARGET_DIR=/checkout/target \
29-
--volume "$(dirname "$(dirname "$(command -v cargo)")")":/cargo \
36+
--volume "$CARGO_HOME":/cargo \
3037
--volume "$(rustc --print sysroot)":/rust:ro \
3138
--volume "$(pwd)":/checkout:ro \
3239
--volume "$(pwd)"/target:/checkout/target \

src/unix/bsd/apple/b64/mod.rs

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
pub type c_long = i64;
44
pub type c_ulong = u64;
55
pub type boolean_t = ::c_uint;
6+
pub type mcontext_t = *mut __darwin_mcontext64;
67

78
s! {
89
pub struct timeval32 {
@@ -48,6 +49,107 @@ s! {
4849
pub bh_datalen: u32,
4950
pub bh_hdrlen: ::c_ushort,
5051
}
52+
53+
pub struct ucontext_t {
54+
pub uc_onstack: ::c_int,
55+
pub uc_sigmask: ::sigset_t,
56+
pub uc_stack: ::stack_t,
57+
pub uc_link: *mut ::ucontext_t,
58+
pub uc_mcsize: usize,
59+
pub uc_mcontext: mcontext_t,
60+
}
61+
62+
pub struct __darwin_mcontext64 {
63+
pub __es: __darwin_x86_exception_state64,
64+
pub __ss: __darwin_x86_thread_state64,
65+
pub __fs: __darwin_x86_float_state64,
66+
}
67+
68+
pub struct __darwin_x86_exception_state64 {
69+
pub __trapno: u16,
70+
pub __cpu: u16,
71+
pub __err: u32,
72+
pub __faultvaddr: u64,
73+
}
74+
75+
pub struct __darwin_x86_thread_state64 {
76+
pub __rax: u64,
77+
pub __rbx: u64,
78+
pub __rcx: u64,
79+
pub __rdx: u64,
80+
pub __rdi: u64,
81+
pub __rsi: u64,
82+
pub __rbp: u64,
83+
pub __rsp: u64,
84+
pub __r8: u64,
85+
pub __r9: u64,
86+
pub __r10: u64,
87+
pub __r11: u64,
88+
pub __r12: u64,
89+
pub __r13: u64,
90+
pub __r14: u64,
91+
pub __r15: u64,
92+
pub __rip: u64,
93+
pub __rflags: u64,
94+
pub __cs: u64,
95+
pub __fs: u64,
96+
pub __gs: u64,
97+
}
98+
99+
pub struct __darwin_x86_float_state64 {
100+
pub __fpu_reserved: [::c_int; 2],
101+
__fpu_fcw: ::c_short,
102+
__fpu_fsw: ::c_short,
103+
pub __fpu_ftw: u8,
104+
pub __fpu_rsrv1: u8,
105+
pub __fpu_fop: u16,
106+
pub __fpu_ip: u32,
107+
pub __fpu_cs: u16,
108+
pub __fpu_rsrv2: u16,
109+
pub __fpu_dp: u32,
110+
pub __fpu_ds: u16,
111+
pub __fpu_rsrv3: u16,
112+
pub __fpu_mxcsr: u32,
113+
pub __fpu_mxcsrmask: u32,
114+
pub __fpu_stmm0: __darwin_mmst_reg,
115+
pub __fpu_stmm1: __darwin_mmst_reg,
116+
pub __fpu_stmm2: __darwin_mmst_reg,
117+
pub __fpu_stmm3: __darwin_mmst_reg,
118+
pub __fpu_stmm4: __darwin_mmst_reg,
119+
pub __fpu_stmm5: __darwin_mmst_reg,
120+
pub __fpu_stmm6: __darwin_mmst_reg,
121+
pub __fpu_stmm7: __darwin_mmst_reg,
122+
pub __fpu_xmm0: __darwin_xmm_reg,
123+
pub __fpu_xmm1: __darwin_xmm_reg,
124+
pub __fpu_xmm2: __darwin_xmm_reg,
125+
pub __fpu_xmm3: __darwin_xmm_reg,
126+
pub __fpu_xmm4: __darwin_xmm_reg,
127+
pub __fpu_xmm5: __darwin_xmm_reg,
128+
pub __fpu_xmm6: __darwin_xmm_reg,
129+
pub __fpu_xmm7: __darwin_xmm_reg,
130+
pub __fpu_xmm8: __darwin_xmm_reg,
131+
pub __fpu_xmm9: __darwin_xmm_reg,
132+
pub __fpu_xmm10: __darwin_xmm_reg,
133+
pub __fpu_xmm11: __darwin_xmm_reg,
134+
pub __fpu_xmm12: __darwin_xmm_reg,
135+
pub __fpu_xmm13: __darwin_xmm_reg,
136+
pub __fpu_xmm14: __darwin_xmm_reg,
137+
pub __fpu_xmm15: __darwin_xmm_reg,
138+
// this field is actually [u8; 96], but defining it with a bigger type
139+
// allows us to auto-implement traits for it since the length of the
140+
// array is less than 32
141+
__fpu_rsrv4: [u32; 24],
142+
pub __fpu_reserved1: ::c_int,
143+
}
144+
145+
pub struct __darwin_mmst_reg {
146+
pub __mmst_reg: [::c_char; 10],
147+
pub __mmst_rsrv: [::c_char; 6],
148+
}
149+
150+
pub struct __darwin_xmm_reg {
151+
pub __xmm_reg: [::c_char; 16],
152+
}
51153
}
52154

53155
s_no_extra_traits! {

src/unix/bsd/netbsdlike/mod.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,12 @@ extern "C" {
632632
) -> ::c_int;
633633

634634
pub fn daemon(nochdir: ::c_int, noclose: ::c_int) -> ::c_int;
635+
pub fn accept4(
636+
s: ::c_int,
637+
addr: *mut ::sockaddr,
638+
addrlen: *mut ::socklen_t,
639+
flags: ::c_int,
640+
) -> ::c_int;
635641
pub fn mincore(
636642
addr: *mut ::c_void,
637643
len: ::size_t,

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1393,12 +1393,6 @@ extern "C" {
13931393
tp: *const ::timeval,
13941394
tz: *const ::timezone,
13951395
) -> ::c_int;
1396-
pub fn accept4(
1397-
s: ::c_int,
1398-
addr: *mut ::sockaddr,
1399-
addrlen: *mut ::socklen_t,
1400-
flags: ::c_int,
1401-
) -> ::c_int;
14021396
pub fn execvpe(
14031397
file: *const ::c_char,
14041398
argv: *const *const ::c_char,

src/unix/linux_like/linux/gnu/mod.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,6 +1198,14 @@ extern "C" {
11981198
pub fn ntp_adjtime(buf: *mut timex) -> ::c_int;
11991199
#[link_name = "ntp_gettimex"]
12001200
pub fn ntp_gettime(buf: *mut ntptimeval) -> ::c_int;
1201+
pub fn copy_file_range(
1202+
fd_in: ::c_int,
1203+
off_in: *mut ::off64_t,
1204+
fd_out: ::c_int,
1205+
off_out: *mut ::off64_t,
1206+
len: ::size_t,
1207+
flags: ::c_uint,
1208+
) -> ::ssize_t;
12011209
pub fn fanotify_mark(
12021210
fd: ::c_int,
12031211
flags: ::c_uint,

src/unix/solarish/mod.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2347,6 +2347,12 @@ extern "C" {
23472347
msg: *mut ::msghdr,
23482348
flags: ::c_int,
23492349
) -> ::ssize_t;
2350+
pub fn accept4(
2351+
fd: ::c_int,
2352+
address: *mut sockaddr,
2353+
address_len: *mut socklen_t,
2354+
flags: ::c_int
2355+
) -> ::c_int;
23502356

23512357
pub fn mq_open(name: *const ::c_char, oflag: ::c_int, ...) -> ::mqd_t;
23522358
pub fn mq_close(mqd: ::mqd_t) -> ::c_int;

src/windows/gnu/mod.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,14 @@ extern "C" {
1313
s2: *const ::c_char,
1414
n: ::size_t,
1515
) -> ::c_int;
16+
17+
// NOTE: For MSVC target, `wmemchr` is only a inline function in `<wchar.h>`
18+
// header file. We cannot find a way to link to that symbol from Rust.
19+
pub fn wmemchr(
20+
cx: *const ::wchar_t,
21+
c: ::wchar_t,
22+
n: ::size_t,
23+
) -> *mut ::wchar_t;
1624
}
1725

1826
cfg_if! {

src/windows/mod.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,6 @@ extern "C" {
378378
) -> ::size_t;
379379

380380
pub fn memchr(cx: *const c_void, c: c_int, n: size_t) -> *mut c_void;
381-
pub fn wmemchr(cx: *const wchar_t, c: wchar_t, n: size_t) -> *mut wchar_t;
382381
pub fn memcmp(cx: *const c_void, ct: *const c_void, n: size_t) -> c_int;
383382
pub fn memcpy(
384383
dest: *mut c_void,

0 commit comments

Comments
 (0)