cregit-Linux how code gets into the kernel

Release 4.10 fs/proc/devices.c

Directory: fs/proc
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>


static int devinfo_show(struct seq_file *f, void *v) { int i = *(loff_t *) v; if (i < CHRDEV_MAJOR_HASH_SIZE) { if (i == 0) seq_puts(f, "Character devices:\n"); chrdev_show(f, i); } #ifdef CONFIG_BLOCK else { i -= CHRDEV_MAJOR_HASH_SIZE; if (i == 0) seq_puts(f, "\nBlock devices:\n"); blkdev_show(f, i); } #endif return 0; }

Contributors

PersonTokensPropCommitsCommitProp
alexey dobriyanalexey dobriyan88100.00%2100.00%
Total88100.00%2100.00%


static void *devinfo_start(struct seq_file *f, loff_t *pos) { if (*pos < (BLKDEV_MAJOR_HASH_SIZE + CHRDEV_MAJOR_HASH_SIZE)) return pos; return NULL; }

Contributors

PersonTokensPropCommitsCommitProp
alexey dobriyanalexey dobriyan33100.00%1100.00%
Total33100.00%1100.00%


static void *devinfo_next(struct seq_file *f, void *v, loff_t *pos) { (*pos)++; if (*pos >= (BLKDEV_MAJOR_HASH_SIZE + CHRDEV_MAJOR_HASH_SIZE)) return NULL; return pos; }

Contributors

PersonTokensPropCommitsCommitProp
alexey dobriyanalexey dobriyan43100.00%1100.00%
Total43100.00%1100.00%


static void devinfo_stop(struct seq_file *f, void *v) { /* Nothing to do */ }

Contributors

PersonTokensPropCommitsCommitProp
alexey dobriyanalexey dobriyan16100.00%1100.00%
Total16100.00%1100.00%

static const struct seq_operations devinfo_ops = { .start = devinfo_start, .next = devinfo_next, .stop = devinfo_stop, .show = devinfo_show };
static int devinfo_open(struct inode *inode, struct file *filp) { return seq_open(filp, &devinfo_ops); }

Contributors

PersonTokensPropCommitsCommitProp
alexey dobriyanalexey dobriyan25100.00%1100.00%
Total25100.00%1100.00%

static const struct file_operations proc_devinfo_operations = { .open = devinfo_open, .read = seq_read, .llseek = seq_lseek, .release = seq_release, };
static int __init proc_devices_init(void) { proc_create("devices", 0, NULL, &proc_devinfo_operations); return 0; }

Contributors

PersonTokensPropCommitsCommitProp
alexey dobriyanalexey dobriyan24100.00%1100.00%
Total24100.00%1100.00%

fs_initcall(proc_devices_init);

Overall Contributors

PersonTokensPropCommitsCommitProp
alexey dobriyanalexey dobriyan30199.67%266.67%
paul gortmakerpaul gortmaker10.33%133.33%
Total302100.00%3100.00%
Directory: fs/proc
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.