-#define PT_ADDR(ptd, pt_index) ((ptd_t*)ptd + (pt_index + 1) * 1024)
-#define SET_PDE(ptd, pde_index, pde) *((ptd_t*)ptd + pde_index) = pde;
-#define SET_PTE(ptd, pt_index, pte_index, pte) \
- *(PT_ADDR(ptd, pt_index) + pte_index) = pte;
-#define sym_val(sym) (ptr_t)(&sym)
-
-#define KERNEL_PAGE_COUNT \
- ((sym_val(__kexec_end) - sym_val(__kexec_start) + 0x1000 - 1) >> 12);
-#define HHK_PAGE_COUNT \
- ((sym_val(__kexec_boot_end) - 0x100000 + 0x1000 - 1) >> 12)
-
-#define V2P(vaddr) ((ptr_t)(vaddr)-KERNEL_EXEC)
-
-// use table #1
-#define PG_TABLE_IDENTITY 0
+// Provided by linker (see linker.ld)
+extern u8_t __kexec_start[];
+extern u8_t __kexec_end[];
+extern u8_t __kexec_text_start[];
+extern u8_t __kexec_text_end[];
+extern u8_t __kboot_start[];
+extern u8_t __kboot_end[];