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