On St 04-01-06 16:26:19, Greg KH wrote: > On Thu, Jan 05, 2006 at 01:18:37AM +0100, Pavel Machek wrote: > > Hi! > > > > > > +static int __init snapshot_dev_init(void) > > > > +{ > > > > + int error; > > > > + > > > > + error = alloc_chrdev_region(&interface.devno, 0, 1, interface.name); > > > > + if (error) > > > > + return error; > > > > + cdev_init(&interface.cdev, &snapshot_fops); > > > > + interface.cdev.ops = &snapshot_fops; > > > > + error = cdev_add(&interface.cdev, interface.devno, 1); > > > > + if (error) > > > > + goto Unregister; > > > > + error = sysfs_create_file(&power_subsys.kset.kobj, &snapshot_attr.attr); > > > > > > Heh, that's a neat hack, register a sysfs file that contains the > > > major:minor (there is a function that will print that the correct way, > > > if you really want to do that), in sysfs. It's better to just register > > > a misc character device with the name "snapshot", and then udev will > > > create your userspace node with the proper major:minor all automatically > > > for you. > > > > > > Unless you want to turn these into syscalls :) > > > > Well, I think we simply want to get static major/minor allocated for > > this device. It really uses read/write, IIRC, so no, I do not think we > > want to make it a syscall. > > Ok, then I'd recommend using the misc device, dynamic for now, and > reserve one when you get a bit closer to merging into mainline. I'd say that "memory devices", character, major 1 is appropriate for this. 13 seems to be free ("swsusp can be unlucky for your data"? :-). Pavel -- Thanks, Sharp!