xref: /linux/fs/proc/version.c (revision e21f9e2e862e9eb3dd64eaddb6256b3e5098660f)
1 // SPDX-License-Identifier: GPL-2.0
2 #include <linux/fs.h>
3 #include <linux/init.h>
4 #include <linux/kernel.h>
5 #include <linux/proc_fs.h>
6 #include <linux/seq_file.h>
7 #include <linux/utsname.h>
8 
9 static int version_proc_show(struct seq_file *m, void *v)
10 {
11 	seq_printf(m, linux_proc_banner,
12 		utsname()->sysname,
13 		utsname()->release,
14 		utsname()->version);
15 	return 0;
16 }
17 
18 static int version_proc_open(struct inode *inode, struct file *file)
19 {
20 	return single_open(file, version_proc_show, NULL);
21 }
22 
23 static const struct file_operations version_proc_fops = {
24 	.open		= version_proc_open,
25 	.read		= seq_read,
26 	.llseek		= seq_lseek,
27 	.release	= single_release,
28 };
29 
30 static int __init proc_version_init(void)
31 {
32 	proc_create("version", 0, NULL, &version_proc_fops);
33 	return 0;
34 }
35 fs_initcall(proc_version_init);
36