- 求职 : 通讯/电信开
- 论坛徽章:
- 2
|
- static inline void expand(struct zone *zone, struct page *page,
- int low, int high, struct free_area *area,
- int migratetype)
- {
- unsigned long size = 1 << high;
- while (high > low) {
- area--;
- high--;
- size >>= 1;
- VM_BUG_ON(bad_range(zone, &page[size]));
- list_add(&page[size].lru, &area->free_list[migratetype]);
- area->nr_free++;
- set_page_order(&page[size], high);
- }
- }
复制代码 这个函数是内存分配的后半部分,如果分配的页框大于要分配的页框,多出来的页框分配给较小的页框链表中。
但是我不理解 list_add(&page[size].lru, &area->free_list[migratetype]);这一句中&page[size].lru是先将page[size]这个东东是什么?有类型为list_head的lru这一项? |
|