Skip to content

Commit 99756b1

Browse files
committed
Auto merge of #2811 - devnexen:linux_clone_args, r=JohnTitor
linux 64 bits gnu/musl add clone_args for clone3 syscall.
2 parents 37da201 + ff11bdc commit 99756b1

File tree

5 files changed

+67
-0
lines changed

5 files changed

+67
-0
lines changed

libc-test/build.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2827,6 +2827,7 @@ fn test_linux(target: &str) {
28272827
"linux/rtnetlink.h",
28282828
"linux/sched.h",
28292829
"linux/seccomp.h",
2830+
"linux/sched.h",
28302831
"linux/sockios.h",
28312832
"linux/uinput.h",
28322833
"linux/vm_sockets.h",
@@ -2977,6 +2978,8 @@ fn test_linux(target: &str) {
29772978

29782979
// Requires glibc 2.33 or newer.
29792980
"mallinfo2" => true,
2981+
// clone_args might differ b/w libc versions
2982+
"clone_args" => true,
29802983

29812984
// Might differ between kernel versions
29822985
"open_how" => true,

src/unix/linux_like/linux/gnu/b64/aarch64/align.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,18 @@ s! {
3434
pub fpcr: ::c_uint,
3535
}
3636

37+
#[repr(align(8))]
38+
pub struct clone_args {
39+
pub flags: ::c_ulonglong,
40+
pub pidfd: ::c_ulonglong,
41+
pub child_tid: ::c_ulonglong,
42+
pub parent_tid: ::c_ulonglong,
43+
pub exit_signal: ::c_ulonglong,
44+
pub stack: ::c_ulonglong,
45+
pub stack_size: ::c_ulonglong,
46+
pub tls: ::c_ulonglong,
47+
pub set_tid: ::c_ulonglong,
48+
pub set_tid_size: ::c_ulonglong,
49+
pub cgroup: ::c_ulonglong,
50+
}
3751
}

src/unix/linux_like/linux/gnu/b64/x86_64/align.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,20 @@ s_no_extra_traits! {
55
priv_: [f64; 4]
66
}
77
}
8+
9+
s! {
10+
#[repr(align(8))]
11+
pub struct clone_args {
12+
pub flags: ::c_ulonglong,
13+
pub pidfd: ::c_ulonglong,
14+
pub child_tid: ::c_ulonglong,
15+
pub parent_tid: ::c_ulonglong,
16+
pub exit_signal: ::c_ulonglong,
17+
pub stack: ::c_ulonglong,
18+
pub stack_size: ::c_ulonglong,
19+
pub tls: ::c_ulonglong,
20+
pub set_tid: ::c_ulonglong,
21+
pub set_tid_size: ::c_ulonglong,
22+
pub cgroup: ::c_ulonglong,
23+
}
24+
}

src/unix/linux_like/linux/musl/b64/aarch64/align.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,19 @@ s! {
2424
pub pstate: ::c_ulong,
2525
__reserved: [[u64; 32]; 16],
2626
}
27+
28+
#[repr(align(8))]
29+
pub struct clone_args {
30+
pub flags: ::c_ulonglong,
31+
pub pidfd: ::c_ulonglong,
32+
pub child_tid: ::c_ulonglong,
33+
pub parent_tid: ::c_ulonglong,
34+
pub exit_signal: ::c_ulonglong,
35+
pub stack: ::c_ulonglong,
36+
pub stack_size: ::c_ulonglong,
37+
pub tls: ::c_ulonglong,
38+
pub set_tid: ::c_ulonglong,
39+
pub set_tid_size: ::c_ulonglong,
40+
pub cgroup: ::c_ulonglong,
41+
}
2742
}

src/unix/linux_like/linux/musl/b64/x86_64/align.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,22 @@ s_no_extra_traits! {
44
pub struct max_align_t {
55
priv_: [f64; 4]
66
}
7+
8+
}
9+
10+
s! {
11+
#[repr(align(8))]
12+
pub struct clone_args {
13+
pub flags: ::c_ulonglong,
14+
pub pidfd: ::c_ulonglong,
15+
pub child_tid: ::c_ulonglong,
16+
pub parent_tid: ::c_ulonglong,
17+
pub exit_signal: ::c_ulonglong,
18+
pub stack: ::c_ulonglong,
19+
pub stack_size: ::c_ulonglong,
20+
pub tls: ::c_ulonglong,
21+
pub set_tid: ::c_ulonglong,
22+
pub set_tid_size: ::c_ulonglong,
23+
pub cgroup: ::c_ulonglong,
24+
}
725
}

0 commit comments

Comments
 (0)