linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / include / asm-m32r / mmzone.h
index 9f3b5ac..adc7970 100644 (file)
@@ -21,6 +21,20 @@ extern struct pglist_data *node_data[];
        __pgdat->node_start_pfn + __pgdat->node_spanned_pages - 1;      \
 })
 
+#define pfn_to_page(pfn)                                               \
+({                                                                     \
+       unsigned long __pfn = pfn;                                      \
+       int __node  = pfn_to_nid(__pfn);                                \
+       &NODE_DATA(__node)->node_mem_map[node_localnr(__pfn,__node)];   \
+})
+
+#define page_to_pfn(pg)                                                        \
+({                                                                     \
+       struct page *__page = pg;                                       \
+       struct zone *__zone = page_zone(__page);                        \
+       (unsigned long)(__page - __zone->zone_mem_map)                  \
+               + __zone->zone_start_pfn;                               \
+})
 #define pmd_page(pmd)          (pfn_to_page(pmd_val(pmd) >> PAGE_SHIFT))
 /*
  * pfn_valid should be made as fast as possible, and the current definition