gfp_zone函数
来源:互联网 发布:唐氏筛查 测算软件 编辑:程序博客网 时间:2024/06/06 03:01
函数很简单根据参数flags返回gfp_zone的类型。
static inline enum zone_type gfp_zone(gfp_t flags)
{
#ifdef CONFIG_ZONE_DMA
if (flags & __GFP_DMA)
return ZONE_DMA;
#endif
#ifdef CONFIG_ZONE_DMA32
if (flags & __GFP_DMA32)
return ZONE_DMA32;
#endif
if ((flags & (__GFP_HIGHMEM | __GFP_MOVABLE)) ==
(__GFP_HIGHMEM | __GFP_MOVABLE))
return ZONE_MOVABLE;
#ifdef CONFIG_HIGHMEM
if (flags & __GFP_HIGHMEM)
return ZONE_HIGHMEM;
#endif
return ZONE_NORMAL;
}
现在优化为:
static inline enum zone_type gfp_zone(gfp_t flags)
{
enum zone_type z;
int bit = (int) (flags & GFP_ZONEMASK);
z = (GFP_ZONE_TABLE >> (bit * ZONES_SHIFT)) &
((1 << ZONES_SHIFT) - 1);
return z;
}
虽然提高了速度但是大大降低了代码的可读性啊~
也真够能想的,可以把所有可能性集中到一个整数中去
- gfp_zone函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 函数
- 想知道体感游戏的类型有哪些吗?我来告诉你
- subprocess模块
- 指针初始化与指针赋值有什么区别
- EAS WebService部署
- CToolTipCtrl使用详细解说
- gfp_zone函数
- ios多线程之我见
- UBOOT-2010-03在S3C2440上的移植<一>------------项目搭建
- CSS识别浏览器
- Invoke and BeginInvoke
- oms
- 你需要知道的关于NoSQL数据库的10件事
- android Spinner实现一个二级联动的下拉列表,选定省份后,城市的下拉列表出现相应变化
- Activating components: intents 待续