资讯详情

android 电容屏(三):驱动调试之驱动程序分析篇

chen_chuang2012-10-11 16:33

大师,有书写cdev初始化和注册是这样写的

static void VirtualDisk_setup_cdev(struct VirtualDisk *dev, int minor)

{

int err;

devno = MDDEV(VirtualDisk_major, minor);

cdev_init(&dev->cdev, &VirtualDisk_fops);

dev->cdev.owner = THIS_MOUDULE;

dev->cdev.ops = &VirtualDisk_fops;

err = cdev_add(&dev->cdev, debno, 1);

if (err)

printk(KERN_NOTICE "Error in cdev_add()\n");

}

而cdev_init里

void cdev_init(struct cdev *cdev, const struct file_operations *fops)

{

memset(cdev, 0, sizeof *cdev);

INIT_LIST_HEAD(&cdev->list);

kobject_init(&cdev->kobj, &ktype_cdev_default);

cdev->ops = fops;

}

已经有cdev->ops = fops了

上面的代码cdev_init之后又有dev->cdev.ops ,这两个函数不一样吗?自我感觉有点多次,

标签: 6410电容屏驱动

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台