xref: /linux/include/linux/utsname.h (revision 18b19abc3709b109676ffd1f48dcd332c2e477d4)
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_UTSNAME_H
3 #define _LINUX_UTSNAME_H
4 
5 
6 #include <linux/sched.h>
7 #include <linux/nsproxy.h>
8 #include <linux/ns_common.h>
9 #include <linux/err.h>
10 #include <linux/uts_namespace.h>
11 
12 enum uts_proc {
13 	UTS_PROC_ARCH,
14 	UTS_PROC_OSTYPE,
15 	UTS_PROC_OSRELEASE,
16 	UTS_PROC_VERSION,
17 	UTS_PROC_HOSTNAME,
18 	UTS_PROC_DOMAINNAME,
19 };
20 
21 #ifdef CONFIG_PROC_SYSCTL
22 extern void uts_proc_notify(enum uts_proc proc);
23 #else
uts_proc_notify(enum uts_proc proc)24 static inline void uts_proc_notify(enum uts_proc proc)
25 {
26 }
27 #endif
28 
utsname(void)29 static inline struct new_utsname *utsname(void)
30 {
31 	return &current->nsproxy->uts_ns->name;
32 }
33 
init_utsname(void)34 static inline struct new_utsname *init_utsname(void)
35 {
36 	return &init_uts_ns.name;
37 }
38 
39 extern struct rw_semaphore uts_sem;
40 
41 #endif /* _LINUX_UTSNAME_H */
42