3 #ifndef __LXC_ATTACH_OPTIONS_H
4 #define __LXC_ATTACH_OPTIONS_H
15 typedef enum lxc_attach_env_policy_t {
16 LXC_ATTACH_KEEP_ENV = 0,
17 #define LXC_ATTACH_KEEP_ENV LXC_ATTACH_KEEP_ENV
19 LXC_ATTACH_CLEAR_ENV = 1,
20 #define LXC_ATTACH_CLEAR_ENV LXC_ATTACH_CLEAR_ENV
21 } lxc_attach_env_policy_t;
25 LXC_ATTACH_MOVE_TO_CGROUP = 0x00000001,
26 #define LXC_ATTACH_MOVE_TO_CGROUP LXC_ATTACH_MOVE_TO_CGROUP
28 LXC_ATTACH_DROP_CAPABILITIES = 0x00000002,
29 #define LXC_ATTACH_DROP_CAPABILITIES LXC_ATTACH_DROP_CAPABILITIES
31 LXC_ATTACH_SET_PERSONALITY = 0x00000004,
32 #define LXC_ATTACH_SET_PERSONALITY LXC_ATTACH_SET_PERSONALITY
34 LXC_ATTACH_LSM_EXEC = 0x00000008,
35 #define LXC_ATTACH_LSM_EXEC LXC_ATTACH_LSM_EXEC
39 LXC_ATTACH_REMOUNT_PROC_SYS = 0x00010000,
40 #define LXC_ATTACH_REMOUNT_PROC_SYS LXC_ATTACH_REMOUNT_PROC_SYS
42 LXC_ATTACH_LSM_NOW = 0x00020000,
43 #define LXC_ATTACH_LSM_NOW LXC_ATTACH_LSM_NOW
46 LXC_ATTACH_NO_NEW_PRIVS = 0x00040000,
47 #define LXC_ATTACH_NO_NEW_PRIVS LXC_ATTACH_NO_NEW_PRIVS
49 LXC_ATTACH_TERMINAL = 0x00080000,
50 #define LXC_ATTACH_TERMINAL LXC_ATTACH_TERMINAL
52 LXC_ATTACH_LSM_LABEL = 0x00100000,
53 #define LXC_ATTACH_LSM_LABEL LXC_ATTACH_LSM_LABEL
55 LXC_ATTACH_SETGROUPS = 0x00200000,
56 #define LXC_ATTACH_SETGROUPS LXC_ATTACH_SETGROUPS
63 LXC_ATTACH_DEFAULT = 0x0000FFFF
64 #define LXC_ATTACH_DEFAULT LXC_ATTACH_DEFAULT
68 #define LXC_ATTACH_LSM (LXC_ATTACH_LSM_EXEC | LXC_ATTACH_LSM_NOW)
78 typedef int (*lxc_attach_exec_t)(
void* payload);
85 #define LXC_ATTACH_DETECT_PERSONALITY ~0L
161 #define LXC_ATTACH_OPTIONS_DEFAULT \
163 .attach_flags = LXC_ATTACH_DEFAULT, \
165 .personality = LXC_ATTACH_DETECT_PERSONALITY, \
166 .initial_cwd = NULL, \
169 .env_policy = LXC_ATTACH_KEEP_ENV, \
170 .extra_env_vars = NULL, \
171 .extra_keep_env = NULL, \
195 extern int lxc_attach_run_command(
void* payload);
204 extern int lxc_attach_run_shell(
void* payload);