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