Changeset View
Changeset View
Standalone View
Standalone View
user/alc/PQ_LAUNDRY/sys/mips/mips/uma_machdep.c
Show First 20 Lines • Show All 47 Lines • ▼ Show 20 Lines | uma_small_alloc(uma_zone_t zone, vm_size_t bytes, u_int8_t *flags, int wait) | ||||
int pflags; | int pflags; | ||||
void *va; | void *va; | ||||
*flags = UMA_SLAB_PRIV; | *flags = UMA_SLAB_PRIV; | ||||
pflags = malloc2vm_flags(wait) | VM_ALLOC_WIRED; | pflags = malloc2vm_flags(wait) | VM_ALLOC_WIRED; | ||||
for (;;) { | for (;;) { | ||||
m = vm_page_alloc_freelist(VM_FREELIST_DIRECT, pflags); | m = vm_page_alloc_freelist(VM_FREELIST_DIRECT, pflags); | ||||
#ifndef __mips_n64 | |||||
if (m == NULL && vm_page_reclaim_contig(pflags, 1, | |||||
0, MIPS_KSEG0_LARGEST_PHYS, PAGE_SIZE, 0)) | |||||
continue; | |||||
#endif | |||||
if (m == NULL) { | if (m == NULL) { | ||||
if (wait & M_NOWAIT) | if (wait & M_NOWAIT) | ||||
return (NULL); | return (NULL); | ||||
else | else | ||||
pmap_grow_direct_page_cache(); | VM_WAIT; | ||||
} else | } else | ||||
break; | break; | ||||
} | } | ||||
pa = VM_PAGE_TO_PHYS(m); | pa = VM_PAGE_TO_PHYS(m); | ||||
va = (void *)MIPS_PHYS_TO_DIRECT(pa); | va = (void *)MIPS_PHYS_TO_DIRECT(pa); | ||||
if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) | if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0) | ||||
bzero(va, PAGE_SIZE); | bzero(va, PAGE_SIZE); | ||||
Show All 15 Lines |