#author("2025-10-31T11:23:15+09:00","default:guest","guest") #author("2025-10-31T11:23:36+09:00","default:guest","guest") *参照元 [#l2fa4f66] #backlinks *説明 [#k62f69dd] -パス: [[linux-5.15/include/linux/mmzone.h]] -マイグレーションの種類(MIGRATE_XXX)に該当するfree_listの先頭ページを返す。 --ページがなければNULLを返す。 **引数 [#t2e5fb1c] -struct free_area *area -- --[[linux-5.15/free_area]] -int migratetype --マイグレーションの種類、MIGRATE_XXX を指定する **返り値 [#r0288124] -struct page * --マイグレーションの種類(MIGRATE_XXX)に該当するfree_listの先頭ページを返す。 --ページがなければNULLを返す。 --[[linux-5.15/page]] **参考 [#ga2690a9] *実装 [#mb393a04] static inline struct page *get_page_from_free_area(struct free_area *area, int migratetype) { return list_first_entry_or_null(&area->free_list[migratetype], struct page, lru); } -area->free_list自体はstruct page *のメンバーではない。free_listのnext以降はstruct pageのlruメンバー。 --[[linux-5.15/list_first_entry_or_null()]] 空きページがないとき free_list --| `<-(next)-- 空きページがあるとき free_list --(next)--> page->lru --(next)--> page->lru --| `--<---------------------(next)--<--------------------- *コメント [#v3dad8a3]