cdev_init and struct file_operations
John de la Garza
john at jjdev.com
Wed Aug 27 10:35:52 EDT 2014
On Tue, Aug 26, 2014 at 09:18:57PM -0400, Valdis.Kletnieks at vt.edu wrote:
> On Tue, 26 Aug 2014 20:48:41 -0400, John de la Garza said:
> > Why does the code from ldd3 set dev->cdev.ops = &scull_fops again?
>
> Probably because when ldd3 was written several years ago, cdev_init()
> didn't set it, so it wasn't "again"....
>
> > Doesn't cdev_init already do that?
>
> It does *now*.
>
> Remember that ldd3 was written about 6 million lines of code ago....
It did then, too (unless I'm missing something)
linux$ git branch
* (detached from v2.6.12)
master
from v2.6.12
void cdev_init(struct cdev *cdev, struct file_operations *fops)
{
memset(cdev, 0, sizeof *cdev);
INIT_LIST_HEAD(&cdev->list);
cdev->kobj.ktype = &ktype_cdev_default;
kobject_init(&cdev->kobj);
cdev->ops = fops;
}
More information about the Kernelnewbies
mailing list