*参照元 [#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]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS