• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
version_proc_show(struct seq_file * m,void * v)8 static int version_proc_show(struct seq_file *m, void *v)
9 {
10 	seq_printf(m, linux_proc_banner,
11 		utsname()->sysname,
12 		utsname()->release,
13 		utsname()->version);
14 	return 0;
15 }
16 
version_proc_open(struct inode * inode,struct file * file)17 static int version_proc_open(struct inode *inode, struct file *file)
18 {
19 	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 
proc_version_init(void)29 static int __init proc_version_init(void)
30 {
31 	proc_create("version", 0, NULL, &version_proc_fops);
32 	return 0;
33 }
34 fs_initcall(proc_version_init);
35