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. Pavel -- Thanks, Sharp!