这个是Linux下连接VFS文件系统框架和不同文件/文件系统底层实现之间的一个核心数据结构。
a. private用于保存每个设备的私有数据(设备结构体)( private_data 其实是用来保存自定义设备结构体的地址的。自定义结构体的地址被保存在private_data后,可以在read ,write 等驱动函数中被传递和调用自定义设备结构体中的成员)。
b. struct file是字符设备驱动相关重要结构。struct file代表一个打开的文件描述符,它不是专门给驱动程序使用的,系统中每一个打开的文件在内核中都有一个关联的 struct file。它由内核在 open时创建,并传递给在文件上操作的任何函数,直到最后关闭。当文件的所有实例都关闭之后,内核释放这个数据结构。
c. 在 struct filed有个成员void *private_data;文档上说明该成员是系统调用时保存状态信息非常有用的资源。private_data 这个成员在open函数被调用的时候 linux 系统就已经将其幅值为NULL,之后可供用户使用,或者比较悲剧的被用户忽略。
摘自:http://t.csdn.cn/77LfB