- 論壇徽章:
- 0
|
在LDD3字符設(shè)備驅(qū)動(dòng)程序章節(jié)中,
給出的注冊(cè)字符設(shè)備的代碼是這樣:
static void scull_setup_cdev(struct scull_dev *dev,int index)
{
int err,devno = MKDEV(scull_major,scull_minor+index);
cdev_init(&dev>cdev,&scull_fops); /* A */
dev->cdev.owner = THISMODULE;
dev->cdev.ops = &scull_fops; /* B */
err = cdev_add(&dev->cdev,devno,1);
}
其中cdev_init函數(shù)原型:
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;
}
在這個(gè)函數(shù)中,已經(jīng)有給cdev->ops賦值了。
為什么還要在行B中再次給它賦值呢? |
|