diff options
author | Laurent Bercot <ska-skaware@skarnet.org> | 2024-09-12 11:53:13 +0000 |
---|---|---|
committer | Laurent Bercot <ska@appnovation.com> | 2024-09-12 11:53:13 +0000 |
commit | f867414f4e1f8115d1c9796f8f91677673739368 (patch) | |
tree | e350efd8dff46f8f4adfc758d9f4bb292b0622ec /src/sysdeps/tryclonenewpid.c | |
parent | a7973043c92dc0f9d083e600142a47ce6dd1c9f6 (diff) | |
download | skalibs-f867414f4e1f8115d1c9796f8f91677673739368.tar.xz |
Add sysdep for CLONE_NEWPID and fork_newpid function
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/sysdeps/tryclonenewpid.c')
-rw-r--r-- | src/sysdeps/tryclonenewpid.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/sysdeps/tryclonenewpid.c b/src/sysdeps/tryclonenewpid.c new file mode 100644 index 0000000..1a1401a --- /dev/null +++ b/src/sysdeps/tryclonenewpid.c @@ -0,0 +1,36 @@ +/* ISC license. */ + +#undef _POSIX_C_SOURCE +#undef _XOPEN_SOURCE + +#ifndef _GNU_SOURCE +#define _GNU_SOURCE +#endif + +#include <sched.h> +#include <sys/syscall.h> +#include <stdint.h> +#include <unistd.h> + +struct clone_args +{ + uint64_t flags ; + uint64_t pidfd ; + uint64_t child_tid ; + uint64_t parent_tid ; + uint64_t exit_signal ; + uint64_t stack ; + uint64_t stack_size ; + uint64_t tls ; + uint64_t set_tid ; + uint64_t set_tid_size ; + uint64_t cgroup ; +} ; + +int main (void) +{ + struct clone_args args = { 0 } ; + args.flags = CLONE_NEWPID ; + syscall(SYS_clone3, &args, sizeof(struct clone_args)) ; + return 0 ; +} |