/proc 経由でカーネルと通信するユーザーレベルのプログラムを取得しようとしています。
私はtldpの指示に従い、カスタム proc ファイルを作成し、それをinsmodで動的にロードし、ユーザーランドから proc ファイルを読み取り (cat) および書き込み (echo) することができました。
ここで私の質問は、システム コール インフラストラクチャなど、カーネルの別の部分から /proc 変数 (バイト バッファ) にアクセスするにはどうすればよいかということです。カスタム proc ファイルは動的にロードおよびリンクされるため、静的にコンパイルされたカーネル コードから参照するにはどうすればよいですか?
システム仕様: MacBook Pro 13" (2009) 上の VMWare Fusion で実行されている Ubuntu 10.10。
編集:関連コード(リクエストによる) -
procfile.c
//This function is called when the module is loaded
int init_module()
{
/* create the /proc file */
EXPORT_SYMBOL(procfs_buffer);
EXPORT_SYMBOL(procfs_buffer_size);
...
...
}
get_procvariable.c (カーネルの別の部分)
//The buffer used to store character for this module
extern char * procfs_buffer;
//The size of the buffer
extern unsigned long procfs_buffer_size;
int get_procvariable(void)
{
.. do something
return procfs_buffer; // LD Error: Undefined reference
}
詳細が必要な場合は、コメントでお知らせください。前もって感謝します。