[PATCH] add sysfs vc class [5/5]

From: Greg KH
Date: Tue Dec 23 2003 - 16:36:42 EST



Add sysfs vc class support

diff -Nru a/drivers/char/vc_screen.c b/drivers/char/vc_screen.c
--- a/drivers/char/vc_screen.c Tue Dec 23 12:53:14 2003
+++ b/drivers/char/vc_screen.c Tue Dec 23 12:53:14 2003
@@ -36,6 +36,7 @@
#include <linux/kbd_kern.h>
#include <linux/console.h>
#include <linux/smp_lock.h>
+#include <linux/device.h>
#include <asm/uaccess.h>
#include <asm/byteorder.h>
#include <asm/unaligned.h>
@@ -469,6 +470,10 @@
.open = vcs_open,
};

+static struct class vc_class = {
+ .name = "vc",
+};
+
void vcs_make_devfs(struct tty_struct *tty)
{
devfs_mk_cdev(MKDEV(VCS_MAJOR, tty->index + 1),
@@ -477,19 +482,26 @@
devfs_mk_cdev(MKDEV(VCS_MAJOR, tty->index + 129),
S_IFCHR|S_IRUSR|S_IWUSR,
"vcc/a%u", tty->index + 1);
+ simple_add_class_device(&vc_class, MKDEV(VCS_MAJOR, tty->index + 1), NULL, "vcs%u", tty->index + 1);
+ simple_add_class_device(&vc_class, MKDEV(VCS_MAJOR, tty->index + 129), NULL, "vcsa%u", tty->index + 1);
}
void vcs_remove_devfs(struct tty_struct *tty)
{
devfs_remove("vcc/%u", tty->index + 1);
devfs_remove("vcc/a%u", tty->index + 1);
+ simple_remove_class_device(MKDEV(VCS_MAJOR, tty->index + 1));
+ simple_remove_class_device(MKDEV(VCS_MAJOR, tty->index + 129));
}

int __init vcs_init(void)
{
if (register_chrdev(VCS_MAJOR, "vcs", &vcs_fops))
panic("unable to get major %d for vcs device", VCS_MAJOR);
+ class_register(&vc_class);

devfs_mk_cdev(MKDEV(VCS_MAJOR, 0), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/0");
devfs_mk_cdev(MKDEV(VCS_MAJOR, 128), S_IFCHR|S_IRUSR|S_IWUSR, "vcc/a0");
+ simple_add_class_device(&vc_class, MKDEV(VCS_MAJOR, 0), NULL, "vcs");
+ simple_add_class_device(&vc_class, MKDEV(VCS_MAJOR, 128), NULL, "vcsa");
return 0;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/