*参照元 [#a2abd770] #backlinks *説明 [#da4339ed] -パス: [[linux-4.4.1/mm/page_alloc.c]] -FIXME: これは何? --説明 **引数 [#a6088bb8] -gfp_t gfp_mask --カーネルリニアアドレスで指せない領域(HIGHMEM)からはページを取れない。 --[[linux-4.4.1/gfp_t]] -unsigned int order -- **返り値 [#me8b92a5] -unsinged long --確保したページのカーネル内リニアアドレス **参考 [#q3c2baf4] *実装 [#u9758176] /* * Common helper functions. */ unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order) { struct page *page; - --[[linux-4.4.1/page]] /* * __get_free_pages() returns a 32-bit address, which cannot represent * a highmem page */ VM_BUG_ON((gfp_mask & __GFP_HIGHMEM) != 0); - --[[linux-4.4.1/VM_BUG_ON()]] --[[linux-4.4.1/__GFP_HIGHMEM]] page = alloc_pages(gfp_mask, order); if (!page) return 0; - --[[linux-4.4.1/alloc_pages()]] return (unsigned long) page_address(page); - --[[linux-4.4.1/page_address()]] } EXPORT_SYMBOL(__get_free_pages); - --[[linux-4.4.1/]] *コメント [#x181a725]