首页 存档 技术 查看内容

Linux多安全策略和动态安全策略框架模块代码分析报告(6)

2018-3-30 13:00 |来自: 互联网 386 0

摘要: 哈希表 在SELinux中,哈希表使用hashtab结构表示,其定义在security/selinux/ss/hashtab.h中,具体定义如下所示: struct hashtab_node { void *key; void *datum; struct hashtab_node *next; }; struct has ...

哈希表


在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中。


声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部