typo
[unix-history] / usr / src / sys / kern / subr_rmap.c.sav
index b6abab1..034a6a2 100644 (file)
@@ -1,13 +1,19 @@
-/*     subr_rmap.c.sav 4.8     82/10/21        */
+/*
+ * Copyright (c) 1982, 1986 Regents of the University of California.
+ * All rights reserved.  The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ *
+ *     @(#)subr_rmap.c.sav     7.1 (Berkeley) %G%
+ */
 
 
-#include "../h/param.h"
-#include "../h/systm.h"
-#include "../h/map.h"
-#include "../h/dir.h"
-#include "../h/user.h"
-#include "../h/proc.h"
-#include "../h/text.h"
-#include "../h/kernel.h"
+#include "param.h"
+#include "systm.h"
+#include "map.h"
+#include "dir.h"
+#include "user.h"
+#include "proc.h"
+#include "text.h"
+#include "kernel.h"
 
 /*
  * Resource map handling routines.
 
 /*
  * Resource map handling routines.
@@ -89,7 +95,7 @@ rmalloc(mp, size)
        register struct mapent *bp;
        swblk_t first, rest;
 
        register struct mapent *bp;
        swblk_t first, rest;
 
-       if (size <= 0 || mp == swapmap && size > DMMAX)
+       if (size <= 0 || mp == swapmap && size > dmmax)
                panic("rmalloc");
        /*
         * Search for a piece of the resource map which has enough
                panic("rmalloc");
        /*
         * Search for a piece of the resource map which has enough
@@ -102,8 +108,8 @@ rmalloc(mp, size)
                         * then have to respect interleaving
                         * boundaries.
                         */
                         * then have to respect interleaving
                         * boundaries.
                         */
-                       if (mp == swapmap &&
-                           (first = DMMAX - bp->m_addr%DMMAX) < bp->m_size) {
+                       if (mp == swapmap && nswdev > 1 &&
+                           (first = dmmax - bp->m_addr%dmmax) < bp->m_size) {
                                if (bp->m_size - first < size)
                                        continue;
                                addr = bp->m_addr + first;
                                if (bp->m_size - first < size)
                                        continue;
                                addr = bp->m_addr + first;
@@ -320,7 +326,7 @@ rmget(mp, size, addr)
                         */
                        for (bp2=bp; bp2->m_size; bp2++)
                                ;
                         */
                        for (bp2=bp; bp2->m_size; bp2++)
                                ;
-                       if (bp2 == mp->m_limit)
+                       if (bp2 + 1 >= mp->m_limit)
                                return (0);
                        while (bp2 > bp) {
                                (bp2+1)->m_addr = bp2->m_addr;
                                return (0);
                        while (bp2 > bp) {
                                (bp2+1)->m_addr = bp2->m_addr;