4

私は既存のFreeBSDデバイスドライバーにいくつかのコードを追加していてchar*、ユーザースペースからドライバーにを渡そうとしています。次のようなマクロを使用してカスタムioctl()コマンドを実装しました。_IOW#define TIBLOOMFILTER _IOW(0,253,char*)

私の電話は次のようになります。

int file_desc = open("/dev/ti0", O_RDWR);
ioctl(file_desc, TIBLOOMFILTER, (*filter).getBitArray());
close(file_desc);

電話をかけると、エラーメッセージとしてioctl():が表示されます。Inappropriate ioctl for device何が間違っているのかについての推測はありますか?デバイスドライバーで同じマクロを定義し、それをcaseステートメントに追加しました。

4

1 に答える 1

2

ioctl ハンドラを登録しましたか

.d_ioctl  = ioctl_handler

?devsw (文字/ブロック デバイス スイッチ テーブル)?

于 2010-03-22T02:02:46.387 に答える