モジュールAからモジュールBにアクセスする
モジュールBで、Aが使用したい変数/関数を含む通常のCヘッダーのように、そしてもちろんAでヘッダーを定義します#include
。
Bのソースファイルの1つに、次のように記述します。
EXPORT_SYMBOL(your_symbol);
変数/関数ごとに。
モジュールAのMakefileで、BのModule.symversへのパスを追加して、KBUILD_EXTRA_SYMBOLS
依存関係の警告を取り除き、カーネルがで構成されている場合はモジュールをロードできるようにしてください。CONFIG_MODVERSIONS
ユーザーランドプロセスのシグナリング
正直なところ、これはよくわかりません。私は自分の仕事のためにLinux(RTAI)のリアルタイム拡張機能を使って個人的にコーディングしており、プレーンなLinuxには存在しないと思われる機能を持っています。これらの機能は、共有メモリ(カーネルとユーザーの間)、および共有セマフォ(ここでもカーネルとユーザーの間)などです。Linuxでそのようなものを見つけることができれば、それを使用できます。
それらが利用できない場合(私はそれらが利用できないと私は信じています)、ユーザースペースアプリケーションに信号を送る必要があるかどうかを示す単純な0/1を出力する/sysまたは/procファイルをいつでも簡単に書くことができます。次に、ユーザースペースアプリケーションはこのファイルをポーリングできます。