[PATCH] Partial devfs support for raw IO devices

Chris Rankin (rankinc@pacbell.net)
Sat, 16 Jun 2001 21:21:51 -0700 (PDT)


Hi,
I hacked together this quick patch to make the "master" raw IO device
appear in devfs. It seems odd that I need *both* devfs_register...()
calls but the first one only seems to make the entry appear in
/proc/devices.

The logical corollary to this patch is to make raw IO devices
magically appear in devfs as they are bound to block devices. However,
this presents namespacing issues. Would it be reasonable to assume
that they should appear in a subdirectory called /dev/rawIO, e.g.

/dev/rawIO/1
/dev/rawIO/2 ... etc?

devfsd could then provide compatibility links.

Anyway, first things first :-)
Cheers,
Chris

--- linux-2.4.5/drivers/char/raw.c.orig Sat May 26 11:58:45 2001
+++ linux-2.4.5/drivers/char/raw.c Sat Jun 16 20:54:10 2001
@@ -15,6 +15,7 @@
#include <linux/raw.h>
#include <linux/capability.h>
#include <linux/smp_lock.h>
+#include <linux/devfs_fs_kernel.h>
#include <asm/uaccess.h>

#define dprintk(x...)
@@ -28,6 +29,7 @@
} raw_device_data_t;

static raw_device_data_t raw_devices[256];
+static const char RAW_DEVICE_NAME[] = "raw";

static ssize_t rw_raw_dev(int rw, struct file *, char *, size_t, loff_t *);

@@ -53,7 +55,11 @@
static int __init raw_init(void)
{
int i;
- register_chrdev(RAW_MAJOR, "raw", &raw_fops);
+ devfs_register_chrdev(RAW_MAJOR, RAW_DEVICE_NAME, &raw_fops);
+ devfs_register(NULL, RAW_DEVICE_NAME, DEVFS_FL_DEFAULT,
+ RAW_MAJOR, 0,
+ S_IFCHR | S_IRUSR | S_IWUSR,
+ &raw_fops, NULL);

for (i = 0; i < 256; i++)
init_MUTEX(&raw_devices[i].mutex);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/