[问题] ioctl case 有些不会被执行

楼主: nikeasyanzi (nikeasyanzi)   2015-04-03 01:39:43
小弟最近练习ioctl
定义了3个command print,set and get
因为基本上在driver的 kernel module ioctl 一定会需要用到switch
所以可能像
switch (cmd){
case "print":
...
break;
case "set":
...
break;
case "get":
...
break;
default:
...
break;
}
现在问题来了~ 我利用user space function 验证 只有print成功 set&get都不会过
在呼叫user space ioctl时 就挂了
output是
[ 2682.940000] mymem_ioctl: <
作者: mshockwave (夏克维夫)   2015-04-03 20:15:00
小弟见识不多 但是C可以switch string??????
作者: alongalone (沿着孤单的路)   2015-04-04 09:03:00
你有看ioctl的function宣告长什么样子吗..= =?
楼主: nikeasyanzi (nikeasyanzi)   2015-04-06 00:42:00
先谢谢楼上两位~ 已经解决了~ switch 只是示意不好意思 造成大家误解@@mymemdev.c driver code 后来发现错在这@@_IOC_NR(cmd)!=MYMEMDEV_IOC_MAXNR所以只有print会过

Links booklink

Contact Us: admin [ a t ] ucptt.com