]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/shared/nsflags.c
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
5 #include "alloc-util.h"
6 #include "extract-word.h"
7 #include "namespace-util.h"
9 #include "string-util.h"
11 int namespace_flags_from_string(const char *name
, unsigned long *ret
) {
12 unsigned long flags
= 0;
18 _cleanup_free_
char *word
= NULL
;
22 r
= extract_first_word(&name
, &word
, NULL
, 0);
28 for (i
= 0; namespace_info
[i
].proc_name
; i
++)
29 if (streq(word
, namespace_info
[i
].proc_name
)) {
30 f
= namespace_info
[i
].clone_flag
;
44 int namespace_flags_to_string(unsigned long flags
, char **ret
) {
45 _cleanup_free_
char *s
= NULL
;
48 for (i
= 0; namespace_info
[i
].proc_name
; i
++) {
49 if ((flags
& namespace_info
[i
].clone_flag
) != namespace_info
[i
].clone_flag
)
52 if (!strextend_with_separator(&s
, " ", namespace_info
[i
].proc_name
))
61 const char *namespace_single_flag_to_string(unsigned long flag
) {
62 for (unsigned i
= 0; namespace_info
[i
].proc_name
; i
++)
63 if (namespace_info
[i
].clone_flag
== flag
)
64 return namespace_info
[i
].proc_name
;