- 论坛徽章:
- 0
|
在阅读misc混杂设备驱动的时候遇到一个问题,原以为
在驱动的open函数内会直接对filp->private_data赋值,如下:
filp->private_data = priv;
但令我困惑的是这样对filp->private_data赋值:
struct my_dev *priv = container_of(filp->private_data,
struct my_dev, miscdev);
filp->private_data = priv;
注:miscdev是结构体struct my_dev的一个成员,
那么按照struct my_dev *priv = container_of(filp->private_data,
struct my_dev, miscdev);
的理解,filp->private_data应该存储了结构体struct my_dev中miscdev的地址,
但miscdev的地址是什么时候赋值给filp->private_data的呢?
/* Register the miscdevice */
ret = misc_register(&priv->miscdev); |
|