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. thanks, greg k-h