5

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

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

4

1 に答える 1

4

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

ファイルを開く操作で、選択した構造体へのポインターを割り当てて割り当てるだけです。

これは正確にはスレッドまたはプロセス ローカルではありませんが、ほとんどの場合、1 つのファイル記述子をプロセスにマッピングすることは事実であり、それで十分な場合があります。

于 2011-09-13T14:51:51.140 に答える