sysfs_notify()
来源:互联网 发布:淘宝导航条改颜色 编辑:程序博客网 时间:2024/04/30 10:35
void sysfs_notify(struct kobject *kobj, const char *dir, const char *attr);
void sysfs_notify_dirent(struct sysfs_dirent *sd);
sysfs_notify()和sysfs_notify_dirent()都是用来唤醒在读写属性文件(sysfs节点)时因调用select()或poll()而阻塞的用户进程。如:
用户空间代码如下:
int main()
{
int hw_fd;
int err;
struct pollfd pfd;
int value = 0;
hw_fd = open("/sys/devices/platform/hw_ps/install", O_RDONLY);//sysfs节点
if (hw_fd < 0)
return -EFAULT;
pfd.fd = hw_fd;
while (1) {
pfd.revents = 0;
err = poll(&pfd, 1, -1); //用户进程调用poll操作时会睡眠,等待内核空间代码调用sysfs_notify()唤醒
if (err) {
err = read(hw_fd, &value, 1);
if(err < 0)
return -ERR;
if(value != 0)
break;
}
}
close(hw_fd);
}
内核空间代码在某处调用sysfs_notify()用来唤醒用户进程:
sysfs_notify(&(pedv->dev.kobj), NULL, "install");
sysfs_notify()第一个参数是内核调用sysfs_create_group/sysfs_create_file创建sysfs节点时的struct kobject对象;
第三个参数是节点的名字;
第二个参数暂时未知,常用NULL。
- sysfs_notify()
- 【Linux API】Sysfs & sysfs_notify文件系统
- dm365的i2c总结最终版(菜鸟入门,欢迎拍砖)
- Uboot的使用(二)
- linux 查看进程占用带宽的工具
- J2EE项目异常处理
- mongodb sharding 机制
- sysfs_notify()
- 流形学习存在的缺点
- tomcat下jndi的三种配置方式
- Android顶部标签栏_之一
- Android杂谈--ubuntu 12.10 系统下adb连接小米2
- OOA/OOD/OOP的区别及深入理解
- oracle之sequence的cache解析,一篇不错的文章
- mongoDB single db convert to replicaSet
- 几种光纤接口(ST,SC,LC,FC)