13 #include <linux/module.h>
14 #include <linux/errno.h>
15 #include <linux/time.h>
16 #include <linux/kernel.h>
17 #include <linux/string.h>
18 #include <linux/mman.h>
28 #include <asm/uaccess.h>
29 #include <asm/pgtable.h>
31 #include <asm/div64.h>
39 unsigned long ino = 0;
49 dev = inode->
i_sb->s_dev;
54 "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu %n",
57 flags & VM_READ ?
'r' :
'-',
58 flags & VM_WRITE ?
'w' :
'-',
59 flags & VM_EXEC ?
'x' :
'-',
60 flags & VM_MAYSHARE ? flags & VM_SHARED ?
'S' :
's' :
'p',
65 len = 25 +
sizeof(
void *) * 6 - len;
80 static int nommu_region_list_show(
struct seq_file *m,
void *_p)
87 static void *nommu_region_list_start(
struct seq_file *m, loff_t *_pos)
100 static void nommu_region_list_stop(
struct seq_file *m,
void *
v)
105 static void *nommu_region_list_next(
struct seq_file *m,
void *
v, loff_t *pos)
111 static const struct seq_operations proc_nommu_region_list_seqop = {
112 .start = nommu_region_list_start,
113 .next = nommu_region_list_next,
114 .stop = nommu_region_list_stop,
115 .show = nommu_region_list_show
118 static int proc_nommu_region_list_open(
struct inode *
inode,
struct file *file)
120 return seq_open(file, &proc_nommu_region_list_seqop);
123 static const struct file_operations proc_nommu_region_list_operations = {
124 .open = proc_nommu_region_list_open,
130 static int __init proc_nommu_init(
void)
132 proc_create(
"maps",
S_IRUGO,
NULL, &proc_nommu_region_list_operations);