pg_data_t *__pgdat = NODE_DATA(nid);                            \
        __pgdat->node_start_pfn + __pgdat->node_spanned_pages;          \
 })
-#define node_localnr(pfn, nid)         ((pfn) - node_start_pfn(nid))
-
-#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);                        \
-       BUG_ON(__zone == NULL);                                         \
-       (unsigned long)(__page - __zone->zone_mem_map)                  \
-               + __zone->zone_start_pfn;                               \
-})
 
 /* We have these possible memory map layouts:
  * Astro: 0-3.75, 67.75-68, 4-64
 
 #define __va(x)                        ((void *)((unsigned long)(x)+PAGE_OFFSET))
 
 #ifndef CONFIG_DISCONTIGMEM
-#define pfn_to_page(pfn)       (mem_map + (pfn))
-#define page_to_pfn(page)      ((unsigned long)((page) - mem_map))
 #define pfn_valid(pfn)         ((pfn) < max_mapnr)
 #endif /* CONFIG_DISCONTIGMEM */
 
 
 #endif /* __KERNEL__ */
 
+#include <asm-generic/memory_model.h>
 #include <asm-generic/page.h>
 
 #endif /* _PARISC_PAGE_H */