register mtdchar devices in sysfs
Andre Puschmann
andre.puschmann at stud.tu-ilmenau.de
Thu Apr 27 13:55:41 EDT 2006
hi folks,
i am trying to get mtdchar devices to work with sysfs + udev.
my goal is that every mtd-partition gets a device attribute called
partname which i can use in my udev-rules to give them explicit names
like /dev/filesystem or /dev/kernel (instead of /dev/mtd0 and /dev/mtd1
in case that they change their order on the flash device).
to do so i modified mdrchar.c a little bit to add a attribute "partname"
in every specific sysfs-folder.
well, this is working so far with a dummy entry "partname" but how can i
get the specific partition name stored in "struct mtd_info*" out of
"struct class_device" to set it correctly in read_partname()???
thank you in advance
regards
andré
my code looks like this:
<code>
static ssize_t read_partname( struct class_device *cd, char *buf)
{
return snprintf(buf, 265, "%s\n", "partname");
}
static CLASS_DEVICE_ATTR( partname, S_IRUGO, read_partname, NULL );
static void mtd_notify_add(struct mtd_info* mtd)
{
struct class_device *class_dev;
if (!mtd)
return;
class_dev = class_device_create(mtd_class, NULL,
MKDEV(MTD_CHAR_MAJOR, mtd->index*2),
NULL, "mtd%d", mtd->index);
if (!class_dev)
return;
class_device_create_file(class_dev,&class_device_attr_partname);
class_device_create(mtd_class, NULL,
MKDEV(MTD_CHAR_MAJOR, mtd->index*2+1),
NULL, "mtd%dro", mtd->index);
}
</code>
More information about the linux-mtd
mailing list