当前位置:  技术问答>linux和unix

spidev.c文件的filp->private_data问题

    来源: 互联网  发布时间:2017-05-16

    本文导语:  static int spidev_open(struct inode *inode, struct file *filp) {                   。。。               if (status == 0) {                   spidev->users++; filp->private_data = spidev;              ...

static int spidev_open(struct inode *inode, struct file *filp)

                  。。。
              if (status == 0) {
                  spidev->users++;
filp->private_data = spidev;
                          }
                 。。。


static int spidev_release(struct inode *inode, struct file *filp)

          。。。
          spidev = filp->private_data;
filp->private_data = NULL;
                   spidev->users--;
                  。。。


想请教下,每次open是否都创建新的file 结构体变量,并且将spidev保存在各自file指针filp->private_data中?这样在close的时候将filp->private_data = NULL,就不会影响其他open的进程。这个问题好像有些简单,请帮帮我这个菜鸟,谢谢!

|
你说的open一个文件还是设备?貌似同一类型的设备只要这个节点号存在,该设备的file结构体就存在,不不要你去创建。但是private_data需要你自己来处理,一般情况下在release的时候也只会设防private_data的空间。

|
确实要创建file结构体变量,不过都是指针类型的,filp->private_data必须指向已申请的内存地址或者全局变量

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 那位看过标准的spi驱动,spidev.c中有些问题系想不明白。急急急
  • linux2.6.24.7 +s3c2440, 使用linux-2.6.24.7/driver/spi/spi_bitbang.c spi_s3c244xx.c,spidev.c,如何实现spi 的dma方式?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,