rmqueue()函数的疑惑
yrj 2004-10-10 12:42:03 这个函数用于分配某一确定的zone中的空闲的物理页面。
其中有一句语句MARK_USED(index, curr_order, area);
这个宏定义如下:
#define MARK_USED(index, order, area) \
__change_bit((index) >> (1+(order)), (area)->map)
请问free_area_t中的map成员到底是干什么用的,里面是什么内容,看样子是某一个area的free pages组的使用情况的映射。那就是说一个zone.free_area中最多只能有32个free pages组了?
主要是__change_bit((index) >> (1+(order)), (area)->map) 中
对(area)->map的内容的其中一位做反,这一位计算((index) >> (1+(order)很是搞不懂,哪位大侠解释一下。