设为首页 加入收藏

TOP

驱动支持select函数(二)
2014-11-24 01:04:16 来源: 作者: 【 】 浏览:8
Tags:驱动 支持 select 函数


}



if (down_interruptible(&sem))

{

return - ERESTARTSYS;

}



flag = 0;

if (copy_to_user(buf, &global_var, sizeof(int)))

{

up(&sem);

return - EFAULT;

}



up(&sem);



return sizeof(int);

}



static ssize_t globalvar_write(struct file *filp, const char *buf, size_t len, loff_t *off)

{

if (down_interruptible(&sem))

{

return - ERESTARTSYS;

}

if (copy_from_user(&global_var, buf, sizeof(int)))

{

up(&sem);

return - EFAULT;

}

up(&sem);

flag = 1;



wake_up_interruptible(&outq);



return sizeof(int);

}



static unsigned int globalvar_poll(struct file *filp, poll_table *wait)

{

unsigned int mask = 0;



poll_wait(filp, &outq, wait);



if(flag != 0)

{

mask |= POLLIN | POLLRDNORM;

}



return mask;

}

module_init(globalvar_init);

module_exit(globalvar_exit);


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇使用OpenSSL命令进行加密解密及散.. 下一篇Linux下产生死锁问题分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: