From: Greg KH <greg@kroah.com>
To: linux-hotplug@vger.kernel.org
Subject: [PATCH] add sysfs mem device support [2/4]
Date: Tue, 23 Dec 2003 00:26:09 +0000 [thread overview]
Message-ID: <marc-linux-hotplug-107213954018345@msgid-missing> (raw)
This adds /sys/class/mem which enables all mem char devices to show up
properly in udev.
Has been posted to linux-kernel every so often since last July, and
acked by a number of other kernel developers.
diff -Nru a/drivers/char/mem.c b/drivers/char/mem.c
--- a/drivers/char/mem.c Mon Dec 22 16:02:08 2003
+++ b/drivers/char/mem.c Mon Dec 22 16:02:08 2003
@@ -24,6 +24,7 @@
#include <linux/smp_lock.h>
#include <linux/devfs_fs_kernel.h>
#include <linux/ptrace.h>
+#include <linux/device.h>
#include <asm/uaccess.h>
#include <asm/io.h>
@@ -657,7 +658,7 @@
.open = memory_open, /* just a selector for the real open */
};
-static const struct {
+static const struct mem_dev {
unsigned int minor;
char *name;
umode_t mode;
@@ -676,6 +677,23 @@
{11,"kmsg", S_IRUGO | S_IWUSR, &kmsg_fops},
};
+static void release_mem_dev(struct class_device *class_dev)
+{
+ kfree(class_dev);
+}
+
+static struct class mem_class = {
+ .name = "mem",
+ .release = &release_mem_dev,
+};
+
+static ssize_t show_dev(struct class_device *class_dev, char *buf)
+{
+ struct mem_dev *mem_dev = class_get_devdata(class_dev);
+ return print_dev_t(buf, MKDEV(MEM_MAJOR, mem_dev->minor));
+}
+static CLASS_DEVICE_ATTR(dev, S_IRUGO, show_dev, NULL);
+
static int __init chr_dev_init(void)
{
int i;
@@ -683,7 +701,20 @@
if (register_chrdev(MEM_MAJOR,"mem",&memory_fops))
printk("unable to get major %d for memory devs\n", MEM_MAJOR);
+ class_register(&mem_class);
for (i = 0; i < ARRAY_SIZE(devlist); i++) {
+ struct class_device *class_dev;
+
+ class_dev = kmalloc(sizeof(*class_dev), GFP_KERNEL);
+ if (class_dev) {
+ memset(class_dev, 0x00, sizeof(*class_dev));
+ class_dev->class = &mem_class;
+ strncpy(class_dev->class_id, devlist[i].name, BUS_ID_SIZE);
+ class_set_devdata(class_dev, (void *)&devlist[i]);
+ if (!class_device_register(class_dev));
+ class_device_create_file(class_dev, &class_device_attr_dev);
+ }
+
devfs_mk_cdev(MKDEV(MEM_MAJOR, devlist[i].minor),
S_IFCHR | devlist[i].mode, devlist[i].name);
}
-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills. Sign up for IBM's
Free Linux Tutorials. Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id\x1278&alloc_id371&op=click
_______________________________________________
Linux-hotplug-devel mailing list http://linux-hotplug.sourceforge.net
Linux-hotplug-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-hotplug-devel
next reply other threads:[~2003-12-23 0:26 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-12-23 0:26 Greg KH [this message]
2003-12-23 13:15 ` [PATCH] add sysfs mem device support [2/4] Christoph Hellwig
2003-12-23 15:31 ` Rob Love
2003-12-23 16:07 ` Rob Love
2003-12-23 16:39 ` Christoph Hellwig
2003-12-23 17:56 ` Rob Love
2003-12-23 18:01 ` Greg KH
2003-12-23 19:16 ` Christoph Hellwig
2003-12-23 19:19 ` Rob Love
2003-12-23 19:22 ` Christoph Hellwig
2003-12-23 19:24 ` viro
2003-12-23 19:25 ` Rob Love
2003-12-23 19:28 ` Rob Love
2003-12-23 19:42 ` Jeff Garzik
2003-12-23 19:45 ` Rob Love
2003-12-23 20:00 ` Stephan Maciej
2003-12-23 20:33 ` viro
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=marc-linux-hotplug-107213954018345@msgid-missing \
--to=greg@kroah.com \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).