Linux内核开发示例
内核驱动
结构体
struct cdev *pcdev_reversion; pcdev_reversion = cdev_alloc(); //inode 结构的一个结构体,在内核内部表示设备 pcdev_reversion->owner = THIS_MODULE; pcdev_reversion->ops = &file_ops; cdev_add(pcdev_reversion, dev, number_reversion);cdev_del(pcdev_reversion);static struct file_operations file_ops = { .owner = THIS_MODULE, .open = open_reversion, .write = write_reversion, .read = read_reversion, .unlocked_ioctl = ioctl_reversion };if(major_reversion){ dev = MKDEV(major_reversion, minor_reversion); ret = register_chrdev_region(dev, number_reversion, REVERSION_NAME); } else { ret = alloc_chrdev_region(&dev, minor_reversion, number_reversion, REVERSION_NAME); major_reversion = MAJOR(dev); } if(ret < 0){ printk(KERN_WARNING "reversion:can't get major %d\n", major_reversion); return ret; }unregister_chrdev_region(MKDEV(major_reversion, minor_reversion), number_reversion);//unregion device
文件操作
读操作
写操作
控制操作
用户层代码
创建设备
读取设备
最后更新于