1*49cdfc7eSAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0-or-later
2*49cdfc7eSAndroid Build Coastguard Worker * Copyright (c) 2015 Red Hat, Inc.
3*49cdfc7eSAndroid Build Coastguard Worker * Copyright (c) Linux Test Project, 2015-2023
4*49cdfc7eSAndroid Build Coastguard Worker */
5*49cdfc7eSAndroid Build Coastguard Worker
6*49cdfc7eSAndroid Build Coastguard Worker #ifndef TST_NS_COMMON_H__
7*49cdfc7eSAndroid Build Coastguard Worker #define TST_NS_COMMON_H__
8*49cdfc7eSAndroid Build Coastguard Worker #include <sched.h>
9*49cdfc7eSAndroid Build Coastguard Worker #include "lapi/sched.h"
10*49cdfc7eSAndroid Build Coastguard Worker
11*49cdfc7eSAndroid Build Coastguard Worker #define PROC_PATH "/proc"
12*49cdfc7eSAndroid Build Coastguard Worker
13*49cdfc7eSAndroid Build Coastguard Worker struct param {
14*49cdfc7eSAndroid Build Coastguard Worker const char *name;
15*49cdfc7eSAndroid Build Coastguard Worker int flag;
16*49cdfc7eSAndroid Build Coastguard Worker };
17*49cdfc7eSAndroid Build Coastguard Worker
18*49cdfc7eSAndroid Build Coastguard Worker static struct param params[] = {
19*49cdfc7eSAndroid Build Coastguard Worker {"ipc", CLONE_NEWIPC},
20*49cdfc7eSAndroid Build Coastguard Worker {"mnt", CLONE_NEWNS},
21*49cdfc7eSAndroid Build Coastguard Worker {"net", CLONE_NEWNET},
22*49cdfc7eSAndroid Build Coastguard Worker {"pid", CLONE_NEWPID},
23*49cdfc7eSAndroid Build Coastguard Worker {"user", CLONE_NEWUSER},
24*49cdfc7eSAndroid Build Coastguard Worker {"uts", CLONE_NEWUTS},
25*49cdfc7eSAndroid Build Coastguard Worker {NULL, 0}
26*49cdfc7eSAndroid Build Coastguard Worker };
27*49cdfc7eSAndroid Build Coastguard Worker
28*49cdfc7eSAndroid Build Coastguard Worker #define NS_TOTAL (ARRAY_SIZE(params) - 1)
29*49cdfc7eSAndroid Build Coastguard Worker
get_param(const char * name)30*49cdfc7eSAndroid Build Coastguard Worker static struct param *get_param(const char *name)
31*49cdfc7eSAndroid Build Coastguard Worker {
32*49cdfc7eSAndroid Build Coastguard Worker int i;
33*49cdfc7eSAndroid Build Coastguard Worker
34*49cdfc7eSAndroid Build Coastguard Worker for (i = 0; params[i].name; i++) {
35*49cdfc7eSAndroid Build Coastguard Worker if (!strcasecmp(params[i].name, name))
36*49cdfc7eSAndroid Build Coastguard Worker return params + i;
37*49cdfc7eSAndroid Build Coastguard Worker }
38*49cdfc7eSAndroid Build Coastguard Worker
39*49cdfc7eSAndroid Build Coastguard Worker return NULL;
40*49cdfc7eSAndroid Build Coastguard Worker }
41*49cdfc7eSAndroid Build Coastguard Worker
42*49cdfc7eSAndroid Build Coastguard Worker #endif /* TST_NS_COMMON_H__ */
43