svn commit: r295799 - head/sys/arm/include
Svatopluk Kraus
skra at FreeBSD.org
Fri Feb 19 08:41:49 UTC 2016
Author: skra
Date: Fri Feb 19 08:41:47 2016
New Revision: 295799
URL: https://svnweb.freebsd.org/changeset/base/295799
Log:
Move common definitions from both pmap-v4.h and pmap-v6.h into pmap.h.
(1) MI interface needed for vm subsystem.
(2) MD interface created for ARM architecture to be used in files
shared by armv4 and armv6 platforms.
Modified:
head/sys/arm/include/pmap-v4.h
head/sys/arm/include/pmap-v6.h
head/sys/arm/include/pmap.h
Modified: head/sys/arm/include/pmap-v4.h
==============================================================================
--- head/sys/arm/include/pmap-v4.h Fri Feb 19 08:35:29 2016 (r295798)
+++ head/sys/arm/include/pmap-v4.h Fri Feb 19 08:41:47 2016 (r295799)
@@ -80,16 +80,8 @@ enum mem_type {
#define PDESIZE sizeof(pd_entry_t) /* for assembly files */
#define PTESIZE sizeof(pt_entry_t) /* for assembly files */
-#ifdef _KERNEL
-
-#define vtophys(va) pmap_kextract((vm_offset_t)(va))
-
-#endif
-
#define pmap_page_get_memattr(m) ((m)->md.pv_memattr)
-#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0)
#define pmap_page_is_mapped(m) (!TAILQ_EMPTY(&(m)->md.pv_list))
-void pmap_page_set_memattr(vm_page_t m, vm_memattr_t ma);
/*
* Pmap stuff
@@ -163,7 +155,6 @@ extern struct pmap kernel_pmap_store;
#define PMAP_UNLOCK(pmap) mtx_unlock(&(pmap)->pm_mtx)
#endif
-
/*
* For each vm_page_t, there is a list of all currently valid virtual
* mappings of that page. An entry is a pv_entry_t, the list is pv_list.
@@ -208,9 +199,6 @@ boolean_t pmap_get_pde_pte(pmap_t, vm_of
*/
extern vm_offset_t pmap_curmaxkvaddr;
-struct pcb;
-
-void pmap_set_pcb_pagedir(pmap_t, struct pcb *);
/* Virtual address to page table entry */
static __inline pt_entry_t *
vtopte(vm_offset_t va)
@@ -223,23 +211,13 @@ vtopte(vm_offset_t va)
return (ptep);
}
-extern vm_paddr_t phys_avail[];
-extern vm_offset_t virtual_avail;
-extern vm_offset_t virtual_end;
-
void pmap_bootstrap(vm_offset_t firstaddr, struct pv_addr *l1pt);
int pmap_change_attr(vm_offset_t, vm_size_t, int);
void pmap_kenter(vm_offset_t va, vm_paddr_t pa);
void pmap_kenter_nocache(vm_offset_t va, vm_paddr_t pa);
-void pmap_kenter_device(vm_offset_t, vm_size_t, vm_paddr_t);
-void pmap_kremove_device(vm_offset_t, vm_size_t);
-void *pmap_kenter_temporary(vm_paddr_t pa, int i);
void pmap_kenter_user(vm_offset_t va, vm_paddr_t pa);
-vm_paddr_t pmap_kextract(vm_offset_t va);
vm_paddr_t pmap_dump_kextract(vm_offset_t, pt2_entry_t *);
void pmap_kremove(vm_offset_t);
-void *pmap_mapdev(vm_offset_t, vm_size_t);
-void pmap_unmapdev(vm_offset_t, vm_size_t);
vm_page_t pmap_use_pt(pmap_t, vm_offset_t);
void pmap_debug(int);
void pmap_map_section(vm_offset_t, vm_offset_t, vm_offset_t, int, int);
@@ -529,11 +507,8 @@ void pmap_kenter_section(vm_offset_t, vm
void pmap_kenter_supersection(vm_offset_t, uint64_t, int flags);
#endif
-extern char *_tmppt;
-
void pmap_postinit(void);
-extern vm_paddr_t dump_avail[];
#endif /* _KERNEL */
#endif /* !LOCORE */
Modified: head/sys/arm/include/pmap-v6.h
==============================================================================
--- head/sys/arm/include/pmap-v6.h Fri Feb 19 08:35:29 2016 (r295798)
+++ head/sys/arm/include/pmap-v6.h Fri Feb 19 08:41:47 2016 (r295799)
@@ -89,12 +89,6 @@ typedef uint32_t ttb_entry_t; /* TTB en
#define NKPT2PG 32
#endif
-extern vm_paddr_t phys_avail[];
-extern vm_paddr_t dump_avail[];
-extern char *_tmppt; /* poor name! */
-extern vm_offset_t virtual_avail;
-extern vm_offset_t virtual_end;
-
/*
* Pmap stuff
*/
@@ -170,11 +164,9 @@ struct pv_chunk {
};
#ifdef _KERNEL
-struct pcb;
extern ttb_entry_t pmap_kern_ttb; /* TTB for kernel pmap */
#define pmap_page_get_memattr(m) ((m)->md.pat_mode)
-#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0)
/*
* Only the following functions or macros may be used before pmap_bootstrap()
@@ -183,27 +175,18 @@ extern ttb_entry_t pmap_kern_ttb; /* TT
*/
void pmap_bootstrap(vm_offset_t );
void pmap_kenter(vm_offset_t , vm_paddr_t );
-void *pmap_kenter_temporary(vm_paddr_t , int );
void pmap_kremove(vm_offset_t);
-void *pmap_mapdev(vm_paddr_t, vm_size_t);
void *pmap_mapdev_attr(vm_paddr_t, vm_size_t, int);
boolean_t pmap_page_is_mapped(vm_page_t );
-void pmap_page_set_memattr(vm_page_t , vm_memattr_t );
-void pmap_unmapdev(vm_offset_t, vm_size_t);
-void pmap_kenter_device(vm_offset_t, vm_size_t, vm_paddr_t);
-void pmap_kremove_device(vm_offset_t, vm_size_t);
-void pmap_set_pcb_pagedir(pmap_t , struct pcb *);
void pmap_tlb_flush(pmap_t , vm_offset_t );
void pmap_tlb_flush_range(pmap_t , vm_offset_t , vm_size_t );
void pmap_dcache_wb_range(vm_paddr_t , vm_size_t , vm_memattr_t );
-vm_paddr_t pmap_kextract(vm_offset_t );
vm_paddr_t pmap_dump_kextract(vm_offset_t, pt2_entry_t *);
int pmap_fault(pmap_t , vm_offset_t , uint32_t , int , bool);
-#define vtophys(va) pmap_kextract((vm_offset_t)(va))
void pmap_set_tex(void);
void reinit_mmu(ttb_entry_t ttb, u_int aux_clr, u_int aux_set);
Modified: head/sys/arm/include/pmap.h
==============================================================================
--- head/sys/arm/include/pmap.h Fri Feb 19 08:35:29 2016 (r295798)
+++ head/sys/arm/include/pmap.h Fri Feb 19 08:41:47 2016 (r295799)
@@ -38,4 +38,31 @@
#include <machine/pmap-v4.h>
#endif
+#ifdef _KERNEL
+
+extern vm_paddr_t dump_avail[];
+extern vm_paddr_t phys_avail[];
+
+extern char *_tmppt; /* poor name! */
+
+extern vm_offset_t virtual_avail;
+extern vm_offset_t virtual_end;
+
+void *pmap_kenter_temporary(vm_paddr_t, int);
+#define pmap_page_is_write_mapped(m) (((m)->aflags & PGA_WRITEABLE) != 0)
+void pmap_page_set_memattr(vm_page_t, vm_memattr_t);
+
+void *pmap_mapdev(vm_paddr_t, vm_size_t);
+void pmap_unmapdev(vm_offset_t, vm_size_t);
+
+struct pcb;
+void pmap_set_pcb_pagedir(pmap_t, struct pcb *);
+
+void pmap_kenter_device(vm_offset_t, vm_size_t, vm_paddr_t);
+void pmap_kremove_device(vm_offset_t, vm_size_t);
+
+vm_paddr_t pmap_kextract(vm_offset_t);
+#define vtophys(va) pmap_kextract((vm_offset_t)(va))
+
+#endif /* _KERNEL */
#endif /* !_MACHINE_PMAP_H_ */
More information about the svn-src-all
mailing list