12 #include <linux/export.h>
14 #include <linux/utsname.h>
15 #include <linux/sysctl.h>
16 #include <linux/wait.h>
20 char *which = table->
data;
23 uts_ns =
current->nsproxy->uts_ns;
24 which = (which - (
char *)&
init_uts_ns) + (
char *)uts_ns;
33 static void put_uts(
ctl_table *table,
int write,
void *which)
41 #ifdef CONFIG_PROC_SYSCTL
47 void __user *
buffer,
size_t *lenp, loff_t *ppos)
51 memcpy(&uts_table, table,
sizeof(uts_table));
52 uts_table.data = get_uts(table, write);
54 put_uts(table, write, uts_table.
data);
62 #define proc_do_uts_string NULL
68 static struct ctl_table uts_kern_table[] = {
71 .data = init_uts_ns.name.sysname,
72 .maxlen =
sizeof(init_uts_ns.name.sysname),
77 .procname =
"osrelease",
78 .data = init_uts_ns.name.release,
79 .maxlen =
sizeof(init_uts_ns.name.release),
84 .procname =
"version",
85 .data = init_uts_ns.name.version,
86 .maxlen =
sizeof(init_uts_ns.name.version),
91 .procname =
"hostname",
92 .data = init_uts_ns.name.nodename,
93 .maxlen =
sizeof(init_uts_ns.name.nodename),
96 .
poll = &hostname_poll,
99 .procname =
"domainname",
100 .data = init_uts_ns.name.domainname,
101 .maxlen =
sizeof(init_uts_ns.name.domainname),
104 .
poll = &domainname_poll,
109 static struct ctl_table uts_root_table[] = {
111 .procname =
"kernel",
113 .child = uts_kern_table,
118 #ifdef CONFIG_PROC_SYSCTL
123 void uts_proc_notify(
enum uts_proc proc)
125 struct ctl_table *table = &uts_kern_table[proc];
131 static int __init utsname_sysctl_init(
void)