LinuxDev 板


LINE

※ 引述《cobrasgo (体重突破所有均线)》之铭言: : 标题: [问题] kernel space呼叫user space的binary : 时间: Fri Aug 26 21:00:42 2011 : : 各位大神好 : 小弟现在碰到一个问题无法解决 : 状况如下: : : 我在kernel space想要呼叫user space的binary file,并且传参数给它 : 现在麻烦的是这个参数是run time才会知道 : : 目前survey到一个类似的做法,但是无法传参数 : 1) DECLARE_WORK产生一个work struct : 2) PREPARE_WORK把我要执行的kernel function丢到一个work queue里 : 这个kernel function里呼叫call_usermodehelper来执行user space : 的binary file : 3) 呼叫queue_work() : : 请问一下 : 有办法从kernel space执行user space的binary,并传参数吗? : 谢谢 : : -- :



※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 123.195.12.202 : → roylee17:call_usermodehelper(char *path, char **argv, 08/26 21:16 : → roylee17: char **envp, enum umh_wait wait) 08/26 21:16 : → roylee17:可以传参数不是吗? 08/26 21:18 : 推 clanguage:do_execve()?? 08/27 00:15 : → cobrasgo:to 1F,应该是我写的不好,我是指prepare work时无法传 08/27 00:59 : → cobrasgo:呼叫call_usermodehelper()本身没问题,重点是kernel 08/27 01:00 : → cobrasgo:function的部份 08/27 01:00 typedef void (*work_func_t)(struct work_struct *work); 既然 work_func 接受 work_struct 为参数, 可以试试利用这点. 1. 定义你的 private work_struct: struct foo_work { struct work_struct work; void *data; }; 2. 在你的 create/schedule work 处, 传入你的 argement/data: foo_sched_work() { foo_work *w = kmaloc(sizeof(foo_work)); /* setup your data/argument */ w->data = __your_data__; /* setup the work_struct */ w->work.func = foo_work_func; schedule_work(&w->work); } 3. 在你的 work_func implementation 里: work_func_t foo_work_func(struct work_struct *work) { struct foo_work *w = container_of(work, struct work_struct, work); /* access your via w->data */ ... call_usermodehelper(...); } 我没有验证过, 有兴趣的话可能要麻烦你试试了 不行的话, 再来想办法 Regards, Roy --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.36.213 ※ 编辑: roylee17 来自: 59.104.36.213 (08/27 13:46)
1F:推 cobrasgo:感谢,明天来试试 08/27 17:15
2F:推 gene7299:是利用container_of 吗? 08/29 17:05
3F:→ roylee17:是的 08/30 20:37







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:e-shopping站内搜寻

TOP