expand parameters to functions; READDIR drops eofflag;
[unix-history] / usr / src / sys / vm / pmap.h
index 3360e95..bfb8cb1 100644 (file)
@@ -1,16 +1,39 @@
 /* 
 /* 
- * Copyright (c) 1985, Avadis Tevanian, Jr.
- * Copyright (c) 1987 Carnegie-Mellon University
  * Copyright (c) 1991 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.
  *
  * Copyright (c) 1991 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.
  *
- * The CMU software License Agreement specifies the terms and conditions
- * for use and redistribution.
+ * %sccs.include.redist.c%
  *
  *
- *     @(#)pmap.h      7.2 (Berkeley) %G%
+ *     @(#)pmap.h      7.10 (Berkeley) %G%
+ *
+ *
+ * Copyright (c) 1987, 1990 Carnegie-Mellon University.
+ * All rights reserved.
+ *
+ * Author: Avadis Tevanian, Jr.
+ * 
+ * Permission to use, copy, modify and distribute this software and
+ * its documentation is hereby granted, provided that both the copyright
+ * notice and this permission notice appear in all copies of the
+ * software, derivative works or modified versions, and any portions
+ * thereof, and that both notices appear in supporting documentation.
+ * 
+ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 
+ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND 
+ * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+ * 
+ * Carnegie Mellon requests users of this software to return to
+ *
+ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
+ *  School of Computer Science
+ *  Carnegie Mellon University
+ *  Pittsburgh PA 15213-3890
+ *
+ * any improvements or extensions that they make and grant Carnegie the
+ * rights to redistribute these changes.
  */
 
 /*
  */
 
 /*
 #ifndef        _PMAP_VM_
 #define        _PMAP_VM_
 
 #ifndef        _PMAP_VM_
 #define        _PMAP_VM_
 
+/*
+ * Each machine dependent implementation is expected to
+ * keep certain statistics.  They may do this anyway they
+ * so choose, but are expected to return the statistics
+ * in the following structure.
+ */
+struct pmap_statistics {
+       long            resident_count; /* # of pages mapped (total)*/
+       long            wired_count;    /* # of pages wired */
+};
+typedef struct pmap_statistics *pmap_statistics_t;
+
 #include <machine/pmap.h>
 
 #ifdef KERNEL
 #include <machine/pmap.h>
 
 #ifdef KERNEL
-void           pmap_bootstrap();
-void           pmap_init();
-void           pmap_pinit __P((struct pmap *pmap));
-void           pmap_release __P((struct pmap *pmap));
-vm_offset_t    pmap_map();
-pmap_t         pmap_create();
-pmap_t         pmap_kernel();
-void           pmap_destroy();
-void           pmap_reference();
-void           pmap_remove();
-void           pmap_remove_all();
-void           pmap_copy_on_write();
-void           pmap_protect();
-void           pmap_enter();
-vm_offset_t    pmap_extract();
-void           pmap_update();
-void           pmap_collect();
-void           pmap_activate();
-void           pmap_deactivate();
-void           pmap_copy();
-void           pmap_statistics();
-void           pmap_clear_reference();
-boolean_t      pmap_is_referenced();
-
-void           pmap_redzone();
-boolean_t      pmap_access();
-
-extern pmap_t  kernel_pmap;
+__BEGIN_DECLS
+void           *pmap_bootstrap_alloc __P((int));
+void            pmap_bootstrap( /* machine dependent */ );
+void            pmap_change_wiring __P((pmap_t, vm_offset_t, boolean_t));
+void            pmap_clear_modify __P((vm_offset_t pa));
+void            pmap_clear_reference __P((vm_offset_t pa));
+void            pmap_collect __P((pmap_t));
+void            pmap_copy __P((pmap_t,
+                   pmap_t, vm_offset_t, vm_size_t, vm_offset_t));
+void            pmap_copy_page __P((vm_offset_t, vm_offset_t));
+pmap_t          pmap_create __P((vm_size_t));
+void            pmap_destroy __P((pmap_t));
+void            pmap_enter __P((pmap_t,
+                   vm_offset_t, vm_offset_t, vm_prot_t, boolean_t));
+vm_offset_t     pmap_extract __P((pmap_t, vm_offset_t));
+void            pmap_init __P((vm_offset_t, vm_offset_t));
+boolean_t       pmap_is_modified __P((vm_offset_t pa));
+boolean_t       pmap_is_referenced __P((vm_offset_t pa));
+vm_offset_t     pmap_map __P((vm_offset_t, vm_offset_t, vm_offset_t, int));
+void            pmap_page_protect __P((vm_offset_t, vm_prot_t));
+void            pmap_pageable __P((pmap_t,
+                   vm_offset_t, vm_offset_t, boolean_t));
+vm_offset_t     pmap_phys_address __P((int));
+void            pmap_pinit __P((pmap_t));
+void            pmap_protect __P((pmap_t,
+                   vm_offset_t, vm_offset_t, vm_prot_t));
+void            pmap_reference __P((pmap_t));
+void            pmap_release __P((pmap_t));
+void            pmap_remove __P((pmap_t, vm_offset_t, vm_offset_t));
+void            pmap_update __P((void));
+void            pmap_zero_page __P((vm_offset_t));
+__END_DECLS
 #endif
 
 #endif
 
-#endif _PMAP_VM_
+#endif /* _PMAP_VM_ */