Quantcast
Channel: Active questions tagged linux-kernel - Stack Overflow
Viewing all articles
Browse latest Browse all 12365

How to use the kernel hash table?

$
0
0

I'm trying to understand and use the kernel hash tables and I've already read this and this link, but I didn't understand none of them. My first question is: Why our struct has to have the struct h_list inside it? If we're gonna access our struct through the struct h_list our struct shouldn't be within struct h_list and not the opposite? After reading the tutorial I've tried to write the following code:

DECLARE_HASHTABLE(nodes_hash, 3)hash_init(nodes_hash);struct h_node{    int data;    char name[MAX_NAME_SIZE]; /*The key is the name of lua state*/    struct hlist_node node;};struct h_node a = {    .data = 3,    .name = "foo",    .node = 0   };struct h_node b = {    .data = 7,    .name = "bar",    .node = 0   };    hash_add(nodes_hash,&a.node, "foo");hash_add(nodes_hash,&b.node, "bar");

But this does not even compile. What I'm doing wrong? I need that the key be the same name present in the struct h_node. So I would like that my hash table be like this:

enter image description here

PS: In my hash table it will never occur a collision (I'll handle it to never occur) so the key can be the name in the struct h_node


Viewing all articles
Browse latest Browse all 12365

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>