-1

Linkedlist 操作を実行するために使用されるアプリケーション (ユーザー空間) を開発しています。

リンクリスト操作の機能を持つカーネルモジュール(A)を開発したいです。アプリケーション (ユーザー空間) は、処理のためにいくつかの入力値を取得し、その値は kernelmodule(A) の関数を介して処理する必要があります。

  1. ユーザー空間からカーネルモジュールに値を入力する方法。
  2. カーネル モジュール (A) からユーザー空間アプリケーションに結果を送信する方法は?
  3. アプリケーションからカーネル モジュール (A) 内の関数と変数を呼び出す方法。

私のアプリケーションはCプログラムにすることができますか?

4

1 に答える 1

1

値をカーネル空間に送信するためのキャラクター ドライバー インターフェイスを作成し、ioctl 関数を使用してユーザー空間のデータ ポインターをカーネル空間に送信できます。カーネル空間では、copy_from_user() を使用してユーザー データをカーネル空間にコピーします。

リンクされたリスト操作の場合、結果は成功または失敗のいずれかになり、カーネル ioctl 関数の戻り値として返されます。

関数を呼び出す場合、最初の段落で述べたように、呼び出される関数を識別するための情報を送信できます

于 2012-08-24T10:13:44.320 に答える