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

相关文章:

  • 2021-11-22
  • 2022-12-23
  • 2022-12-23
  • 2021-11-03
  • 2021-05-31
  • 2021-11-01
  • 2021-09-26
  • 2022-12-23
猜你喜欢
  • 2022-01-08
  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
  • 2022-03-04
  • 2021-09-02
相关资源
相似解决方案