私は現在、さまざまな構造を格納するために複数のハッシュテーブルを使用するカーネルモジュールを作成しています。ハッシュテーブルの名前、ハッシュキー、構造体をパラメータとして格納し、対応するストア操作を行う単一の汎用関数を実装するにはどうすればよいですか? ここに私のハッシュテーブルと構造体の定義があります。ここでハッシュテーブルの名前と構造体をカーネルモジュールのパラメータとして使用する汎用関数を作成するにはどうすればよいですか?
static DEFINE_HASHTABLE(count, 7);
struct mystruct {
int data ;
struct hlist_node my_hash_list ;
};
は私の店コード(私はtemp->データをインクリメントする代わりに、直接の私のラウンドアバウトを追加し、デルの方法:(それをやった場合はnullポインタエラーを取得しているようだ)
struct mystruct *temp;
struct mystruct *first;
temp = kmalloc(sizeof(struct mystruct),GFP_KERNEL);
first = kmalloc(sizeof(struct mystruct),GFP_KERNEL);
hash = command;
hash_for_each_possible(count, temp, my_hash_list,hash){
first->data=temp->data+1;
printk("Count: %d\n",first->data);
hash_add(count, &(first->my_hash_list), hash);
hash_del(&(temp->my_hash_list));
return;
}
first->data=1;
hash_add(count, &(first->my_hash_list), hash);
ですこれは、カウントハッシュテーブルと構造体のためのものです。構造体へのポインタと構造体へのポインタを持つカーネルモジュール関数を作成することはできますか?また、ハッシュテーブル名をパラメータとして渡す方法は?