* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * @(#)pmap.c 8.1 (Berkeley) 6/10/93
+ * @(#)pmap.c 8.4 (Berkeley) 1/26/94
*/
/*
#include <sys/malloc.h>
#include <sys/user.h>
#include <sys/buf.h>
+#ifdef SYSVSHM
+#include <sys/shm.h>
+#endif
#include <vm/vm_kern.h>
#include <vm/vm_page.h>
(name) = (type *)firstaddr; firstaddr = (vm_offset_t)((name)+(num))
/*
* Allocate a PTE table for the kernel.
- * The first '256' comes from PAGER_MAP_SIZE in vm_pager_init().
+ * The '1024' comes from PAGER_MAP_SIZE in vm_pager_init().
* This should be kept in sync.
* We also reserve space for kmem_alloc_pageable() for vm_fork().
*/
Sysmapsize = (VM_KMEM_SIZE + VM_MBUF_SIZE + VM_PHYS_SIZE +
- nbuf * MAXBSIZE + 16 * NCARGS) / NBPG + 256 + 256;
+ nbuf * MAXBSIZE + 16 * NCARGS) / NBPG + 1024 + 256;
+#ifdef SYSVSHM
+ Sysmapsize += shminfo.shmall;
+#endif
valloc(Sysmap, pt_entry_t, Sysmapsize);
#ifdef ATTR
valloc(pmap_attributes, char, physmem);
* Therefore, when we allocate a new PID, we just take the next number. When
* we run out of numbers, we flush the TLB, increment the generation count
* and start over. PID zero is reserved for kernel use.
- * This is called only by swtch().
+ * This is called only by switch().
*/
int
pmap_alloc_tlbpid(p)
spl = splimp(); /* XXX */
simple_lock(&vm_page_queue_free_lock);
- if (queue_empty(&vm_page_queue_free)) {
+ if (vm_page_queue_free.tqh_first == NULL) {
simple_unlock(&vm_page_queue_free_lock);
splx(spl);
return (NULL);
}
- queue_remove_first(&vm_page_queue_free, mem, vm_page_t, pageq);
+ mem = vm_page_queue_free.tqh_first;
+ TAILQ_REMOVE(&vm_page_queue_free, mem, pageq);
cnt.v_free_count--;
simple_unlock(&vm_page_queue_free_lock);
{
if (mem->flags & PG_ACTIVE) {
- queue_remove(&vm_page_queue_active, mem, vm_page_t, pageq);
+ TAILQ_REMOVE(&vm_page_queue_active, mem, pageq);
mem->flags &= ~PG_ACTIVE;
cnt.v_active_count--;
}
if (mem->flags & PG_INACTIVE) {
- queue_remove(&vm_page_queue_inactive, mem, vm_page_t, pageq);
+ TAILQ_REMOVE(&vm_page_queue_inactive, mem, pageq);
mem->flags &= ~PG_INACTIVE;
cnt.v_inactive_count--;
}
spl = splimp();
simple_lock(&vm_page_queue_free_lock);
- queue_enter(&vm_page_queue_free, mem, vm_page_t, pageq);
+ TAILQ_INSERT_TAIL(&vm_page_queue_free, mem, pageq);
cnt.v_free_count++;
simple_unlock(&vm_page_queue_free_lock);