*参照元 [#vc260bbd] #backlinks *説明 [#o3359bc5] -パス: 複数あり --版: [[linux-2.6.33/include/linux/mm.h]] --版: [[linux-2.6.33/include/linux/mm.h]] --版: [[linux-2.6.33/mm/highmem.c]] -FIXME: これは何? --説明 -関連する関数 --[[linux-2.6.33/page_address()]] --[[linux-2.6.33/set_page_address()]] --[[linux-2.6.33/page_address_init()]] **引数 [#fed0e0d7] -なし **返り値 [#aa765423] -なし **参考 [#bc109549] *実装 [#t295bc7c] **版 [#b944395a] #if defined(WANT_PAGE_VIRTUAL) - --[[linux-2.6.33/WANT_PAGE_VIRTUAL]] #define page_address(page) ((page)->virtual) #define set_page_address(page, address) \ do { \ (page)->virtual = (address); \ } while(0) (略) #define page_address_init() do { } while(0) -何もしない #endif **版 [#gdcf6bfc] - include/linux/mm.h の宣言部分 #if defined(HASHED_PAGE_VIRTUAL) - (略) void page_address_init(void); #endif --[[linux-2.6.33/HASHED_PAGE_VIRTUAL]] void *page_address(struct page *page); void set_page_address(struct page *page, void *virtual); void page_address_init(void); #endif void __init page_address_init(void) { - --[[linux-2.6.33/__init]] int i; INIT_LIST_HEAD(&page_address_pool); - --[[linux-2.6.33/INIT_LIST_HEAD()]] - --[[linux-2.6.33/page_address_pool(global)]] for (i = 0; i < ARRAY_SIZE(page_address_maps); i++) list_add(&page_address_maps[i].list, &page_address_pool); - --[[linux-2.6.33/ARRAY_SIZE()]] - --[[linux-2.6.33/page_address_maps(global)]] - --[[linux-2.6.33/list_add()]] for (i = 0; i < ARRAY_SIZE(page_address_htable); i++) { INIT_LIST_HEAD(&page_address_htable[i].lh); spin_lock_init(&page_address_htable[i].lock); } - --[[linux-2.6.33/page_address_htable(global)]] - --[[linux-2.6.33/spin_lock_init()]] spin_lock_init(&pool_lock); - --[[linux-2.6.33/pool_lock(global)]] } **版 [#pa4c1567] #if !defined(HASHED_PAGE_VIRTUAL) && !defined(WANT_PAGE_VIRTUAL) - #define page_address(page) lowmem_page_address(page) - --[[linux-2.6.33/lowmem_page_address()]] (略) #define page_address_init() do { } while(0) -何もしない #define set_page_address(page, address) do { } while(0) #define page_address_init() do { } while(0) #endif *コメント [#v5829061]