summaryrefslogtreecommitdiff
path: root/sys/arch/sparc/include
diff options
context:
space:
mode:
authorArtur Grabowski <art@cvs.openbsd.org>1999-12-08 10:44:50 +0000
committerArtur Grabowski <art@cvs.openbsd.org>1999-12-08 10:44:50 +0000
commit537d1ee919934fbadce2b00f722966fc4ed91c84 (patch)
tree53b7240c449f304756efd414f93bfd0af9c14729 /sys/arch/sparc/include
parent8714d23212bcebe28ed8d4b387da23605bb44ee2 (diff)
Dumb implementation of PMAP_NEW, it works but without any gains yet.
Diffstat (limited to 'sys/arch/sparc/include')
-rw-r--r--sys/arch/sparc/include/pmap.h59
1 files changed, 58 insertions, 1 deletions
diff --git a/sys/arch/sparc/include/pmap.h b/sys/arch/sparc/include/pmap.h
index afa47beedda..f3bd9b09faa 100644
--- a/sys/arch/sparc/include/pmap.h
+++ b/sys/arch/sparc/include/pmap.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: pmap.h,v 1.12 1999/11/11 12:30:35 art Exp $ */
+/* $OpenBSD: pmap.h,v 1.13 1999/12/08 10:44:48 art Exp $ */
/* $NetBSD: pmap.h,v 1.30 1997/08/04 20:00:47 pk Exp $ */
/*
@@ -286,7 +286,11 @@ void *pmap_bootstrap_alloc __P((int));
void pmap_change_wiring __P((pmap_t, vaddr_t, boolean_t));
void pmap_collect __P((pmap_t));
void pmap_copy __P((pmap_t, pmap_t, vaddr_t, vsize_t, vaddr_t));
+#ifdef PMAP_NEW
+pmap_t pmap_create __P((void));
+#else
pmap_t pmap_create __P((vsize_t));
+#endif
void pmap_destroy __P((pmap_t));
void pmap_init __P((void));
vaddr_t pmap_map __P((vaddr_t, paddr_t, paddr_t, int));
@@ -310,15 +314,29 @@ void pmap_writetext __P((unsigned char *, int));
/* SUN4/SUN4C SPECIFIC DECLARATIONS */
#if defined(SUN4) || defined(SUN4C)
+#ifdef PMAP_NEW
+boolean_t pmap_clear_modify4_4c __P((struct vm_page *));
+boolean_t pmap_clear_reference4_4c __P((struct vm_page *));
+#else
void pmap_clear_modify4_4c __P((paddr_t pa));
void pmap_clear_reference4_4c __P((paddr_t pa));
+#endif
void pmap_copy_page4_4c __P((paddr_t, paddr_t));
void pmap_enter4_4c __P((pmap_t, vaddr_t, paddr_t, vm_prot_t,
boolean_t, vm_prot_t));
paddr_t pmap_extract4_4c __P((pmap_t, vaddr_t));
+#ifdef PMAP_NEW
+boolean_t pmap_is_modified4_4c __P((struct vm_page *));
+boolean_t pmap_is_referenced4_4c __P((struct vm_page *));
+void pmap_kenter_pa4_4c __P((vaddr_t, paddr_t, vm_prot_t));
+void pmap_kenter_pgs4_4c __P((vaddr_t, struct vm_page **, int));
+void pmap_kremove4_4c __P((vaddr_t, vsize_t));
+void pmap_page_protect4_4c __P((struct vm_page *, vm_prot_t));
+#else
boolean_t pmap_is_modified4_4c __P((paddr_t pa));
boolean_t pmap_is_referenced4_4c __P((paddr_t pa));
void pmap_page_protect4_4c __P((paddr_t, vm_prot_t));
+#endif
void pmap_protect4_4c __P((pmap_t, vaddr_t, vaddr_t, vm_prot_t));
void pmap_zero_page4_4c __P((paddr_t));
void pmap_changeprot4_4c __P((pmap_t, vaddr_t, vm_prot_t, int));
@@ -327,15 +345,29 @@ void pmap_changeprot4_4c __P((pmap_t, vaddr_t, vm_prot_t, int));
/* SIMILAR DECLARATIONS FOR SUN4M MODULE */
#if defined(SUN4M)
+#ifdef PMAP_NEW
+boolean_t pmap_clear_modify4m __P((struct vm_page *));
+boolean_t pmap_clear_reference4m __P((struct vm_page *));
+#else
void pmap_clear_modify4m __P((paddr_t pa));
void pmap_clear_reference4m __P((paddr_t pa));
+#endif
void pmap_copy_page4m __P((paddr_t, paddr_t));
void pmap_enter4m __P((pmap_t, vaddr_t, paddr_t, vm_prot_t,
boolean_t, vm_prot_t));
paddr_t pmap_extract4m __P((pmap_t, vaddr_t));
+#ifdef PMAP_NEW
+boolean_t pmap_is_modified4m __P((struct vm_page *));
+boolean_t pmap_is_referenced4m __P((struct vm_page *));
+void pmap_kenter_pa4m __P((vaddr_t, paddr_t, vm_prot_t));
+void pmap_kenter_pgs4m __P((vaddr_t, struct vm_page **, int));
+void pmap_kremove4m __P((vaddr_t, vsize_t));
+void pmap_page_protect4m __P((struct vm_page *, vm_prot_t));
+#else
boolean_t pmap_is_modified4m __P((paddr_t pa));
boolean_t pmap_is_referenced4m __P((paddr_t pa));
void pmap_page_protect4m __P((paddr_t, vm_prot_t));
+#endif
void pmap_protect4m __P((pmap_t, vaddr_t, vaddr_t, vm_prot_t));
void pmap_zero_page4m __P((paddr_t));
void pmap_changeprot4m __P((pmap_t, vaddr_t, vm_prot_t, int));
@@ -350,6 +382,9 @@ void pmap_changeprot4m __P((pmap_t, vaddr_t, vm_prot_t, int));
#define pmap_extract pmap_extract4_4c
#define pmap_is_modified pmap_is_modified4_4c
#define pmap_is_referenced pmap_is_referenced4_4c
+#define pmap_kenter_pa pmap_kenter_pa4_4c
+#define pmap_kenter_pgs pmap_kenter_pgs4_4c
+#define pmap_kremove pmap_kremove4_4c
#define pmap_page_protect pmap_page_protect4_4c
#define pmap_protect pmap_protect4_4c
#define pmap_zero_page pmap_zero_page4_4c
@@ -364,6 +399,9 @@ void pmap_changeprot4m __P((pmap_t, vaddr_t, vm_prot_t, int));
#define pmap_extract pmap_extract4m
#define pmap_is_modified pmap_is_modified4m
#define pmap_is_referenced pmap_is_referenced4m
+#define pmap_kenter_pa pmap_kenter_pa4m
+#define pmap_kenter_pgs pmap_kenter_pgs4m
+#define pmap_kremove pmap_kremove4m
#define pmap_page_protect pmap_page_protect4m
#define pmap_protect pmap_protect4m
#define pmap_zero_page pmap_zero_page4m
@@ -371,15 +409,31 @@ void pmap_changeprot4m __P((pmap_t, vaddr_t, vm_prot_t, int));
#else /* must use function pointers */
+#ifdef PMAP_NEW
+extern boolean_t (*pmap_clear_modify_p) __P((struct vm_page *));
+extern boolean_t (*pmap_clear_reference_p) __P((struct vm_page *));
+#else
extern void (*pmap_clear_modify_p) __P((paddr_t pa));
extern void (*pmap_clear_reference_p) __P((paddr_t pa));
+#endif
extern void (*pmap_copy_page_p) __P((paddr_t, paddr_t));
extern void (*pmap_enter_p) __P((pmap_t, vaddr_t, paddr_t,
vm_prot_t, boolean_t, vm_prot_t));
extern paddr_t (*pmap_extract_p) __P((pmap_t, vaddr_t));
+#ifdef PMAP_NEW
+extern boolean_t (*pmap_is_modified_p) __P((struct vm_page *));
+extern boolean_t (*pmap_is_referenced_p) __P((struct vm_page *));
+extern void (*pmap_kenter_pa_p) __P((vaddr_t, paddr_t, vm_prot_t));
+extern void (*pmap_kenter_pgs_p) __P((vaddr_t, struct vm_page **,
+ int));
+extern void (*pmap_kremove_p) __P((vaddr_t, vsize_t));
+extern void (*pmap_page_protect_p) __P((struct vm_page *,
+ vm_prot_t));
+#else
extern boolean_t (*pmap_is_modified_p) __P((paddr_t pa));
extern boolean_t (*pmap_is_referenced_p) __P((paddr_t pa));
extern void (*pmap_page_protect_p) __P((paddr_t, vm_prot_t));
+#endif
extern void (*pmap_protect_p) __P((pmap_t, vaddr_t, vaddr_t,
vm_prot_t));
extern void (*pmap_zero_page_p) __P((paddr_t));
@@ -393,6 +447,9 @@ extern void (*pmap_changeprot_p) __P((pmap_t, vaddr_t,
#define pmap_extract (*pmap_extract_p)
#define pmap_is_modified (*pmap_is_modified_p)
#define pmap_is_referenced (*pmap_is_referenced_p)
+#define pmap_kenter_pa (*pmap_kenter_pa_p)
+#define pmap_kenter_pgs (*pmap_kenter_pgs_p)
+#define pmap_kremove (*pmap_kremove_p)
#define pmap_page_protect (*pmap_page_protect_p)
#define pmap_protect (*pmap_protect_p)
#define pmap_zero_page (*pmap_zero_page_p)