1 // Copyright 2021 Alyssa Ross <hi@alyssa.is>
2 // SPDX-License-Identifier: Apache-2.0
3
4 use libc::{c_long, size_t, syscall, SYS_clone3};
5
6 pub const CLONE_CLEAR_SIGHAND: u64 = 0x100000000;
7
8 #[repr(C)]
9 #[derive(Default)]
10 #[allow(non_camel_case_types)]
11 pub struct clone_args {
12 pub flags: u64,
13 pub pidfd: u64,
14 pub child_tid: u64,
15 pub parent_tid: u64,
16 pub exit_signal: u64,
17 pub stack: u64,
18 pub stack_size: u64,
19 pub tls: u64,
20 pub set_tid: u64,
21 pub set_tid_size: u64,
22 pub cgroup: u64,
23 }
24
clone3(args: &mut clone_args, size: size_t) -> c_long25 pub unsafe fn clone3(args: &mut clone_args, size: size_t) -> c_long {
26 syscall(SYS_clone3, args, size)
27 }
28