--- //depot/user/jake/pae/src/sys/alpha/alpha/mem.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/alpha/alpha/mem.c 2003/03/16 01:30:33 @@ -218,7 +218,7 @@ * instead of going through read/write * \*******************************************************/ static int -memmmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int prot) +memmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { /* * /dev/mem is the only one that makes sense through this --- //depot/user/jake/pae/src/sys/alpha/include/_types.h 2003/02/13 09:16:01 +++ //depot/user/jake/pae_test/src/sys/alpha/include/_types.h 2003/03/17 13:44:56 @@ -89,6 +89,7 @@ typedef __uint64_t __u_register_t; typedef __uint64_t __vm_offset_t; typedef __int64_t __vm_ooffset_t; +typedef __uint64_t __vm_paddr_t; typedef __uint64_t __vm_pindex_t; typedef __uint64_t __vm_size_t; --- //depot/user/jake/pae/src/sys/arm/include/_types.h 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/arm/include/_types.h 2003/03/17 13:44:56 @@ -95,6 +95,7 @@ typedef __uint32_t __u_register_t; typedef __uint32_t __vm_offset_t; typedef __int64_t __vm_ooffset_t; +typedef __uint32_t __vm_paddr_t; typedef __uint64_t __vm_pindex_t; typedef __uint32_t __vm_size_t; --- //depot/user/jake/pae/src/sys/dev/aic7xxx/ahc_pci.c 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/dev/aic7xxx/ahc_pci.c 2003/03/10 19:12:45 @@ -119,7 +119,7 @@ /*maxsize*/BUS_SPACE_MAXSIZE_32BIT, /*nsegments*/AHC_NSEG, /*maxsegsz*/AHC_MAXTRANSFER_SIZE, - /*flags*/BUS_DMA_ALLOCNOW, + /*flags*//*BUS_DMA_ALLOCNOW*/0, &ahc->parent_dmat); if (error != 0) { --- //depot/user/jake/pae/src/sys/dev/aic7xxx/aic7xxx.c 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/dev/aic7xxx/aic7xxx.c 2003/03/10 11:26:51 @@ -4600,7 +4600,9 @@ /* DMA tag for mapping buffers into device visible space. */ if (ahc_dma_tag_create(ahc, ahc->parent_dmat, /*alignment*/1, /*boundary*/BUS_SPACE_MAXADDR_32BIT + 1, - /*lowaddr*/BUS_SPACE_MAXADDR, + /*lowaddr*/ahc->flags & AHC_39BIT_ADDRESSING + ? (bus_addr_t)0x7FFFFFFFFFULL + : BUS_SPACE_MAXADDR_32BIT, /*highaddr*/BUS_SPACE_MAXADDR, /*filter*/NULL, /*filterarg*/NULL, /*maxsize*/(AHC_NSEG - 1) * PAGE_SIZE, --- //depot/user/jake/pae/src/sys/dev/aic7xxx/aic7xxx_osm.c 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/dev/aic7xxx/aic7xxx_osm.c 2003/03/08 23:09:25 @@ -1386,7 +1386,8 @@ panic("ahc_setup_data - Transfer size " "larger than can device max"); - seg.ds_addr = (bus_addr_t)csio->data_ptr; + seg.ds_addr = + (bus_addr_t)(vm_offset_t)csio->data_ptr; seg.ds_len = csio->dxfer_len; ahc_execute_scb(scb, &seg, 1, 0); } --- //depot/user/jake/pae/src/sys/dev/bge/if_bgereg.h 2003/02/13 09:16:01 +++ //depot/user/jake/pae_test/src/sys/dev/bge/if_bgereg.h 2003/03/10 13:00:26 @@ -1674,11 +1674,13 @@ */ #define BGE_MAGIC_NUMBER 0x4B657654 -typedef struct { - u_int32_t bge_addr_hi; - u_int32_t bge_addr_lo; +typedef union { + u_int64_t bge_addr64; + u_int32_t bge_addr32[2]; } bge_hostaddr; -#define BGE_HOSTADDR(x) ((x).bge_addr_lo) +#define bge_addr_hi bge_addr32[0] +#define bge_addr_lo bge_addr32[1] +#define BGE_HOSTADDR(x) ((x).bge_addr64) /* Ring control block structure */ struct bge_rcb { --- //depot/user/jake/pae/src/sys/dev/bktr/bktr_os.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/dev/bktr/bktr_os.c 2003/03/16 01:30:33 @@ -749,7 +749,7 @@ * */ static int -bktr_mmap( dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot ) +bktr_mmap( dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot ) { int unit; bktr_ptr_t bktr; --- //depot/user/jake/pae/src/sys/dev/drm/drm_vm.h 2003/03/10 19:27:58 +++ //depot/user/jake/pae_test/src/sys/dev/drm/drm_vm.h 2003/03/16 01:30:33 @@ -3,7 +3,7 @@ */ #if defined(__FreeBSD__) && __FreeBSD_version >= 500102 -static int DRM(dma_mmap)(dev_t kdev, vm_offset_t offset, vm_offset_t *paddr, +static int DRM(dma_mmap)(dev_t kdev, vm_offset_t offset, vm_paddr_t *paddr, int prot) #elif defined(__FreeBSD__) static int DRM(dma_mmap)(dev_t kdev, vm_offset_t offset, int prot) @@ -32,7 +32,7 @@ } #if defined(__FreeBSD__) && __FreeBSD_version >= 500102 -int DRM(mmap)(dev_t kdev, vm_offset_t offset, vm_offset_t *paddr, +int DRM(mmap)(dev_t kdev, vm_offset_t offset, vm_paddr_t *paddr, int prot) #elif defined(__FreeBSD__) int DRM(mmap)(dev_t kdev, vm_offset_t offset, int prot) --- //depot/user/jake/pae/src/sys/dev/em/if_em.c 2003/02/19 11:03:52 +++ //depot/user/jake/pae_test/src/sys/dev/em/if_em.c 2003/03/10 10:58:52 @@ -310,7 +310,8 @@ /* Allocate Transmit Descriptor ring */ if (!(adapter->tx_desc_base = (struct em_tx_desc *) - contigmalloc(tsize, M_DEVBUF, M_NOWAIT, 0, ~0, PAGE_SIZE, 0))) { + contigmalloc(tsize, M_DEVBUF, M_NOWAIT, 0, 0xffffffff, + PAGE_SIZE, 0))) { printf("em%d: Unable to allocate TxDescriptor memory\n", adapter->unit); em_free_pci_resources(adapter); @@ -323,7 +324,8 @@ /* Allocate Receive Descriptor ring */ if (!(adapter->rx_desc_base = (struct em_rx_desc *) - contigmalloc(rsize, M_DEVBUF, M_NOWAIT, 0, ~0, PAGE_SIZE, 0))) { + contigmalloc(rsize, M_DEVBUF, M_NOWAIT, 0, 0xffffffff, + PAGE_SIZE, 0))) { printf("em%d: Unable to allocate rx_desc memory\n", adapter->unit); em_free_pci_resources(adapter); --- //depot/user/jake/pae/src/sys/dev/fb/fb.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/dev/fb/fb.c 2003/03/16 01:30:33 @@ -498,7 +498,7 @@ } static int -fbmmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +fbmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { int unit; --- //depot/user/jake/pae/src/sys/dev/fb/fbreg.h 2003/02/24 20:12:18 +++ //depot/user/jake/pae_test/src/sys/dev/fb/fbreg.h 2003/03/16 01:44:35 @@ -82,7 +82,7 @@ #define V_DISPLAY_SUSPEND 3 */ typedef int vi_mmap_t(video_adapter_t *adp, vm_offset_t offset, - vm_offset_t *paddr, int prot); + vm_paddr_t *paddr, int prot); typedef int vi_ioctl_t(video_adapter_t *adp, u_long cmd, caddr_t data); typedef int vi_clear_t(video_adapter_t *adp); typedef int vi_fill_rect_t(video_adapter_t *adp, int val, int x, int y, --- //depot/user/jake/pae/src/sys/dev/fb/vga.c 2003/02/24 20:12:18 +++ //depot/user/jake/pae_test/src/sys/dev/fb/vga.c 2003/03/16 01:44:35 @@ -2450,7 +2450,7 @@ * all adapters */ static int -vga_mmap_buf(video_adapter_t *adp, vm_offset_t offset, vm_offset_t *paddr, +vga_mmap_buf(video_adapter_t *adp, vm_offset_t offset, vm_paddr_t *paddr, int prot) { if (adp->va_info.vi_flags & V_INFO_LINEAR) --- //depot/user/jake/pae/src/sys/dev/gfb/gfb_pci.c 2003/02/24 20:12:18 +++ //depot/user/jake/pae_test/src/sys/dev/gfb/gfb_pci.c 2003/03/16 01:30:33 @@ -313,7 +313,7 @@ } int -pcigfb_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int prot) +pcigfb_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { struct gfb_softc *sc; --- //depot/user/jake/pae/src/sys/dev/sound/pcm/dsp.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/dev/sound/pcm/dsp.c 2003/03/16 01:30:33 @@ -986,7 +986,7 @@ } static int -dsp_mmap(dev_t i_dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +dsp_mmap(dev_t i_dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { struct pcm_channel *wrch = NULL, *rdch = NULL, *c; intrmask_t s; --- //depot/user/jake/pae/src/sys/dev/syscons/syscons.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/dev/syscons/syscons.c 2003/03/16 01:44:35 @@ -3365,7 +3365,7 @@ } static int -scmmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +scmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { scr_stat *scp; --- //depot/user/jake/pae/src/sys/dev/tdfx/tdfx_pci.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/dev/tdfx/tdfx_pci.c 2003/03/16 01:30:33 @@ -434,7 +434,7 @@ } static int -tdfx_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +tdfx_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { /* * mmap(2) is called by a user process to request that an area of memory --- //depot/user/jake/pae/src/sys/geom/geom_stats.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/geom/geom_stats.c 2003/03/16 01:30:33 @@ -114,7 +114,7 @@ }; static int -g_stat_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +g_stat_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { struct statspage *spp; --- //depot/user/jake/pae/src/sys/i386/acpica/acpi_wakeup.c 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/i386/acpica/acpi_wakeup.c 2003/03/15 20:36:05 @@ -181,7 +181,7 @@ acpi_sleep_machdep(struct acpi_softc *sc, int state) { ACPI_STATUS status; - vm_offset_t oldphys; + vm_paddr_t oldphys; struct pmap *pm; vm_page_t page; static vm_page_t opage = NULL; --- //depot/user/jake/pae/src/sys/i386/i386/busdma_machdep.c 2003/03/17 12:53:57 +++ //depot/user/jake/pae_test/src/sys/i386/i386/busdma_machdep.c 2003/03/17 12:56:29 @@ -99,7 +99,7 @@ static void init_bounce_pages(void *dummy); static int alloc_bounce_pages(bus_dma_tag_t dmat, u_int numpages); static int reserve_bounce_pages(bus_dma_tag_t dmat, bus_dmamap_t map); -static vm_offset_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, +static bus_addr_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t vaddr, bus_size_t size); static void free_bounce_page(bus_dma_tag_t dmat, struct bounce_page *bpage); static __inline int run_filter(bus_dma_tag_t dmat, bus_addr_t paddr); @@ -157,8 +157,9 @@ newtag->parent = parent; newtag->alignment = alignment; newtag->boundary = boundary; - newtag->lowaddr = trunc_page((vm_offset_t)lowaddr) + (PAGE_SIZE - 1); - newtag->highaddr = trunc_page((vm_offset_t)highaddr) + (PAGE_SIZE - 1); + newtag->lowaddr = trunc_page((vm_paddr_t)lowaddr) + (PAGE_SIZE - 1); + newtag->highaddr = trunc_page((vm_paddr_t)highaddr) + + (PAGE_SIZE - 1); newtag->filter = filter; newtag->filterarg = filterarg; newtag->maxsize = maxsize; @@ -191,7 +192,8 @@ } } - if (newtag->lowaddr < ptoa(Maxmem) && (flags & BUS_DMA_ALLOCNOW) != 0) { + if (newtag->lowaddr < ptoa((vm_paddr_t)Maxmem) && + (flags & BUS_DMA_ALLOCNOW) != 0) { /* Must bounce */ if (lowaddr > bounce_lowaddr) { @@ -262,7 +264,7 @@ error = 0; - if (dmat->lowaddr < ptoa(Maxmem)) { + if (dmat->lowaddr < ptoa((vm_paddr_t)Maxmem)) { /* Must bounce */ int maxpages; @@ -344,7 +346,8 @@ /* If we succeed, no mapping/bouncing will be required */ *mapp = NULL; - if ((size <= PAGE_SIZE) && dmat->lowaddr >= ptoa(Maxmem)) { + if ((size <= PAGE_SIZE) && + dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) { *vaddr = malloc(size, M_DEVBUF, (flags & BUS_DMA_NOWAIT) ? M_NOWAIT : M_WAITOK); } else { @@ -386,7 +389,7 @@ */ if (map != NULL) panic("bus_dmamem_free: Invalid map freed\n"); - if ((size <= PAGE_SIZE) && dmat->lowaddr >= ptoa(Maxmem)) + if ((size <= PAGE_SIZE) && dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem)) free(vaddr, M_DEVBUF); else { mtx_lock(&Giant); @@ -412,7 +415,7 @@ void *callback_arg, int flags) { vm_offset_t vaddr; - vm_offset_t paddr; + vm_paddr_t paddr; #ifdef __GNUC__ bus_dma_segment_t dm_segments[dmat->nsegments]; #else @@ -421,7 +424,7 @@ bus_dma_segment_t *sg; int seg; int error; - vm_offset_t nextpaddr; + vm_paddr_t nextpaddr; if (map == NULL) map = &nobounce_dmamap; @@ -431,7 +434,8 @@ * If we are being called during a callback, pagesneeded will * be non-zero, so we can avoid doing the work twice. */ - if (dmat->lowaddr < ptoa(Maxmem) && map->pagesneeded == 0) { + if (dmat->lowaddr < ptoa((vm_paddr_t)Maxmem) && + map->pagesneeded == 0) { vm_offset_t vendaddr; /* @@ -626,7 +630,7 @@ #endif int nsegs, error; - KASSERT(dmat->lowaddr >= ptoa(Maxmem) || map != NULL, + KASSERT(dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem) || map != NULL, ("bus_dmamap_load_mbuf: No support for bounce pages!")); KASSERT(m0->m_flags & M_PKTHDR, ("bus_dmamap_load_mbuf: no packet header")); @@ -682,7 +686,7 @@ struct iovec *iov; struct thread *td = NULL; - KASSERT(dmat->lowaddr >= ptoa(Maxmem) || map != NULL, + KASSERT(dmat->lowaddr >= ptoa((vm_paddr_t)Maxmem) || map != NULL, ("bus_dmamap_load_uio: No support for bounce pages!")); resid = uio->uio_resid; @@ -846,7 +850,7 @@ return (pages); } -static vm_offset_t +static bus_addr_t add_bounce_page(bus_dma_tag_t dmat, bus_dmamap_t map, vm_offset_t vaddr, bus_size_t size) { --- //depot/user/jake/pae/src/sys/i386/i386/elan-mmcr.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/i386/i386/elan-mmcr.c 2003/03/16 01:30:33 @@ -304,7 +304,7 @@ } static int -elan_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +elan_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { if (minor(dev) != ELAN_MMCR) --- //depot/user/jake/pae/src/sys/i386/i386/machdep.c 2003/03/10 13:12:08 +++ //depot/user/jake/pae_test/src/sys/i386/i386/machdep.c 2003/03/15 20:36:05 @@ -170,7 +170,7 @@ long Maxmem = 0; -vm_offset_t phys_avail[10]; +vm_paddr_t phys_avail[10]; /* must be 2 less so 0 0 can signal end of chunks */ #define PHYS_AVAIL_ARRAY_END ((sizeof(phys_avail) / sizeof(vm_offset_t)) - 2) @@ -197,8 +197,9 @@ #ifdef PERFMON perfmon_init(); #endif - printf("real memory = %lu (%lu MB)\n", ptoa(Maxmem), - ptoa(Maxmem) / 1048576); + printf("real memory = %llu (%llu MB)\n", + (uint64_t)Maxmem << PAGE_SHIFT, + ((uint64_t)Maxmem << PAGE_SHIFT) / 1048576); /* * Display any holes after the first chunk of extended memory. */ @@ -207,19 +208,21 @@ printf("Physical memory chunk(s):\n"); for (indx = 0; phys_avail[indx + 1] != 0; indx += 2) { - unsigned int size1; + vm_paddr_t size; - size1 = phys_avail[indx + 1] - phys_avail[indx]; - printf("0x%08x - 0x%08x, %u bytes (%u pages)\n", - phys_avail[indx], phys_avail[indx + 1] - 1, size1, - size1 / PAGE_SIZE); + size = phys_avail[indx + 1] - phys_avail[indx]; + printf( + "0x%016llx - 0x%016llx, %llu bytes (%llu pages)\n", + phys_avail[indx], phys_avail[indx + 1] - 1, size, + size / PAGE_SIZE); } } vm_ksubmap_init(&kmi); - printf("avail memory = %u (%u MB)\n", ptoa(cnt.v_free_count), - ptoa(cnt.v_free_count) / 1048576); + printf("avail memory = %llu (%llu MB)\n", + (uint64_t)cnt.v_free_count << PAGE_SHIFT, + ((uint64_t)cnt.v_free_count << PAGE_SHIFT) / 1048576); /* * Set up buffers, so they can be used to read disk labels. @@ -1463,6 +1466,8 @@ * * Total memory size may be set by the kernel environment variable * hw.physmem or the compile-time define MAXMEM. + * + * XXX first should be vm_paddr_t. */ static void getmemsize(int first) @@ -1472,7 +1477,7 @@ u_int basemem, extmem; struct vm86frame vmf; struct vm86context vmc; - vm_offset_t pa, physmap[PHYSMAP_SIZE]; + vm_paddr_t pa, physmap[PHYSMAP_SIZE]; pt_entry_t *pte; char *cp; struct bios_smap *smap; @@ -1559,12 +1564,8 @@ if (i || vmf.vmf_eax != SMAP_SIG) break; if (boothowto & RB_VERBOSE) - printf("SMAP type=%02x base=%08x %08x len=%08x %08x\n", - smap->type, - *(u_int32_t *)((char *)&smap->base + 4), - (u_int32_t)smap->base, - *(u_int32_t *)((char *)&smap->length + 4), - (u_int32_t)smap->length); + printf("SMAP type=%02x base=%016llx len=%016llx\n", + smap->type, smap->base, smap->length); if (smap->type != 0x01) goto next_run; @@ -1572,11 +1573,13 @@ if (smap->length == 0) goto next_run; +#if !defined(PAE) || 0 if (smap->base >= 0xffffffff) { printf("%uK of memory above 4GB ignored\n", (u_int)(smap->length / 1024)); goto next_run; } +#endif for (i = 0; i <= physmap_idx; i += 2) { if (smap->base < physmap[i + 1]) { @@ -1742,7 +1745,7 @@ * extend the last memory segment to the new limit. */ if (atop(physmap[physmap_idx + 1]) < Maxmem) - physmap[physmap_idx + 1] = ptoa(Maxmem); + physmap[physmap_idx + 1] = ptoa((vm_paddr_t)Maxmem); /* call pmap initialization to make new kernel address space */ pmap_bootstrap(first, 0); @@ -1761,9 +1764,9 @@ * round up the start address and round down the end address. */ for (i = 0; i <= physmap_idx; i += 2) { - vm_offset_t end; + vm_paddr_t end; - end = ptoa(Maxmem); + end = (vm_paddr_t)Maxmem << PAGE_SHIFT; if (physmap[i + 1] < end) end = trunc_page(physmap[i + 1]); for (pa = round_page(physmap[i]); pa < end; pa += PAGE_SIZE) { --- //depot/user/jake/pae/src/sys/i386/i386/mem.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/i386/i386/mem.c 2003/03/16 01:30:33 @@ -211,7 +211,7 @@ * instead of going through read/write * \*******************************************************/ static int -memmmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int prot) +memmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { switch (minor(dev)) { --- //depot/user/jake/pae/src/sys/i386/i386/pmap.c 2003/03/17 13:05:13 +++ //depot/user/jake/pae_test/src/sys/i386/i386/pmap.c 2003/03/15 20:36:05 @@ -186,8 +186,8 @@ static struct pmaplist allpmaps; static struct mtx allpmaps_lock; -vm_offset_t avail_start; /* PA of first available physical page */ -vm_offset_t avail_end; /* PA of last available physical page */ +vm_paddr_t avail_start; /* PA of first available physical page */ +vm_paddr_t avail_end; /* PA of last available physical page */ vm_offset_t virtual_avail; /* VA of first avail page (after kernel bss) */ vm_offset_t virtual_end; /* VA of last avail page (end of kernel AS) */ static boolean_t pmap_initialized = FALSE; /* Has pmap_init completed? */ @@ -301,8 +301,8 @@ */ void pmap_bootstrap(firstaddr, loadaddr) - vm_offset_t firstaddr; - vm_offset_t loadaddr; + vm_paddr_t firstaddr; + vm_paddr_t loadaddr; { vm_offset_t va; pt_entry_t *pte; @@ -540,7 +540,7 @@ */ void pmap_init(phys_start, phys_end) - vm_offset_t phys_start, phys_end; + vm_paddr_t phys_start, phys_end; { int i; int initial_pvs; @@ -843,12 +843,12 @@ * Extract the physical page address associated * with the given map/virtual_address pair. */ -vm_offset_t +vm_paddr_t pmap_extract(pmap, va) register pmap_t pmap; vm_offset_t va; { - vm_offset_t rtval; /* XXX FIXME */ + vm_paddr_t rtval; pt_entry_t *pte; pd_entry_t pde; @@ -877,7 +877,7 @@ * Note: not SMP coherent. */ PMAP_INLINE void -pmap_kenter(vm_offset_t va, vm_offset_t pa) +pmap_kenter(vm_offset_t va, vm_paddr_t pa) { pt_entry_t *pte; @@ -911,7 +911,7 @@ * region. */ vm_offset_t -pmap_map(vm_offset_t *virt, vm_offset_t start, vm_offset_t end, int prot) +pmap_map(vm_offset_t *virt, vm_paddr_t start, vm_paddr_t end, int prot) { vm_offset_t va, sva; @@ -1297,7 +1297,7 @@ register struct pmap *pmap; { vm_page_t ptdpg[NPGPTD]; - vm_offset_t pa; + vm_paddr_t pa; int i; /* @@ -1390,7 +1390,8 @@ pmap_t pmap; unsigned ptepindex; { - vm_offset_t pteva, ptepa; /* XXXPA */ + vm_paddr_t ptepa; + vm_offset_t pteva; vm_page_t m; /* @@ -1577,7 +1578,7 @@ { struct pmap *pmap; int s; - vm_offset_t ptppaddr; + vm_paddr_t ptppaddr; vm_page_t nkpg; pd_entry_t newpdir; @@ -2045,9 +2046,9 @@ pmap_enter(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_prot_t prot, boolean_t wired) { - vm_offset_t pa; + vm_paddr_t pa; register pt_entry_t *pte; - vm_offset_t opa; + vm_paddr_t opa; pt_entry_t origpte, newpte; vm_page_t mpte; @@ -2220,7 +2221,7 @@ pmap_enter_quick(pmap_t pmap, vm_offset_t va, vm_page_t m, vm_page_t mpte) { pt_entry_t *pte; - vm_offset_t pa; + vm_paddr_t pa; /* * In the case that a page table page is not @@ -2956,7 +2957,7 @@ m = PHYS_TO_VM_PAGE(tpte); KASSERT(m->phys_addr == (tpte & PG_FRAME), - ("vm_page_t %p phys_addr mismatch %08x %#llx", + ("vm_page_t %p phys_addr mismatch %016llx %016llx", m, m->phys_addr, (uint64_t)tpte)); KASSERT(m < &vm_page_array[vm_page_array_size], @@ -3227,7 +3228,7 @@ */ void * pmap_mapdev(pa, size) - vm_offset_t pa; + vm_paddr_t pa; vm_size_t size; { vm_offset_t va, tmpva, offset; @@ -3289,7 +3290,7 @@ } if ((pte = *ptep) != 0) { - vm_offset_t pa; + vm_paddr_t pa; val = MINCORE_INCORE; if ((pte & PG_MANAGED) == 0) @@ -3455,7 +3456,7 @@ pmap_t pm; { int i, j; - vm_offset_t va; + vm_paddr_t va; pt_entry_t *ptep; if (pm == kernel_pmap) @@ -3477,7 +3478,7 @@ void pmap_pvdump(pa) - vm_offset_t pa; + vm_paddr_t pa; { pv_entry_t pv; vm_page_t m; --- //depot/user/jake/pae/src/sys/i386/i386/vm86.c 2003/02/19 11:03:52 +++ //depot/user/jake/pae_test/src/sys/i386/i386/vm86.c 2003/03/15 20:36:05 @@ -599,7 +599,7 @@ struct vm86context *vmc; { pt_entry_t *pte = (pt_entry_t *)vm86paddr; - u_int page; + vm_paddr_t page; int i, entry, retval; mtx_lock(&vm86_lock); --- //depot/user/jake/pae/src/sys/i386/i386/vm_machdep.c 2003/03/08 18:20:53 +++ //depot/user/jake/pae_test/src/sys/i386/i386/vm_machdep.c 2003/03/15 20:36:05 @@ -413,15 +413,15 @@ /* * Convert kernel VA to physical address */ -u_long +vm_paddr_t kvtop(void *addr) { - vm_offset_t va; + vm_paddr_t pa; - va = pmap_kextract((vm_offset_t)addr); - if (va == 0) + pa = pmap_kextract((vm_offset_t)addr); + if (pa == 0) panic("kvtop: zero page frame"); - return((int)va); + return (pa); } /* --- //depot/user/jake/pae/src/sys/i386/include/_types.h 2003/02/13 09:16:01 +++ //depot/user/jake/pae_test/src/sys/i386/include/_types.h 2003/03/15 20:36:05 @@ -102,6 +102,11 @@ typedef __uint32_t __u_register_t; typedef __uint32_t __vm_offset_t; typedef __int64_t __vm_ooffset_t; +#ifdef PAE +typedef __uint64_t __vm_paddr_t; +#else +typedef __uint32_t __vm_paddr_t; +#endif typedef __uint64_t __vm_pindex_t; typedef __uint32_t __vm_size_t; --- //depot/user/jake/pae/src/sys/i386/include/bus_at386.h 2003/03/11 12:36:50 +++ //depot/user/jake/pae_test/src/sys/i386/include/bus_at386.h 2003/03/17 13:02:04 @@ -92,15 +92,23 @@ /* * Bus address and size types */ -typedef u_int bus_addr_t; -typedef u_int bus_size_t; +#ifdef PAE +typedef uint64_t bus_addr_t; +#else +typedef uint32_t bus_addr_t; +#endif +typedef uint32_t bus_size_t; #define BUS_SPACE_MAXSIZE_24BIT 0xFFFFFF #define BUS_SPACE_MAXSIZE_32BIT 0xFFFFFFFF #define BUS_SPACE_MAXSIZE 0xFFFFFFFF #define BUS_SPACE_MAXADDR_24BIT 0xFFFFFF #define BUS_SPACE_MAXADDR_32BIT 0xFFFFFFFF +#ifdef PAE +#define BUS_SPACE_MAXADDR 0xFFFFFFFFFFFFFFFFULL +#else #define BUS_SPACE_MAXADDR 0xFFFFFFFF +#endif #define BUS_SPACE_UNRESTRICTED (~0) --- //depot/user/jake/pae/src/sys/i386/include/md_var.h 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/i386/include/md_var.h 2003/03/15 20:36:05 @@ -96,7 +96,7 @@ void i686_pagezero(void *addr); void init_AMD_Elan_sc520(void); int is_physical_memory(vm_offset_t addr); -u_long kvtop(void *addr); +vm_paddr_t kvtop(void *addr); void setidt(int idx, alias_for_inthand_t *func, int typ, int dpl, int selec); void swi_vm(void *); int user_dbreg_trap(void); --- //depot/user/jake/pae/src/sys/i386/include/pmap.h 2003/03/15 20:40:23 +++ //depot/user/jake/pae_test/src/sys/i386/include/pmap.h 2003/03/15 20:43:50 @@ -42,7 +42,7 @@ * * from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90 * from: @(#)pmap.h 7.4 (Berkeley) 5/12/91 - * $FreeBSD: src/sys/i386/include/pmap.h,v 1.89 2003/03/16 04:16:03 jake Exp $ + * $FreeBSD: src/sys/i386/include/pmap.h,v 1.88 2003/02/27 20:13:20 alc Exp $ */ #ifndef _MACHINE_PMAP_H_ @@ -70,7 +70,7 @@ /* Our various interpretations of the above */ #define PG_W PG_AVAIL1 /* "Wired" pseudoflag */ #define PG_MANAGED PG_AVAIL2 -#define PG_FRAME (~PAGE_MASK) +#define PG_FRAME (~((vm_paddr_t)PAGE_MASK)) #define PG_PROT (PG_RW|PG_U) /* all protection bits . */ #define PG_N (PG_NC_PWT|PG_NC_PCD) /* Non-cacheable */ @@ -192,10 +192,11 @@ * Extract the physical page address associated * kernel virtual address. */ -static __inline vm_offset_t +static __inline vm_paddr_t pmap_kextract(vm_offset_t va) { - vm_offset_t pa; + vm_paddr_t pa; + if ((pa = (vm_offset_t) PTD[va >> PDRSHIFT]) & PG_PS) { pa = (pa & ~(NBPDR - 1)) | (va & (NBPDR - 1)); } else { @@ -265,19 +266,19 @@ extern caddr_t CADDR1; extern pt_entry_t *CMAP1; -extern vm_offset_t avail_end; -extern vm_offset_t avail_start; +extern vm_paddr_t avail_end; +extern vm_paddr_t avail_start; extern vm_offset_t clean_eva; extern vm_offset_t clean_sva; -extern vm_offset_t phys_avail[]; +extern vm_paddr_t phys_avail[]; extern char *ptvmmap; /* poor name! */ extern vm_offset_t virtual_avail; extern vm_offset_t virtual_end; -void pmap_bootstrap(vm_offset_t, vm_offset_t); -void pmap_kenter(vm_offset_t va, vm_offset_t pa); +void pmap_bootstrap(vm_paddr_t, vm_paddr_t); +void pmap_kenter(vm_offset_t va, vm_paddr_t pa); void pmap_kremove(vm_offset_t); -void *pmap_mapdev(vm_offset_t, vm_size_t); +void *pmap_mapdev(vm_paddr_t, vm_size_t); void pmap_unmapdev(vm_offset_t, vm_size_t); pt_entry_t *pmap_pte(pmap_t, vm_offset_t) __pure2; void pmap_set_opt(void); --- //depot/user/jake/pae/src/sys/i386/isa/isa_dma.c 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/i386/isa/isa_dma.c 2003/03/15 20:36:05 @@ -213,7 +213,7 @@ void isa_dmastart(int flags, caddr_t addr, u_int nbytes, int chan) { - vm_offset_t phys; + vm_paddr_t phys; int waport; caddr_t newaddr; @@ -373,7 +373,8 @@ static int isa_dmarangecheck(caddr_t va, u_int length, int chan) { - vm_offset_t phys, priorpage = 0, endva; + vm_paddr_t phys, priorpage = 0; + vm_offset_t endva; u_int dma_pgmsk = (chan & 4) ? ~(128*1024-1) : ~(64*1024-1); GIANT_REQUIRED; --- //depot/user/jake/pae/src/sys/i386/isa/pcvt/pcvt_drv.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/i386/isa/pcvt/pcvt_drv.c 2003/03/16 01:30:33 @@ -417,7 +417,7 @@ * driver mmap *---------------------------------------------------------------------------*/ static int -pcvt_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +pcvt_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { if (offset > 0x20000 - PAGE_SIZE) return -1; --- //depot/user/jake/pae/src/sys/i386/isa/spigot.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/i386/isa/spigot.c 2003/03/16 01:30:33 @@ -268,7 +268,7 @@ } static int -spigot_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +spigot_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { struct spigot_softc *ss = (struct spigot_softc *)&spigot_softc[0]; --- //depot/user/jake/pae/src/sys/ia64/ia64/mem.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/ia64/ia64/mem.c 2003/03/16 01:30:33 @@ -217,7 +217,7 @@ * instead of going through read/write * \*******************************************************/ static int -memmmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int prot) +memmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { /* * /dev/mem is the only one that makes sense through this --- //depot/user/jake/pae/src/sys/ia64/include/_types.h 2003/02/13 09:16:01 +++ //depot/user/jake/pae_test/src/sys/ia64/include/_types.h 2003/03/17 13:44:56 @@ -89,6 +89,7 @@ typedef __uint64_t __u_register_t; typedef __uint64_t __vm_offset_t; typedef __int64_t __vm_ooffset_t; +typedef __uint64_t __vm_paddr_t; typedef __uint64_t __vm_pindex_t; typedef __uint64_t __vm_size_t; --- //depot/user/jake/pae/src/sys/isa/vga_isa.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/isa/vga_isa.c 2003/03/16 01:30:33 @@ -191,7 +191,7 @@ } static int -isavga_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int prot) +isavga_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { return vga_mmap(dev, VGA_SOFTC(VGA_UNIT(dev)), offset, paddr, prot); } --- //depot/user/jake/pae/src/sys/kern/subr_devstat.c 2003/03/17 12:53:57 +++ //depot/user/jake/pae_test/src/sys/kern/subr_devstat.c 2003/03/17 12:56:29 @@ -371,7 +371,7 @@ static MALLOC_DEFINE(M_DEVSTAT, "devstat", "Device statistics"); static int -devstat_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +devstat_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { struct statspage *spp; --- //depot/user/jake/pae/src/sys/kern/subr_xxx.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/kern/subr_xxx.c 2003/03/16 01:44:35 @@ -135,7 +135,7 @@ nommap(dev, offset, paddr, nprot) dev_t dev; vm_offset_t offset; - vm_offset_t *paddr; + vm_paddr_t *paddr; int nprot; { --- //depot/user/jake/pae/src/sys/kern/sys_pipe.c 2003/02/19 11:03:52 +++ //depot/user/jake/pae_test/src/sys/kern/sys_pipe.c 2003/03/15 20:36:05 @@ -620,7 +620,8 @@ { u_int size; int i; - vm_offset_t addr, endaddr, paddr; + vm_offset_t addr, endaddr; + vm_paddr_t paddr; GIANT_REQUIRED; PIPE_LOCK_ASSERT(wpipe, MA_NOTOWNED); --- //depot/user/jake/pae/src/sys/kern/uipc_cow.c 2003/03/17 12:53:57 +++ //depot/user/jake/pae_test/src/sys/kern/uipc_cow.c 2003/03/17 12:56:29 @@ -104,7 +104,7 @@ { struct sf_buf *sf; vm_page_t pp; - vm_offset_t pa; + vm_paddr_t pa; struct iovec *iov; struct vmspace *vmspace; struct vm_map *map; --- //depot/user/jake/pae/src/sys/kern/uipc_jumbo.c 2003/02/22 20:40:41 +++ //depot/user/jake/pae_test/src/sys/kern/uipc_jumbo.c 2003/03/15 20:36:05 @@ -212,7 +212,7 @@ jumbo_pg_free(vm_offset_t addr) { struct jumbo_kmap *entry; - vm_offset_t paddr; + vm_paddr_t paddr; vm_page_t pg; paddr = pmap_kextract((vm_offset_t)addr); --- //depot/user/jake/pae/src/sys/kern/vfs_bio.c 2003/03/13 17:02:15 +++ //depot/user/jake/pae_test/src/sys/kern/vfs_bio.c 2003/03/15 20:36:05 @@ -3623,7 +3623,7 @@ vmapbuf(struct buf *bp) { caddr_t addr, kva; - vm_offset_t pa; + vm_paddr_t pa; int pidx, i; struct vm_page *m; struct pmap *pmap = &curproc->p_vmspace->vm_pmap; --- //depot/user/jake/pae/src/sys/kern/vfs_subr.c 2003/03/13 17:02:15 +++ //depot/user/jake/pae_test/src/sys/kern/vfs_subr.c 2003/03/14 21:54:57 @@ -457,7 +457,7 @@ vntblinit(void *dummy __unused) { - desiredvnodes = maxproc + cnt.v_page_count / 4; + desiredvnodes = maxproc + cnt.v_page_count / 16; minvnodes = desiredvnodes / 4; mtx_init(&mountlist_mtx, "mountlist", NULL, MTX_DEF); mtx_init(&mntvnode_mtx, "mntvnode", NULL, MTX_DEF); --- //depot/user/jake/pae/src/sys/pc98/pc98/pc98gdc.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/pc98/pc98/pc98gdc.c 2003/03/16 01:30:33 @@ -392,7 +392,7 @@ } static int -gdcmmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int prot) +gdcmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { gdc_softc_t *sc; --- //depot/user/jake/pae/src/sys/pc98/pc98/syscons.c 2003/03/10 19:27:58 +++ //depot/user/jake/pae_test/src/sys/pc98/pc98/syscons.c 2003/03/16 01:30:33 @@ -3384,7 +3384,7 @@ } static int -scmmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +scmmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { scr_stat *scp; --- //depot/user/jake/pae/src/sys/pci/agp.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/pci/agp.c 2003/03/16 01:30:33 @@ -716,7 +716,7 @@ } static int -agp_mmap(dev_t kdev, vm_offset_t offset, vm_offset_t *paddr, int prot) +agp_mmap(dev_t kdev, vm_offset_t offset, vm_paddr_t *paddr, int prot) { device_t dev = KDEV2DEV(kdev); struct agp_softc *sc = device_get_softc(dev); --- //depot/user/jake/pae/src/sys/pci/meteor.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/pci/meteor.c 2003/03/16 01:30:33 @@ -2102,7 +2102,7 @@ } int -meteor_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +meteor_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { int unit; --- //depot/user/jake/pae/src/sys/pci/xrpu.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/pci/xrpu.c 2003/03/16 01:30:33 @@ -129,7 +129,7 @@ } static int -xrpu_mmap(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, int nprot) +xrpu_mmap(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot) { struct softc *sc = dev->si_drv1; if (offset >= 0x1000000) --- //depot/user/jake/pae/src/sys/powerpc/include/_types.h 2003/02/13 09:16:01 +++ //depot/user/jake/pae_test/src/sys/powerpc/include/_types.h 2003/03/17 13:44:56 @@ -102,6 +102,7 @@ typedef __uint32_t __u_register_t; typedef __uint32_t __vm_offset_t; typedef __int64_t __vm_ooffset_t; +typedef __uint32_t __vm_paddr_t; typedef __uint64_t __vm_pindex_t; typedef __uint32_t __vm_size_t; --- //depot/user/jake/pae/src/sys/sparc64/include/_types.h 2003/02/13 09:16:01 +++ //depot/user/jake/pae_test/src/sys/sparc64/include/_types.h 2003/03/17 13:44:56 @@ -89,6 +89,7 @@ typedef __uint64_t __u_register_t; typedef __uint64_t __vm_offset_t; typedef __int64_t __vm_ooffset_t; +typedef __uint64_t __vm_paddr_t; typedef __uint64_t __vm_pindex_t; typedef __uint64_t __vm_size_t; --- //depot/user/jake/pae/src/sys/sys/conf.h 2003/03/10 19:27:58 +++ //depot/user/jake/pae_test/src/sys/sys/conf.h 2003/03/16 01:30:33 @@ -154,7 +154,7 @@ typedef int d_write_t(dev_t dev, struct uio *uio, int ioflag); typedef int d_poll_t(dev_t dev, int events, struct thread *td); typedef int d_kqfilter_t(dev_t dev, struct knote *kn); -typedef int d_mmap_t(dev_t dev, vm_offset_t offset, vm_offset_t *paddr, +typedef int d_mmap_t(dev_t dev, vm_offset_t offset, vm_paddr_t *paddr, int nprot); typedef int l_open_t(dev_t dev, struct tty *tp); --- //depot/user/jake/pae/src/sys/sys/malloc.h 2003/03/10 19:27:58 +++ //depot/user/jake/pae_test/src/sys/sys/malloc.h 2003/03/15 20:36:05 @@ -103,7 +103,7 @@ /* XXX struct malloc_type is unused for contig*(). */ void contigfree(void *addr, unsigned long size, struct malloc_type *type); void *contigmalloc(unsigned long size, struct malloc_type *type, int flags, - unsigned long low, unsigned long high, unsigned long alignment, + vm_paddr_t low, vm_paddr_t high, unsigned long alignment, unsigned long boundary); void free(void *addr, struct malloc_type *type); void *malloc(unsigned long size, struct malloc_type *type, int flags); --- //depot/user/jake/pae/src/sys/sys/types.h 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/sys/types.h 2003/03/15 20:36:05 @@ -243,6 +243,7 @@ typedef __vm_offset_t vm_offset_t; typedef __vm_ooffset_t vm_ooffset_t; +typedef __vm_paddr_t vm_paddr_t; typedef __vm_pindex_t vm_pindex_t; typedef __vm_size_t vm_size_t; --- //depot/user/jake/pae/src/sys/vm/device_pager.c 2003/02/24 20:12:18 +++ //depot/user/jake/pae_test/src/sys/vm/device_pager.c 2003/03/16 01:44:35 @@ -74,7 +74,7 @@ static uma_zone_t fakepg_zone; -static vm_page_t dev_pager_getfake(vm_offset_t); +static vm_page_t dev_pager_getfake(vm_paddr_t); static void dev_pager_putfake(vm_page_t); struct pagerops devicepagerops = { @@ -107,7 +107,8 @@ d_mmap_t *mapfunc; vm_object_t object; unsigned int npages; - vm_offset_t off, paddr; + vm_paddr_t paddr; + vm_offset_t off; /* * Offset should be page aligned. @@ -202,7 +203,7 @@ int reqpage; { vm_pindex_t offset; - vm_offset_t paddr; + vm_paddr_t paddr; vm_page_t page; dev_t dev; int i, ret; @@ -262,7 +263,7 @@ static vm_page_t dev_pager_getfake(paddr) - vm_offset_t paddr; + vm_paddr_t paddr; { vm_page_t m; --- //depot/user/jake/pae/src/sys/vm/pmap.h 2003/03/15 20:40:23 +++ //depot/user/jake/pae_test/src/sys/vm/pmap.h 2003/03/15 20:43:50 @@ -61,7 +61,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $FreeBSD: src/sys/vm/pmap.h,v 1.55 2003/03/16 04:16:03 jake Exp $ + * $FreeBSD: src/sys/vm/pmap.h,v 1.54 2003/02/25 03:21:22 mux Exp $ */ /* @@ -106,12 +106,12 @@ void pmap_copy_page(vm_page_t, vm_page_t); void pmap_enter(pmap_t, vm_offset_t, vm_page_t, vm_prot_t, boolean_t); -vm_offset_t pmap_extract(pmap_t pmap, vm_offset_t va); +vm_paddr_t pmap_extract(pmap_t pmap, vm_offset_t va); void pmap_growkernel(vm_offset_t); -void pmap_init(vm_offset_t, vm_offset_t); +void pmap_init(vm_paddr_t, vm_paddr_t); boolean_t pmap_is_modified(vm_page_t m); boolean_t pmap_ts_referenced(vm_page_t m); -vm_offset_t pmap_map(vm_offset_t *, vm_offset_t, vm_offset_t, int); +vm_offset_t pmap_map(vm_offset_t *, vm_paddr_t, vm_paddr_t, int); void pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, vm_object_t object, vm_pindex_t pindex, vm_offset_t size, int pagelimit); --- //depot/user/jake/pae/src/sys/vm/vm_contig.c 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/vm/vm_contig.c 2003/03/15 20:36:05 @@ -132,14 +132,15 @@ unsigned long size, /* should be size_t here and for malloc() */ struct malloc_type *type, int flags, - unsigned long low, - unsigned long high, + vm_paddr_t low, + vm_paddr_t high, unsigned long alignment, unsigned long boundary, vm_map_t map) { int i, s, start; - vm_offset_t addr, phys, tmp_addr; + vm_paddr_t phys; + vm_offset_t addr, tmp_addr; int pass; vm_page_t pga = vm_page_array; @@ -264,8 +265,8 @@ unsigned long size, /* should be size_t here and for malloc() */ struct malloc_type *type, int flags, - unsigned long low, - unsigned long high, + vm_paddr_t low, + vm_paddr_t high, unsigned long alignment, unsigned long boundary) { @@ -288,8 +289,8 @@ vm_offset_t vm_page_alloc_contig( vm_offset_t size, - vm_offset_t low, - vm_offset_t high, + vm_paddr_t low, + vm_paddr_t high, vm_offset_t alignment) { vm_offset_t ret; --- //depot/user/jake/pae/src/sys/vm/vm_extern.h 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/vm/vm_extern.h 2003/03/15 20:36:05 @@ -80,7 +80,7 @@ void vm_forkproc(struct thread *, struct proc *, struct thread *, int); void vm_waitproc(struct proc *); int vm_mmap(vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, void *, vm_ooffset_t); -vm_offset_t vm_page_alloc_contig(vm_offset_t, vm_offset_t, vm_offset_t, vm_offset_t); +vm_offset_t vm_page_alloc_contig(vm_offset_t, vm_paddr_t, vm_paddr_t, vm_offset_t); void vm_set_page_size(void); struct vmspace *vmspace_alloc(vm_offset_t, vm_offset_t); struct vmspace *vmspace_fork(struct vmspace *); --- //depot/user/jake/pae/src/sys/vm/vm_fault.c 2003/03/10 19:27:58 +++ //depot/user/jake/pae_test/src/sys/vm/vm_fault.c 2003/03/15 20:36:05 @@ -981,7 +981,8 @@ vm_map_t map; vm_offset_t start, end; { - vm_offset_t va, pa; + vm_paddr_t pa; + vm_offset_t va; pmap_t pmap; pmap = vm_map_pmap(map); @@ -993,7 +994,7 @@ */ for (va = start; va < end; va += PAGE_SIZE) { pa = pmap_extract(pmap, va); - if (pa != (vm_offset_t) 0) { + if (pa != 0) { pmap_change_wiring(pmap, va, FALSE); vm_page_lock_queues(); vm_page_unwire(PHYS_TO_VM_PAGE(pa), 1); --- //depot/user/jake/pae/src/sys/vm/vm_object.c 2003/03/07 23:00:26 +++ //depot/user/jake/pae_test/src/sys/vm/vm_object.c 2003/03/15 20:36:05 @@ -1981,7 +1981,7 @@ TAILQ_FOREACH(object, &vm_object_list, object_list) { vm_pindex_t idx, fidx; vm_pindex_t osize; - vm_offset_t pa = -1, padiff; + vm_paddr_t pa = -1, padiff; int rcount; vm_page_t m; --- //depot/user/jake/pae/src/sys/vm/vm_page.c 2003/03/17 12:53:57 +++ //depot/user/jake/pae_test/src/sys/vm/vm_page.c 2003/03/17 12:56:29 @@ -163,18 +163,20 @@ vm_page_startup(vm_offset_t starta, vm_offset_t enda, vm_offset_t vaddr) { vm_offset_t mapped; - vm_size_t npages, page_range; - vm_offset_t new_end; + vm_size_t npages; + vm_paddr_t page_range; + vm_paddr_t new_end; int i; - vm_offset_t pa; + vm_paddr_t pa; int nblocks; - vm_offset_t last_pa; + vm_paddr_t last_pa; /* the biggest memory array is the second group of pages */ - vm_offset_t end; - vm_offset_t biggestone, biggestsize; + vm_paddr_t end; + vm_paddr_t biggestsize; + int biggestone; - vm_offset_t total; + vm_paddr_t total; vm_size_t bootpages; total = 0; @@ -189,7 +191,7 @@ } for (i = 0; phys_avail[i + 1]; i += 2) { - vm_size_t size = phys_avail[i + 1] - phys_avail[i]; + vm_paddr_t size = phys_avail[i + 1] - phys_avail[i]; if (size > biggestsize) { biggestone = i; --- //depot/user/jake/pae/src/sys/vm/vm_page.h 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/vm/vm_page.h 2003/03/15 20:36:05 @@ -116,7 +116,7 @@ vm_object_t object; /* which object am I in (O,P)*/ vm_pindex_t pindex; /* offset into object (O,P) */ - vm_offset_t phys_addr; /* physical address of page */ + vm_paddr_t phys_addr; /* physical address of page */ struct md_page md; /* machine dependant stuff */ u_short queue; /* page queue index */ u_short flags, /* see below */ @@ -335,7 +335,7 @@ void vm_page_wakeup(vm_page_t m); void vm_pageq_init(void); -vm_page_t vm_pageq_add_new_page(vm_offset_t pa); +vm_page_t vm_pageq_add_new_page(vm_paddr_t pa); void vm_pageq_enqueue(int queue, vm_page_t m); void vm_pageq_remove_nowakeup(vm_page_t m); void vm_pageq_remove(vm_page_t m); --- //depot/user/jake/pae/src/sys/vm/vm_pageq.c 2003/02/19 11:03:52 +++ //depot/user/jake/pae_test/src/sys/vm/vm_pageq.c 2003/03/15 20:36:05 @@ -90,7 +90,7 @@ * Must be called at splhigh(). */ vm_page_t -vm_pageq_add_new_page(vm_offset_t pa) +vm_pageq_add_new_page(vm_paddr_t pa) { vm_page_t m; --- //depot/user/jake/pae/src/sys/x86_64/include/_types.h 2003/01/27 16:15:02 +++ //depot/user/jake/pae_test/src/sys/x86_64/include/_types.h 2003/03/17 13:44:56 @@ -87,6 +87,7 @@ typedef __uint64_t __u_register_t; typedef __uint64_t __vm_offset_t; typedef __int64_t __vm_ooffset_t; +typedef __uint64_t __vm_paddr_t; typedef __uint64_t __vm_pindex_t; typedef __uint64_t __vm_size_t;