免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5764 | 回复: 14
打印 上一主题 下一主题

[内核模块] 怎么在内核态获取用户态的数据 [复制链接]

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-04-27 19:42 |只看该作者 |倒序浏览
本帖最后由 xbjpkpk 于 2012-04-28 09:39 编辑

就是怎么在中断处理程序中获取 用户态的数据,想用copy_from_user这个函数,但是在用户态怎么传地址到这个中断处理函数中啊,求各位大神讲解下。看了下之前的帖子,觉得用ioctl应该可以实现。
其实问题是 想在那个中断处理程序中 发送个信号给 用户进程,只是用户进程的pid 在内核里面不知道怎么得到

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
2 [报告]
发表于 2012-04-28 10:50 |只看该作者
想了个笨办法,直接在系统启动的时候 把进程的进程号写入 文件,再然后再内核中读这个文件,这样在驱动中的中断处理程序就知道接受信号的进程,这样发送信号应该可以吧,自己先试下

论坛徽章:
0
3 [报告]
发表于 2012-04-28 11:49 |只看该作者
想在那个中断处理程序中 发送个信号给 用户进程
-------------------中断时随时有可能发生的。你说发给用户进程,是一个指定的进程吗?

论坛徽章:
0
4 [报告]
发表于 2012-04-28 11:53 |只看该作者
copy_from_user不能用在中断上下文的。

论坛徽章:
0
5 [报告]
发表于 2012-04-28 15:10 |只看该作者
回复 1# xbjpkpk


    知道进程名么,知道的话可以用for_each_process遍历进程链表,根据名字返回PID

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
6 [报告]
发表于 2012-05-03 11:35 |只看该作者
回复 3# GFree_Wind


    用户态 起的是守护进程,是个指定的进程

论坛徽章:
1
午马
日期:2013-09-10 11:03:08
7 [报告]
发表于 2012-05-03 11:37 |只看该作者
回复 5# frank529


    好的,进程名是确定的,试下先。

论坛徽章:
0
8 [报告]
发表于 2012-05-03 12:17 |只看该作者
回复 7# xbjpkpk

虽然通过进程名,可以找到该进程。
可是这样的遍历效率是个问题。

能否说一下你的需求,为什么要收到中断时,给进程发信号?

如果说你的进程是在等一个中断事件的话,那么可以利用wait_event_interruptible_timeout来实现。
当中断发生时,唤醒该进程。

   

论坛徽章:
0
9 [报告]
发表于 2012-05-03 15:51 |只看该作者
用netlink 套接字很方便的,它支持在中断中与用户态进程进行通信

论坛徽章:
0
10 [报告]
发表于 2012-05-03 17:34 |只看该作者
为什么要在中断中做这种事??
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP