-/*
- * Allocate wired-down (non-paged) pages in kernel virtual memory.
- */
-caddr_t
-wmemall(pmemall, n)
- int (*pmemall)(), n;
-{
- register int npg;
- register caddr_t va;
- register int a;
-
- npg = clrnd(btoc(n));
- a = rmalloc(kernelmap, (long)npg);
- if (a == 0)
- return (0);
- if ((*pmemall)(&Usrptmap[a], npg, &proc[0], CSYS) == 0) {
- rmfree(kernelmap, (long)npg, (long)a);
- return (0);
- }
- va = (caddr_t) kmxtob(a);
- vmaccess(&Usrptmap[a], va, npg);
- return (va);
-}
-
-/*
- * Allocate wired-down (non-paged) pages in kernel virtual memory.
- * (and clear them)
- */
-caddr_t
-zmemall(pmemall, n)
- int (*pmemall)(), n;
-{
- register int npg;
- register caddr_t va;
- register int a;
-
- npg = clrnd(btoc(n));
- a = rmalloc(kernelmap, (long)npg);
- if (a == 0)
- return (0);
- if ((*pmemall)(&Usrptmap[a], npg, &proc[0], CSYS) == 0) {
- rmfree(kernelmap, (long)npg, (long)a);
- return (0);
- }
- va = (caddr_t) kmxtob(a);
- vmaccess(&Usrptmap[a], va, npg);
- while (--npg >= 0)
- clearseg((unsigned)(PG_PFNUM & *(int *)&Usrptmap[a++]));
- return (va);
-}
-
-wmemfree(va, n)
- caddr_t va;
- int n;
-{
- register int a, npg;
-
- a = btokmx((struct pte *) va);
- npg = clrnd(btoc(n));
- (void) memfree(&Usrptmap[a], npg, 0);
- rmfree(kernelmap, (long)npg, (long)a);
-}
-