github.com/ttpreport/gvisor-ligolo@v0.0.0-20240123134145-a858404967ba/pkg/abi/linux/clone.go (about) 1 // Copyright 2018 The gVisor Authors. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package linux 16 17 // Clone constants per clone(2). 18 const ( 19 CSIGNAL = 0xff 20 21 CLONE_VM = 0x100 22 CLONE_FS = 0x200 23 CLONE_FILES = 0x400 24 CLONE_SIGHAND = 0x800 25 CLONE_PIDFD = 0x1000 26 CLONE_PTRACE = 0x2000 27 CLONE_VFORK = 0x4000 28 CLONE_PARENT = 0x8000 29 CLONE_THREAD = 0x10000 30 CLONE_NEWNS = 0x20000 31 CLONE_SYSVSEM = 0x40000 32 CLONE_SETTLS = 0x80000 33 CLONE_PARENT_SETTID = 0x100000 34 CLONE_CHILD_CLEARTID = 0x200000 35 CLONE_DETACHED = 0x400000 36 CLONE_UNTRACED = 0x800000 37 CLONE_CHILD_SETTID = 0x1000000 38 CLONE_NEWCGROUP = 0x2000000 39 CLONE_NEWUTS = 0x4000000 40 CLONE_NEWIPC = 0x8000000 41 CLONE_NEWUSER = 0x10000000 42 CLONE_NEWPID = 0x20000000 43 CLONE_NEWNET = 0x40000000 44 CLONE_IO = 0x80000000 45 46 // Only passable via clone3(2). 47 CLONE_CLEAR_SIGHAND = 0x100000000 48 CLONE_INTO_CGROUP = 0x200000000 49 ) 50 51 // CloneArgs is struct clone_args, from include/uapi/linux/sched.h. 52 type CloneArgs struct { 53 Flags uint64 54 Pidfd uint64 55 ChildTID uint64 56 ParentTID uint64 57 ExitSignal uint64 58 Stack uint64 59 StackSize uint64 60 TLS uint64 61 SetTID uint64 62 SetTIDSize uint64 63 Cgroup uint64 64 }