|
@@ -0,0 +1,40 @@
|
|
|
+#ifndef _ASM_M32R_PGTABLE_H
|
|
|
+#define _ASM_M32R_PGTABLE_H
|
|
|
+
|
|
|
+#include <asm-generic/4level-fixup.h>
|
|
|
+
|
|
|
+#ifdef __KERNEL__
|
|
|
+/*
|
|
|
+ * The Linux memory management assumes a three-level page table setup. On
|
|
|
+ * the M32R, we use that, but "fold" the mid level into the top-level page
|
|
|
+ * table, so that we physically have the same two-level page table as the
|
|
|
+ * M32R mmu expects.
|
|
|
+ *
|
|
|
+ * This file contains the functions and defines necessary to modify and use
|
|
|
+ * the M32R page table tree.
|
|
|
+ */
|
|
|
+
|
|
|
+/* CAUTION!: If you change macro definitions in this file, you might have to
|
|
|
+ * change arch/m32r/mmu.S manually.
|
|
|
+ */
|
|
|
+
|
|
|
+#ifndef __ASSEMBLY__
|
|
|
+
|
|
|
+#include <linux/threads.h>
|
|
|
+#include <linux/bitops.h>
|
|
|
+#include <asm/processor.h>
|
|
|
+#include <asm/addrspace.h>
|
|
|
+#include <asm/page.h>
|
|
|
+
|
|
|
+struct mm_struct;
|
|
|
+struct vm_area_struct;
|
|
|
+
|
|
|
+extern pgd_t swapper_pg_dir[1024];
|
|
|
+extern void paging_init(void);
|
|
|
+
|
|
|
+/*
|
|
|
+ * ZERO_PAGE is a global shared page that is always zero: used
|
|
|
+ * for zero-mapped memory areas etc..
|
|
|
+ */
|
|
|
+extern unsigned long empty_zero_page[1024];
|
|
|
+#define ZERO_PAGE(vaddr) (virt_to_page(empty_zero_page))
|