xref: /aosp_15_r20/external/ltp/testcases/lib/tst_ns_common.h (revision 49cdfc7efb34551c7342be41a7384b9c40d7cab7)
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