カーネル プログラミングは初めてで、2 つの質問があります。
- デバイスが (動的登録によって) 登録されていますが、アプリケーションでデバイス ファイルを開くことができません。考えられる理由は何ですか?
- デバイス ドライバーが 0 による除算を検出したときに返される適切なエラー コードは何ですか?
私のコードは、カーネルに単純な算術演算を実装しています。ioctl()
ユーザー空間とカーネルの間の通信には、ベースのインターフェイスを使用します。
if(out.b==0) /*checking for divide by zero*/
out.res=-EINVAL;
else
out.res=out.a/out.b;
copy_to_user((values*)ioctl_param,&out,sizeof(values));
break;