[問題] 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