一般来说,较规范的open( )通常需要完成下列工作:
1. 检查设备相关错误,如设备尚未准备好等;
2. 如果是第一次打开,则初始化硬件设备;
3. 识别次设备号,如果有必要则更新读写操作的当前位置指针f_ops;
4. 分配和填写要放在file->private_data里的数据结构;//这个很重要,这个地方一般为设备指针,后面的具体操作函数都能从它里面取
5. 使用计数增1。
release( )的作用正好与open( )相反,通常要完成下列工作:
1. 使用计数减1;
2. 释放在file->private_data中分配的内存;
3. 如果使用计算为0,则关闭设备。
阅读(422) | 评论(1) | 转发(0) |