int __get_order(unsigned long size)
2017-12-06 10:28
330 查看
2017-12-6 10:26:50
4.9.51
int __get_order(unsigned long size)
{
int order;
size--;
size >>= PAGE_SHIFT;
#if BITS_PER_LONG == 32
order = fls(size);
#else
order = fls64(size);
#endif
return order;
}
1.3.100 __get_order@drivers/block/floppy.c
*/
/* Pure 2^n version of get_order */
static inline int __get_order(unsigned long size)
{
int order;
size = (size-1) >> (PAGE_SHIFT-1);
order = -1;
do {
size >>= 1;
order++;
} while (size);
return order;
}
注:返回值order
块系数k以2为底的对数,[0, NR_MEM_LISTS]
块大小:PAGE_SIZE*k
计算order: order = log2k, k=2^n, 则order=n
k=1 n=0
k=2 n=1
k=4 n=2
k=8 n=3
k=16 n=4
k=32 n=5
4.9.51
int __get_order(unsigned long size)
{
int order;
size--;
size >>= PAGE_SHIFT;
#if BITS_PER_LONG == 32
order = fls(size);
#else
order = fls64(size);
#endif
return order;
}
1.3.100 __get_order@drivers/block/floppy.c
*/
/* Pure 2^n version of get_order */
static inline int __get_order(unsigned long size)
{
int order;
size = (size-1) >> (PAGE_SHIFT-1);
order = -1;
do {
size >>= 1;
order++;
} while (size);
return order;
}
注:返回值order
块系数k以2为底的对数,[0, NR_MEM_LISTS]
块大小:PAGE_SIZE*k
计算order: order = log2k, k=2^n, 则order=n
k=1 n=0
k=2 n=1
k=4 n=2
k=8 n=3
k=16 n=4
k=32 n=5
相关文章推荐
- unsigned, unsinged int,unsigned long,size_t还是std::size_t?
- unsinged int,unsigned long,size_t还是std::size_t
- unsinged int,unsigned long,size_t还是std::size_t?
- unsigned, unsinged int,unsigned long,std::size_t说明
- unsigned, unsinged int,unsigned long,size_t还是std::size_t?
- sizeof(size_t)的疑惑||size_t sizeof long unsigned int printf max value
- unsigned, unsinged int,unsigned long,size_t还是std::size_t?
- unsigned long int 和 unsigned long一样吗?
- VC中double、long、unsigned、int、char类型数据所占字节数
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- char,short ,int ,long,long long,unsigned long long数据范围
- bitVector@ java bit自我practice##Q&A:为何int 来初始化size of bitVector?long,甚至是BigInteger等策略
- Ubuntu gcc编译报错:format ‘%llu’ expects argument of type ‘long long unsigned int’, but argument 2 has type ‘__time_t’ [-Wformat=]
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- Implicit conversion loses integer precision: 'unsigned long' to 'CC_LONG' (aka 'unsigned int').
- 数据类型 -- char , unsigned char = BYTE, short, unsigned short = WORD, long, unsigned long = DWORD, int , unginged int = UINT
- char,short ,int ,long,long long,unsigned long long数据范围
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数
- 在C语言中,double、long、unsigned、int、char类型数据所占字节数