哈希表 在SELinux中,哈希表使用hashtab结构表示,其定义在security/selinux/ss/hashtab.h中,具体定义如下所示: struct hashtab_node { void *key; void *datum; struct hashtab_node *next; }; struct hashtab { struct hashtab_node **htable; /* hash table */ u32 size; /* number of slots in hash table */ u32 nel; /* number of elements in hash table */ u32 (*hash_value)(struct hashtab *h, const void *key); /* hash function */ int (*keycmp)(struct hashtab *h, const void *key1, const void *key2); /* key comparison function */
}; struct hashtab_info { u32 slots_used; u32 max_chain_len; }; 对于hashtab结构,代码中已经对各字段含义进行了解释,因此这里不再赘述。下面主要对hashtab_node结构进行说明,其各字段含义如表2-3所示: hashtab_info结构存放了哈希表的相关信息,对于该结构,其各字段含义如表2-4所示: 对于哈希表,SELinux实现的相关的操作如表2-5所示,这些函数均定义security/selinux/ss/hashtab.c中。 |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|