Lines Matching +full:m +full:- +full:num
1 // SPDX-License-Identifier: GPL-2.0
3 * proc_tty.c -- handles /proc/tty
26 static void show_tty_range(struct seq_file *m, struct tty_driver *p, in show_tty_range() argument
27 dev_t from, int num) in show_tty_range() argument
29 seq_printf(m, "%-20s ", p->driver_name ? p->driver_name : "unknown"); in show_tty_range()
30 seq_printf(m, "/dev/%-8s ", p->name); in show_tty_range()
31 if (p->num > 1) { in show_tty_range()
32 seq_printf(m, "%3d %d-%d ", MAJOR(from), MINOR(from), in show_tty_range()
33 MINOR(from) + num - 1); in show_tty_range()
35 seq_printf(m, "%3d %7d ", MAJOR(from), MINOR(from)); in show_tty_range()
37 switch (p->type) { in show_tty_range()
39 seq_puts(m, "system"); in show_tty_range()
40 if (p->subtype == SYSTEM_TYPE_TTY) in show_tty_range()
41 seq_puts(m, ":/dev/tty"); in show_tty_range()
42 else if (p->subtype == SYSTEM_TYPE_SYSCONS) in show_tty_range()
43 seq_puts(m, ":console"); in show_tty_range()
44 else if (p->subtype == SYSTEM_TYPE_CONSOLE) in show_tty_range()
45 seq_puts(m, ":vtmaster"); in show_tty_range()
48 seq_puts(m, "console"); in show_tty_range()
51 seq_puts(m, "serial"); in show_tty_range()
54 if (p->subtype == PTY_TYPE_MASTER) in show_tty_range()
55 seq_puts(m, "pty:master"); in show_tty_range()
56 else if (p->subtype == PTY_TYPE_SLAVE) in show_tty_range()
57 seq_puts(m, "pty:slave"); in show_tty_range()
59 seq_puts(m, "pty"); in show_tty_range()
62 seq_printf(m, "type:%d.%d", p->type, p->subtype); in show_tty_range()
64 seq_putc(m, '\n'); in show_tty_range()
67 static int show_tty_driver(struct seq_file *m, void *v) in show_tty_driver() argument
70 dev_t from = MKDEV(p->major, p->minor_start); in show_tty_driver()
71 dev_t to = from + p->num; in show_tty_driver()
73 if (&p->tty_drivers == tty_drivers.next) { in show_tty_driver()
74 /* pseudo-drivers first */ in show_tty_driver()
75 seq_printf(m, "%-20s /dev/%-8s ", "/dev/tty", "tty"); in show_tty_driver()
76 seq_printf(m, "%3d %7d ", TTYAUX_MAJOR, 0); in show_tty_driver()
77 seq_puts(m, "system:/dev/tty\n"); in show_tty_driver()
78 seq_printf(m, "%-20s /dev/%-8s ", "/dev/console", "console"); in show_tty_driver()
79 seq_printf(m, "%3d %7d ", TTYAUX_MAJOR, 1); in show_tty_driver()
80 seq_puts(m, "system:console\n"); in show_tty_driver()
82 seq_printf(m, "%-20s /dev/%-8s ", "/dev/ptmx", "ptmx"); in show_tty_driver()
83 seq_printf(m, "%3d %7d ", TTYAUX_MAJOR, 2); in show_tty_driver()
84 seq_puts(m, "system\n"); in show_tty_driver()
87 seq_printf(m, "%-20s /dev/%-8s ", "/dev/vc/0", "vc/0"); in show_tty_driver()
88 seq_printf(m, "%3d %7d ", TTY_MAJOR, 0); in show_tty_driver()
89 seq_puts(m, "system:vtmaster\n"); in show_tty_driver()
95 show_tty_range(m, p, from, next - from); in show_tty_driver()
99 show_tty_range(m, p, from, to - from); in show_tty_driver()
104 static void *t_start(struct seq_file *m, loff_t *pos) in t_start() argument
110 static void *t_next(struct seq_file *m, void *v, loff_t *pos) in t_next() argument
115 static void t_stop(struct seq_file *m, void *v) in t_stop() argument
135 if (!driver->driver_name || driver->proc_entry || in proc_tty_register_driver()
136 !driver->ops->proc_show) in proc_tty_register_driver()
139 ent = proc_create_single_data(driver->driver_name, 0, proc_tty_driver, in proc_tty_register_driver()
140 driver->ops->proc_show, driver); in proc_tty_register_driver()
141 driver->proc_entry = ent; in proc_tty_register_driver()
151 ent = driver->proc_entry; in proc_tty_unregister_driver()
155 remove_proc_entry(ent->name, proc_tty_driver); in proc_tty_unregister_driver()
157 driver->proc_entry = NULL; in proc_tty_unregister_driver()
171 * password lengths and inter-keystroke timings during password in proc_tty_init()