2011-09-13 16 views
5

Linuxカーネルモジュールでスレッドローカルデータを作成することはできますか?Linuxカーネルモジュールのスレッドローカルデータ

私のモジュールを呼び出すプロセス/スレッドごとにいくつかのデータを保存する必要があります。 スレッドローカルデータを使用する簡単な方法はありますか、または 現在のプロセスのPIDをキーとして使用するハッシュマップを作成する必要がありますか?

+0

私はあなたが何とかそれをタスク構造とリンクさせることになっていると確信しています... –

答えて

4

カーネルモジュールがキャラクタデバイスドライバであると仮定すると、ファイル構造体(ユーザー空間ファイル記述子に似ています)にprivate_dataフィールドがあります。

ファイルのオープン操作時に選択した構造体にポインタを割り当てて割り当てます。

これはスレッドまたはプロセスローカルではありませんが、ほとんどの場合、1つのファイルディスクリプタとプロセスのマッピングが真であり、十分な場合があります。

+0

ありがとう、私が探していたもののように聞こえる – ar31

関連する問題