]>
Commit | Line | Data |
---|---|---|
db9ecf05 | 1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ |
add00535 LP |
2 | #pragma once |
3 | ||
89382935 | 4 | #include "missing_sched.h" |
add00535 LP |
5 | |
6 | /* The combination of all namespace flags defined by the kernel. The right type for this isn't clear. setns() and | |
7 | * unshare() expect these flags to be passed as (signed) "int", while clone() wants them as "unsigned long". The latter | |
8 | * is definitely more appropriate for a flags parameter, and also the larger type of the two, hence let's stick to that | |
9 | * here. */ | |
10 | #define NAMESPACE_FLAGS_ALL \ | |
11 | ((unsigned long) (CLONE_NEWCGROUP| \ | |
12 | CLONE_NEWIPC| \ | |
13 | CLONE_NEWNET| \ | |
14 | CLONE_NEWNS| \ | |
15 | CLONE_NEWPID| \ | |
16 | CLONE_NEWUSER| \ | |
17 | CLONE_NEWUTS)) | |
18 | ||
f5fbe71d | 19 | #define NAMESPACE_FLAGS_INITIAL (ULONG_MAX) |
aa9d574d | 20 | |
86c2a9f1 YW |
21 | int namespace_flags_from_string(const char *name, unsigned long *ret); |
22 | int namespace_flags_to_string(unsigned long flags, char **ret); | |
54c2459d | 23 | const char *namespace_single_flag_to_string(unsigned long flag); |
add00535 LP |
24 | |
25 | struct namespace_flag_map { | |
26 | unsigned long flag; | |
27 | const char *name; | |
28 | }; | |
29 | ||
30 | extern const struct namespace_flag_map namespace_flag_map[]; |