2013年9月24日 星期二

file open, private_data

linux device driver中實作 "open" function ,一開始都要做一件事情 : assign  file object的private data欄位。


 eg: 
              static int devone_open(struct inode *inode, struct file * file)
              {
struct devone_data *p;
                       ...
                p=kmalloc(sizeof(struct devone_data), GFP_KERNEL);
                    
                     ...
                file-->private_data=p;
              }


如此一來,未來若有process A 要access此device (read , write , ioctrl...  etc)
第一件事就是將當初open時assign的private data 抓出來 

     ssize_t devone_write(.........)
           {
struct devone_data *p = filp->private_data;
                 ....
           }  


so , 多個process對同一device的access就不會衝突了。

2013年9月23日 星期一

出遊前 整理行理的心情 真的不錯~

有時還更勝目的地 ^^