#pragma once #include "linux/types.h" #include #include #define SYS_clone3 435 #define SIGCHLD 17 typedef struct { __aligned_u64 flags; /* Flags bit mask */ __aligned_u64 pidfd; /* Where to store PID file descriptor (int *) */ __aligned_u64 child_tid; /* Where to store child TID, in child's memory (pid_t *) */ __aligned_u64 parent_tid; /* Where to store child TID, in parent's memory (pid_t *) */ __aligned_u64 exit_signal; /* Signal to deliver to parent on child termination */ __aligned_u64 stack; /* Pointer to lowest byte of stack */ __aligned_u64 stack_size; /* Size of stack */ __aligned_u64 tls; /* Location of new TLS */ __aligned_u64 set_tid; /* Pointer to a pid_t array (since Linux 5.5) */ __aligned_u64 set_tid_size; /* Number of elements in set_tid (since Linux 5.5) */ __aligned_u64 cgroup; /* File descriptor for target cgroup */ } CloneArgs;