summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2016-09-20 22:11:24 +0200
committerRichard Braun <rbraun@sceen.net>2016-09-21 00:21:05 +0200
commit38aca37c00548f9b31bf17e74ab4a36c73521782 (patch)
tree41833d6c6e222e2bdc2410e963d53302c4654209
parent66a878640573dd9101e3915db44408b661220038 (diff)
Replace vm_offset_t with phys_addr_t where appropriate
* i386/i386/phys.c (pmap_zero_page, pmap_copy_page, copy_to_phys, copy_from_phys, kvtophys): Use the phys_addr_t type for physical addresses. * i386/intel/pmap.c (pmap_map, pmap_map_bd, pmap_destroy, pmap_remove_range, pmap_page_protect, pmap_enter, pmap_extract, pmap_collect, phys_attribute_clear, phys_attribute_test, pmap_clear_modify, pmap_is_modified, pmap_clear_reference, pmap_is_referenced): Likewise. * i386/intel/pmap.h (pt_entry_t): Unconditionally define as a phys_addr_t. (pmap_zero_page, pmap_copy_page, kvtophys): Use the phys_addr_t type for physical addresses. * vm/pmap.h (pmap_enter, pmap_page_protect, pmap_clear_reference, pmap_is_referenced, pmap_clear_modify, pmap_is_modified, pmap_extract, pmap_map_bd): Likewise. * vm/vm_page.h (vm_page_fictitious_addr): Declare as a phys_addr_t. * vm/vm_resident.c (vm_page_fictitious_addr): Likewise. (vm_page_grab_phys_addr): Change return type to phys_addr_t.
-rw-r--r--i386/i386/phys.c12
-rw-r--r--i386/intel/pmap.c40
-rw-r--r--i386/intel/pmap.h12
-rw-r--r--vm/pmap.h18
-rw-r--r--vm/vm_page.h2
-rw-r--r--vm/vm_resident.c4
6 files changed, 42 insertions, 46 deletions
diff --git a/i386/i386/phys.c b/i386/i386/phys.c
index fadc5c37..a5c3a15c 100644
--- a/i386/i386/phys.c
+++ b/i386/i386/phys.c
@@ -47,7 +47,7 @@
* pmap_zero_page zeros the specified (machine independent) page.
*/
void
-pmap_zero_page(vm_offset_t p)
+pmap_zero_page(phys_addr_t p)
{
assert(p != vm_page_fictitious_addr);
vm_offset_t v;
@@ -73,8 +73,8 @@ pmap_zero_page(vm_offset_t p)
*/
void
pmap_copy_page(
- vm_offset_t src,
- vm_offset_t dst)
+ phys_addr_t src,
+ phys_addr_t dst)
{
vm_offset_t src_addr_v, dst_addr_v;
pmap_mapwindow_t *src_map = NULL;
@@ -116,7 +116,7 @@ pmap_copy_page(
void
copy_to_phys(
vm_offset_t src_addr_v,
- vm_offset_t dst_addr_p,
+ phys_addr_t dst_addr_p,
int count)
{
vm_offset_t dst_addr_v;
@@ -147,7 +147,7 @@ copy_to_phys(
*/
void
copy_from_phys(
- vm_offset_t src_addr_p,
+ phys_addr_t src_addr_p,
vm_offset_t dst_addr_v,
int count)
{
@@ -176,7 +176,7 @@ copy_from_phys(
*
* Convert a kernel virtual address to a physical address
*/
-vm_offset_t
+phys_addr_t
kvtophys(vm_offset_t addr)
{
pt_entry_t *pte;
diff --git a/i386/intel/pmap.c b/i386/intel/pmap.c
index 7cde0931..bfc5d76e 100644
--- a/i386/intel/pmap.c
+++ b/i386/intel/pmap.c
@@ -483,8 +483,8 @@ void ptep_check(ptep_t ptep)
*/
vm_offset_t pmap_map(
vm_offset_t virt,
- vm_offset_t start,
- vm_offset_t end,
+ phys_addr_t start,
+ phys_addr_t end,
int prot)
{
int ps;
@@ -506,8 +506,8 @@ vm_offset_t pmap_map(
*/
vm_offset_t pmap_map_bd(
vm_offset_t virt,
- vm_offset_t start,
- vm_offset_t end,
+ phys_addr_t start,
+ phys_addr_t end,
vm_prot_t prot)
{
pt_entry_t template;
@@ -1214,7 +1214,7 @@ pmap_t pmap_create(vm_size_t size)
void pmap_destroy(pmap_t p)
{
pt_entry_t *pdep;
- vm_offset_t pa;
+ phys_addr_t pa;
int c, s;
vm_page_t m;
@@ -1311,7 +1311,7 @@ void pmap_remove_range(
pt_entry_t *cpte;
unsigned long num_removed, num_unwired;
unsigned long pai;
- vm_offset_t pa;
+ phys_addr_t pa;
#ifdef MACH_PV_PAGETABLES
int n, ii = 0;
struct mmu_update update[HYP_BATCH_MMU_UPDATES];
@@ -1501,7 +1501,7 @@ void pmap_remove(
* page.
*/
void pmap_page_protect(
- vm_offset_t phys,
+ phys_addr_t phys,
vm_prot_t prot)
{
pv_entry_t pv_h, prev;
@@ -1773,7 +1773,7 @@ void pmap_protect(
void pmap_enter(
pmap_t pmap,
vm_offset_t v,
- vm_offset_t pa,
+ phys_addr_t pa,
vm_prot_t prot,
boolean_t wired)
{
@@ -1784,7 +1784,7 @@ void pmap_enter(
pv_entry_t pv_e;
pt_entry_t template;
int spl;
- vm_offset_t old_pa;
+ phys_addr_t old_pa;
assert(pa != vm_page_fictitious_addr);
if (pmap_debug) printf("pmap(%lx, %lx)\n", v, pa);
@@ -2133,20 +2133,20 @@ void pmap_change_wiring(
* with the given map/virtual_address pair.
*/
-vm_offset_t pmap_extract(
+phys_addr_t pmap_extract(
pmap_t pmap,
vm_offset_t va)
{
pt_entry_t *pte;
- vm_offset_t pa;
+ phys_addr_t pa;
int spl;
SPLVM(spl);
simple_lock(&pmap->lock);
if ((pte = pmap_pte(pmap, va)) == PT_ENTRY_NULL)
- pa = (vm_offset_t) 0;
+ pa = 0;
else if (!(*pte & INTEL_PTE_VALID))
- pa = (vm_offset_t) 0;
+ pa = 0;
else
pa = pte_to_pa(*pte) + (va & INTEL_OFFMASK);
simple_unlock(&pmap->lock);
@@ -2187,7 +2187,7 @@ void pmap_collect(pmap_t p)
{
pt_entry_t *pdp, *ptp;
pt_entry_t *eptp;
- vm_offset_t pa;
+ phys_addr_t pa;
int spl, wired;
if (p == PMAP_NULL)
@@ -2403,7 +2403,7 @@ pmap_pageable(
*/
void
phys_attribute_clear(
- vm_offset_t phys,
+ phys_addr_t phys,
int bits)
{
pv_entry_t pv_h;
@@ -2487,7 +2487,7 @@ phys_attribute_clear(
*/
boolean_t
phys_attribute_test(
- vm_offset_t phys,
+ phys_addr_t phys,
int bits)
{
pv_entry_t pv_h;
@@ -2575,7 +2575,7 @@ phys_attribute_test(
* Clear the modify bits on the specified physical page.
*/
-void pmap_clear_modify(vm_offset_t phys)
+void pmap_clear_modify(phys_addr_t phys)
{
phys_attribute_clear(phys, PHYS_MODIFIED);
}
@@ -2587,7 +2587,7 @@ void pmap_clear_modify(vm_offset_t phys)
* by any physical maps.
*/
-boolean_t pmap_is_modified(vm_offset_t phys)
+boolean_t pmap_is_modified(phys_addr_t phys)
{
return (phys_attribute_test(phys, PHYS_MODIFIED));
}
@@ -2598,7 +2598,7 @@ boolean_t pmap_is_modified(vm_offset_t phys)
* Clear the reference bit on the specified physical page.
*/
-void pmap_clear_reference(vm_offset_t phys)
+void pmap_clear_reference(phys_addr_t phys)
{
phys_attribute_clear(phys, PHYS_REFERENCED);
}
@@ -2610,7 +2610,7 @@ void pmap_clear_reference(vm_offset_t phys)
* by any physical maps.
*/
-boolean_t pmap_is_referenced(vm_offset_t phys)
+boolean_t pmap_is_referenced(phys_addr_t phys)
{
return (phys_attribute_test(phys, PHYS_REFERENCED));
}
diff --git a/i386/intel/pmap.h b/i386/intel/pmap.h
index 382cd5f4..e6a3ede8 100644
--- a/i386/intel/pmap.h
+++ b/i386/intel/pmap.h
@@ -64,11 +64,7 @@
* i386/i486 Page Table Entry
*/
-#if PAE
-typedef unsigned long long pt_entry_t;
-#else /* PAE */
-typedef unsigned int pt_entry_t;
-#endif /* PAE */
+typedef phys_addr_t pt_entry_t;
#define PT_ENTRY_NULL ((pt_entry_t *) 0)
#endif /* __ASSEMBLER__ */
@@ -447,19 +443,19 @@ extern void pmap_unmap_page_zero (void);
/*
* pmap_zero_page zeros the specified (machine independent) page.
*/
-extern void pmap_zero_page (vm_offset_t);
+extern void pmap_zero_page (phys_addr_t);
/*
* pmap_copy_page copies the specified (machine independent) pages.
*/
-extern void pmap_copy_page (vm_offset_t, vm_offset_t);
+extern void pmap_copy_page (phys_addr_t, phys_addr_t);
/*
* kvtophys(addr)
*
* Convert a kernel virtual address to a physical address
*/
-extern vm_offset_t kvtophys (vm_offset_t);
+extern phys_addr_t kvtophys (vm_offset_t);
void pmap_remove_range(
pmap_t pmap,
diff --git a/vm/pmap.h b/vm/pmap.h
index 3c1cdcb1..2201b444 100644
--- a/vm/pmap.h
+++ b/vm/pmap.h
@@ -100,7 +100,7 @@ extern void pmap_reference(pmap_t pmap);
extern void pmap_destroy(pmap_t pmap);
/* Enter a mapping */
-extern void pmap_enter(pmap_t pmap, vm_offset_t va, vm_offset_t pa,
+extern void pmap_enter(pmap_t pmap, vm_offset_t va, phys_addr_t pa,
vm_prot_t prot, boolean_t wired);
@@ -128,7 +128,7 @@ extern void pmap_deactivate(pmap_t, thread_t, int);
*/
/* Restrict access to page. */
-void pmap_page_protect(vm_offset_t pa, vm_prot_t prot);
+void pmap_page_protect(phys_addr_t pa, vm_prot_t prot);
/*
* Routines to manage reference/modify bits based on
@@ -137,24 +137,24 @@ void pmap_page_protect(vm_offset_t pa, vm_prot_t prot);
*/
/* Clear reference bit */
-void pmap_clear_reference(vm_offset_t pa);
+void pmap_clear_reference(phys_addr_t pa);
/* Return reference bit */
#ifndef pmap_is_referenced
-boolean_t pmap_is_referenced(vm_offset_t pa);
+boolean_t pmap_is_referenced(phys_addr_t pa);
#endif /* pmap_is_referenced */
/* Clear modify bit */
-void pmap_clear_modify(vm_offset_t pa);
+void pmap_clear_modify(phys_addr_t pa);
/* Return modify bit */
-boolean_t pmap_is_modified(vm_offset_t pa);
+boolean_t pmap_is_modified(phys_addr_t pa);
/*
* Sundry required routines
*/
/* Return a virtual-to-physical mapping, if possible. */
-extern vm_offset_t pmap_extract(pmap_t, vm_offset_t);
+extern phys_addr_t pmap_extract(pmap_t, vm_offset_t);
/* Perform garbage collection, if any. */
extern void pmap_collect(pmap_t);
/* Specify pageability. */
@@ -198,8 +198,8 @@ extern void pmap_pageable(
*/
extern vm_offset_t pmap_map_bd(
vm_offset_t virt,
- vm_offset_t start,
- vm_offset_t end,
+ phys_addr_t start,
+ phys_addr_t end,
vm_prot_t prot);
/*
diff --git a/vm/vm_page.h b/vm/vm_page.h
index ba54b3ab..3a1452a7 100644
--- a/vm/vm_page.h
+++ b/vm/vm_page.h
@@ -200,7 +200,7 @@ decl_simple_lock_data(extern,vm_page_queue_free_lock)
extern unsigned int vm_page_free_wanted;
/* how many threads are waiting for memory */
-extern vm_offset_t vm_page_fictitious_addr;
+extern phys_addr_t vm_page_fictitious_addr;
/* (fake) phys_addr of fictitious pages */
extern void vm_page_bootstrap(
diff --git a/vm/vm_resident.c b/vm/vm_resident.c
index 3dff11bf..fdd25912 100644
--- a/vm/vm_resident.c
+++ b/vm/vm_resident.c
@@ -127,7 +127,7 @@ struct kmem_cache vm_page_cache;
* For debugging, this should be a strange value
* that the pmap module can recognize in assertions.
*/
-vm_offset_t vm_page_fictitious_addr = (vm_offset_t) -1;
+phys_addr_t vm_page_fictitious_addr = (phys_addr_t) -1;
/*
* Resident page structures are also chained on
@@ -820,7 +820,7 @@ vm_page_t vm_page_grab(
return mem;
}
-vm_offset_t vm_page_grab_phys_addr(void)
+phys_addr_t vm_page_grab_phys_addr(void)
{
vm_page_t p = vm_page_grab(FALSE);
if (p == VM_PAGE_NULL)