BSD 4_4_Lite2 release
[unix-history] / usr / src / sys / vm / vm_page.h
index 193db54..f9bf115 100644 (file)
@@ -1,13 +1,39 @@
 /* 
 /* 
- * Copyright (c) 1991 Regents of the University of California.
- * All rights reserved.
+ * Copyright (c) 1991, 1993
+ *     The Regents of the University of California.  All rights reserved.
  *
  * This code is derived from software contributed to Berkeley by
  * The Mach Operating System project at Carnegie-Mellon University.
  *
  *
  * This code is derived from software contributed to Berkeley by
  * The Mach Operating System project at Carnegie-Mellon University.
  *
- * %sccs.include.redist.c%
- *
- *     @(#)vm_page.h   7.11 (Berkeley) %G%
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *     @(#)vm_page.h   8.3 (Berkeley) 1/9/95
  *
  *
  * Copyright (c) 1987, 1990 Carnegie-Mellon University.
  *
  *
  * Copyright (c) 1987, 1990 Carnegie-Mellon University.
  *     queues (P).
  */
 
  *     queues (P).
  */
 
+TAILQ_HEAD(pglist, vm_page);
+
 struct vm_page {
 struct vm_page {
-       queue_chain_t   pageq;          /* queue info for FIFO
-                                        * queue or free list (P) */
-       queue_chain_t   hashq;          /* hash table links (O)*/
-       queue_chain_t   listq;          /* all pages in same object (O)*/
+       TAILQ_ENTRY(vm_page)    pageq;          /* queue info for FIFO
+                                                * queue or free list (P) */
+       TAILQ_ENTRY(vm_page)    hashq;          /* hash table links (O)*/
+       TAILQ_ENTRY(vm_page)    listq;          /* pages in same object (O)*/
 
 
-       vm_object_t     object;         /* which object am I in (O,P)*/
-       vm_offset_t     offset;         /* offset into that object (O,P) */
+       vm_object_t             object;         /* which object am I in (O,P)*/
+       vm_offset_t             offset;         /* offset into object (O,P) */
 
 
-       u_short         wire_count;     /* number wired down maps use me? (P) */
-       u_short         flags;          /* see below */
+       u_short                 wire_count;     /* wired down maps refs (P) */
+       u_short                 flags;          /* see below */
 
 
-       vm_offset_t     phys_addr;      /* physical address of page */
+       vm_offset_t             phys_addr;      /* physical address of page */
 };
 
 /*
 };
 
 /*
@@ -134,11 +162,11 @@ struct vm_page {
  */
 
 extern
  */
 
 extern
-queue_head_t   vm_page_queue_free;     /* memory free queue */
+struct pglist  vm_page_queue_free;     /* memory free queue */
 extern
 extern
-queue_head_t   vm_page_queue_active;   /* active memory queue */
+struct pglist  vm_page_queue_active;   /* active memory queue */
 extern
 extern
-queue_head_t   vm_page_queue_inactive; /* inactive memory queue */
+struct pglist  vm_page_queue_inactive; /* inactive memory queue */
 
 extern
 vm_page_t      vm_page_array;          /* First resident page in table */
 
 extern
 vm_page_t      vm_page_array;          /* First resident page in table */
@@ -174,14 +202,14 @@ simple_lock_data_t        vm_page_queue_free_lock;
 
 #define PAGE_ASSERT_WAIT(m, interruptible)     { \
                                (m)->flags |= PG_WANTED; \
 
 #define PAGE_ASSERT_WAIT(m, interruptible)     { \
                                (m)->flags |= PG_WANTED; \
-                               assert_wait((int) (m), (interruptible)); \
+                               assert_wait((m), (interruptible)); \
                        }
 
 #define PAGE_WAKEUP(m) { \
                                (m)->flags &= ~PG_BUSY; \
                                if ((m)->flags & PG_WANTED) { \
                                        (m)->flags &= ~PG_WANTED; \
                        }
 
 #define PAGE_WAKEUP(m) { \
                                (m)->flags &= ~PG_BUSY; \
                                if ((m)->flags & PG_WANTED) { \
                                        (m)->flags &= ~PG_WANTED; \
-                                       thread_wakeup((int) (m)); \
+                                       thread_wakeup((m)); \
                                } \
                        }
 
                                } \
                        }