alloc_large_system_hash

void *__init alloc_large_system_hash(const char *tablename,
unsigned long bucketsize,
unsigned long numentries,
int scale,
int flags,
unsigned int *_hash_shift,
unsigned int *_hash_mask,
unsigned long low_limit,
unsigned long high_limit)
1、tablename就不用解释了,就是个名字
2、bucketsize这个是每个元素的尺寸
3、numentries这个是元素的个数,可以取0,由系统来确定,这时可能即使你给了值,系统也会把它变为最接近的2的幂
4、scale散列度,根据scale获得数组元素个数,取值有13、14、15、17之类的,numentries >>= (scale - PAGE_SHIFT)。
这个值越大,分配的数组元素越少。
5、flags,可取HASH_EARLY或0。
#define HASH_EARLY 0x00000001 /* Allocating during early boot? */
#define HASH_SMALL 0x00000002 /* sub-page allocation allowed, min shift passed via _hash_shift /
6、_hash_shift,用于返回元素个数的以2为底的对数,也就是表示元素个数这个数值所用的比特数
7、_hash_mask,用于返回*_hash_shift个比特所能表示的最大数-1
8、low_limit,high_limit,哈希表表元数上下限,不是分配内存的总尺寸,不要弄混了。如果给个0值,那么系统使用1/16内存所能容纳的元素数作为哈希表表元数。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值