__SetPageBuddy
static inline void set_page_order(struct page *page, unsigned int order)
{
set_page_private(page, order);
__SetPageBuddy(page);
}
__ClearPageBuddy
static inline void rmv_page_order(struct page *page)
{
__ClearPageBuddy(page);
set_page_private(page, 0);
}
这两个函数的主要作用是:
在页设置order情况下,也同时设置buddy标识。设置order为0的情况下,同时清除buddy标志。
页的order存放在private中。
PageBuddy检查是否空闲即mapcount是否为PAGE_BUDDY_MAPCOUNT_VALUE