pmap_limits
pmap_limits.avail_start = ptoa(uvm_physseg_get_start(uvm_physseg_get_first()));
pmap_limits.avail_end = ptoa(uvm_physseg_get_end(uvm_physseg_get_last()));
pmap_limits.virtual_start = vstart;
pmap_limits.virtual_end = vend;
if (va >= pmap_limits.virtual_end)
segs, nsegs, rsegs, flags, pmap_limits.avail_start,
trunc_page(pmap_limits.avail_end));
high = pmap_limits.avail_end - PAGE_SIZE;
if (curaddr < pmap_limits.avail_start || curaddr >= high) {
return pmap_limits.avail_end > ISA_DMA_BOUNCE_THRESHOLD;
if (pmap_limits.avail_end > ISA_DMA_BOUNCE_THRESHOLD)
high = pmap_limits.avail_end - 1;
pmap_limits.avail_start /*low*/,
pmap_limits.avail_end - 1 /*high*/);
iospace = pmap_limits.virtual_start;
pmap_limits.virtual_start += iospace_size;
pmap_limits.avail_start /*low*/,
pmap_limits.avail_end - PAGE_SIZE /*high*/);
paddr_t high = pmap_limits.avail_end - PAGE_SIZE;
segs, nsegs, rsegs, flags, pmap_limits.avail_start, high));
high = high<(pmap_limits.avail_end - PAGE_SIZE)? high: (pmap_limits.avail_end - PAGE_SIZE);
low = low>pmap_limits.avail_start? low: pmap_limits.avail_start;
#define avail_start pmap_limits.avail_start
#define avail_end pmap_limits.avail_end
high = (pmap_limits.avail_end < VRDMAAU_BOUNCE_THRESHOLD ?
pmap_limits.avail_end : VRDMAAU_BOUNCE_THRESHOLD) - PAGE_SIZE;
pmap_limits.avail_start, high);
#define _BUS_AVAIL_END (pmap_limits.avail_end - 1)
if (v < MIPS_PHYS_TO_XKPHYS_CACHED(pmap_limits.avail_end +
if (v < MIPS_PHYS_TO_KSEG0(pmap_limits.avail_end +
pmap_limits.avail_start = ptoa(uvm_physseg_get_start(uvm_physseg_get_first()));
pmap_limits.avail_end = ptoa(uvm_physseg_get_end(uvm_physseg_get_last()));
pmap_limits.virtual_end = pmap_limits.virtual_start + (vaddr_t)sysmap_size * NBPG;
if (pmap_limits.virtual_end > VM_MAX_KERNEL_ADDRESS
|| pmap_limits.virtual_end < VM_MIN_KERNEL_ADDRESS) {
pmap_limits.virtual_end, VM_MAX_KERNEL_ADDRESS);
pmap_limits.virtual_end = VM_MAX_KERNEL_ADDRESS;
pmap_curmaxkvaddr = pmap_limits.virtual_end;
|| pmap_limits.avail_end > MIPS_KSEG1_START - MIPS_KSEG0_START
const paddr_t high = pmap_limits.avail_end;
if (!system && high < pmap_limits.avail_end)
error = uvm_pglistalloc(USPACE, pmap_limits.avail_start, high,
KASSERTMSG(pa >= pmap_limits.avail_start,
pa, pmap_limits.avail_start);
KASSERTMSG(pa < pmap_limits.avail_end,
pa, pmap_limits.avail_end);
segs, nsegs, rsegs, flags, pmap_limits.avail_start,
trunc_page(pmap_limits.avail_end));
pmap_limits.avail_start /*low*/,
pmap_limits.avail_end - 1 /*high*/));
#define avail_start pmap_limits.avail_start
#define avail_end pmap_limits.avail_end
pmap_limits.avail_start /*low*/,
pmap_limits.avail_end - 1 /*high*/));
pmap_limits.avail_start /*low*/,
pmap_limits.avail_end - 1 /*high*/));
pmap_limits.avail_start = uvm_physseg_get_start(uvm_physseg_get_first()) << PGSHIFT;
pmap_limits.avail_end = uvm_physseg_get_end(uvm_physseg_get_last()) << PGSHIFT;
pmap_limits.virtual_end = VM_MAX_KERNEL_ADDRESS;
pmap_limits.virtual_end = VM_MIN_KERNEL_ADDRESS
pmap_curmaxkvaddr = pmap_limits.virtual_end;
return va >= pmap_limits.avail_end
pmap_limits.avail_start = ptoa(uvm_physseg_get_start(uvm_physseg_get_first()));
pmap_limits.avail_end = ptoa(uvm_physseg_get_end(uvm_physseg_get_last()));
pmap_limits.virtual_start = vstart;
pmap_limits.virtual_end = vend;
error = uvm_pglistalloc(USPACE, pmap_limits.avail_start,
pmap_limits.avail_end, USPACE_ALIGN, 0, &pglist, 1, 1);
KASSERTMSG(pa >= pmap_limits.avail_start,
pa, pmap_limits.avail_start);
KASSERTMSG(pa + USPACE <= pmap_limits.avail_end,
pa, pmap_limits.avail_end);
pmap_limits.avail_start, pmap_limits.avail_end, PAGE_SIZE, 0,
pmap_limits.virtual_end);
pmap_limits.virtual_end);
if (va >= pmap_limits.virtual_end)
struct pmap_limits pmap_limits = { /* VA and PA limits */
if (eva >= pmap_limits.virtual_end)
*vstartp = pmap_limits.virtual_start;
*vendp = pmap_limits.virtual_end;
extern struct pmap_limits pmap_limits;