Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

proc: move /proc/devices code to fs/proc/devices.c

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>

+71 -60
+1
fs/proc/Makefile
··· 10 10 proc-y += inode.o root.o base.o generic.o array.o \ 11 11 proc_tty.o proc_misc.o 12 12 proc-y += cmdline.o 13 + proc-y += devices.o 13 14 proc-y += loadavg.o 14 15 proc-y += meminfo.o 15 16 proc-y += uptime.o
+70
fs/proc/devices.c
··· 1 + #include <linux/fs.h> 2 + #include <linux/init.h> 3 + #include <linux/proc_fs.h> 4 + #include <linux/seq_file.h> 5 + 6 + static int devinfo_show(struct seq_file *f, void *v) 7 + { 8 + int i = *(loff_t *) v; 9 + 10 + if (i < CHRDEV_MAJOR_HASH_SIZE) { 11 + if (i == 0) 12 + seq_printf(f, "Character devices:\n"); 13 + chrdev_show(f, i); 14 + } 15 + #ifdef CONFIG_BLOCK 16 + else { 17 + i -= CHRDEV_MAJOR_HASH_SIZE; 18 + if (i == 0) 19 + seq_printf(f, "\nBlock devices:\n"); 20 + blkdev_show(f, i); 21 + } 22 + #endif 23 + return 0; 24 + } 25 + 26 + static void *devinfo_start(struct seq_file *f, loff_t *pos) 27 + { 28 + if (*pos < (BLKDEV_MAJOR_HASH_SIZE + CHRDEV_MAJOR_HASH_SIZE)) 29 + return pos; 30 + return NULL; 31 + } 32 + 33 + static void *devinfo_next(struct seq_file *f, void *v, loff_t *pos) 34 + { 35 + (*pos)++; 36 + if (*pos >= (BLKDEV_MAJOR_HASH_SIZE + CHRDEV_MAJOR_HASH_SIZE)) 37 + return NULL; 38 + return pos; 39 + } 40 + 41 + static void devinfo_stop(struct seq_file *f, void *v) 42 + { 43 + /* Nothing to do */ 44 + } 45 + 46 + static const struct seq_operations devinfo_ops = { 47 + .start = devinfo_start, 48 + .next = devinfo_next, 49 + .stop = devinfo_stop, 50 + .show = devinfo_show 51 + }; 52 + 53 + static int devinfo_open(struct inode *inode, struct file *filp) 54 + { 55 + return seq_open(filp, &devinfo_ops); 56 + } 57 + 58 + static const struct file_operations proc_devinfo_operations = { 59 + .open = devinfo_open, 60 + .read = seq_read, 61 + .llseek = seq_lseek, 62 + .release = seq_release, 63 + }; 64 + 65 + static int __init proc_devices_init(void) 66 + { 67 + proc_create("devices", 0, NULL, &proc_devinfo_operations); 68 + return 0; 69 + } 70 + module_init(proc_devices_init);
-60
fs/proc/proc_misc.c
··· 107 107 .release = seq_release, 108 108 }; 109 109 110 - static int devinfo_show(struct seq_file *f, void *v) 111 - { 112 - int i = *(loff_t *) v; 113 - 114 - if (i < CHRDEV_MAJOR_HASH_SIZE) { 115 - if (i == 0) 116 - seq_printf(f, "Character devices:\n"); 117 - chrdev_show(f, i); 118 - } 119 - #ifdef CONFIG_BLOCK 120 - else { 121 - i -= CHRDEV_MAJOR_HASH_SIZE; 122 - if (i == 0) 123 - seq_printf(f, "\nBlock devices:\n"); 124 - blkdev_show(f, i); 125 - } 126 - #endif 127 - return 0; 128 - } 129 - 130 - static void *devinfo_start(struct seq_file *f, loff_t *pos) 131 - { 132 - if (*pos < (BLKDEV_MAJOR_HASH_SIZE + CHRDEV_MAJOR_HASH_SIZE)) 133 - return pos; 134 - return NULL; 135 - } 136 - 137 - static void *devinfo_next(struct seq_file *f, void *v, loff_t *pos) 138 - { 139 - (*pos)++; 140 - if (*pos >= (BLKDEV_MAJOR_HASH_SIZE + CHRDEV_MAJOR_HASH_SIZE)) 141 - return NULL; 142 - return pos; 143 - } 144 - 145 - static void devinfo_stop(struct seq_file *f, void *v) 146 - { 147 - /* Nothing to do */ 148 - } 149 - 150 - static const struct seq_operations devinfo_ops = { 151 - .start = devinfo_start, 152 - .next = devinfo_next, 153 - .stop = devinfo_stop, 154 - .show = devinfo_show 155 - }; 156 - 157 - static int devinfo_open(struct inode *inode, struct file *filp) 158 - { 159 - return seq_open(filp, &devinfo_ops); 160 - } 161 - 162 - static const struct file_operations proc_devinfo_operations = { 163 - .open = devinfo_open, 164 - .read = seq_read, 165 - .llseek = seq_lseek, 166 - .release = seq_release, 167 - }; 168 - 169 110 static int vmstat_open(struct inode *inode, struct file *file) 170 111 { 171 112 return seq_open(file, &vmstat_op); ··· 532 591 proc_symlink("mounts", NULL, "self/mounts"); 533 592 534 593 /* And now for trickier ones */ 535 - proc_create("devices", 0, NULL, &proc_devinfo_operations); 536 594 proc_create("cpuinfo", 0, NULL, &proc_cpuinfo_operations); 537 595 #ifdef CONFIG_BLOCK 538 596 proc_create("partitions", 0, NULL, &proc_partitions_operations);