Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int infousb_major = 0;
- int infousb_minor = 0;
- int infousb_nr_devs = 1;
- static void infousb_setup_cdev(struct infousb_dev *dev, int index)
- {
- int err, devno = MKDEV(infousb_major, infousb_minor + index);
- cdev_init(&dev->cdev, &infousb_fops);
- dev->cdev.owner = THIS_MODULE;
- dev->cdev.ops = &infousb_fops;
- err = cdev_add (&dev->cdev, devno, 1);
- /* Fail gracefully if need be */
- if (err)
- info("Error %d adding info%d", err, index);
- }
- static int __init usb_infousb_init(void)
- {
- int result, i;
- dev_t dev = 0;
- /*
- * Get a range of minor numbers to work with, asking for a dynamic
- * major unless directed otherwise at load time.
- */
- if (infousb_major) {
- dev = MKDEV(infousb_major, infousb_minor);
- result = register_chrdev_region(dev, infousb_nr_devs, "infousb");
- } else {
- result = alloc_chrdev_region(&dev, infousb_minor, infousb_nr_devs,
- "scull");
- infousb_major = MAJOR(dev);
- }
- if (result < 0) {
- info("infousb: can't get major %d\n", infousb_major);
- return result;
- }
- for (i = 0; i < infousb_nr_devs; i++) {
- infousb_setup_cdev(&infousb_devices[i], i);
- }
- /* Fail gracefully if need be */
- //if (err)
- //printk(KERN_NOTICE "Error %d adding scull%d", err, index);
- info("registrou");
- /* register this driver with the USB subsystem */
- result = usb_register(&infousb_driver);
- if (result)
- err("usb_register failed. Error number %d", result);
- return result;
- }
Add Comment
Please, Sign In to add comment