]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/proc/proc_tty.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
[linux-2.6-omap-h63xx.git] / fs / proc / proc_tty.c
index b3a473b0a191a41d9b27fab13b9990fdc7c9463f..49816e00b51a25899f860215166b97acd8584044 100644 (file)
@@ -15,9 +15,6 @@
 #include <linux/seq_file.h>
 #include <linux/bitops.h>
 
-static int tty_ldiscs_read_proc(char *page, char **start, off_t off,
-                               int count, int *eof, void *data);
-
 /*
  * The /proc/tty directory inodes...
  */
@@ -69,7 +66,7 @@ static void show_tty_range(struct seq_file *m, struct tty_driver *p,
 
 static int show_tty_driver(struct seq_file *m, void *v)
 {
-       struct tty_driver *p = v;
+       struct tty_driver *p = list_entry(v, struct tty_driver, tty_drivers);
        dev_t from = MKDEV(p->major, p->minor_start);
        dev_t to = from + p->num;
 
@@ -106,22 +103,13 @@ static int show_tty_driver(struct seq_file *m, void *v)
 /* iterator */
 static void *t_start(struct seq_file *m, loff_t *pos)
 {
-       struct list_head *p;
-       loff_t l = *pos;
-
        mutex_lock(&tty_mutex);
-       list_for_each(p, &tty_drivers)
-               if (!l--)
-                       return list_entry(p, struct tty_driver, tty_drivers);
-       return NULL;
+       return seq_list_start(&tty_drivers, *pos);
 }
 
 static void *t_next(struct seq_file *m, void *v, loff_t *pos)
 {
-       struct list_head *p = ((struct tty_driver *)v)->tty_drivers.next;
-       (*pos)++;
-       return p==&tty_drivers ? NULL :
-                       list_entry(p, struct tty_driver, tty_drivers);
+       return seq_list_next(v, &tty_drivers, pos);
 }
 
 static void t_stop(struct seq_file *m, void *v)
@@ -129,7 +117,7 @@ static void t_stop(struct seq_file *m, void *v)
        mutex_unlock(&tty_mutex);
 }
 
-static struct seq_operations tty_drivers_op = {
+static const struct seq_operations tty_drivers_op = {
        .start  = t_start,
        .next   = t_next,
        .stop   = t_stop,