aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/vm_map.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/vm/vm_map.h')
-rw-r--r--sys/vm/vm_map.h75
1 files changed, 50 insertions, 25 deletions
diff --git a/sys/vm/vm_map.h b/sys/vm/vm_map.h
index 7066bd054765..7dc7ee020a75 100644
--- a/sys/vm/vm_map.h
+++ b/sys/vm/vm_map.h
@@ -34,7 +34,7 @@
* SUCH DAMAGE.
*
* from: @(#)vm_map.h 7.3 (Berkeley) 4/21/91
- * $Id: vm_map.h,v 1.2 1993/10/16 16:20:36 rgrimes Exp $
+ * $Id: vm_map.h,v 1.5 1994/01/17 09:33:43 davidg Exp $
*/
/*
@@ -100,6 +100,7 @@ typedef union vm_map_object vm_map_object_t;
* and user-exported inheritance and protection information.
* Also included is control information for virtual copy operations.
*/
+
struct vm_map_entry {
struct vm_map_entry *prev; /* previous entry */
struct vm_map_entry *next; /* next entry */
@@ -107,11 +108,11 @@ struct vm_map_entry {
vm_offset_t end; /* end address */
union vm_map_object object; /* object I point to */
vm_offset_t offset; /* offset into object */
- boolean_t is_a_map; /* Is "object" a map? */
- boolean_t is_sub_map; /* Is "object" a submap? */
+ unsigned char is_a_map:1, /* Is "object" a map? */
+ is_sub_map:1, /* Is "object" a submap? */
/* Only in sharing maps: */
- boolean_t copy_on_write; /* is data copy-on-write */
- boolean_t needs_copy; /* does object need to be copied */
+ copy_on_write:1,/* is data copy-on-write */
+ needs_copy:1;/* does object need to be copied */
/* Only in task maps: */
vm_prot_t protection; /* protection code */
vm_prot_t max_protection; /* maximum protection */
@@ -176,22 +177,50 @@ typedef struct {
/*
* Exported procedures that operate on vm_map_t.
*/
+extern int vm_map_pageable(vm_map_t, vm_offset_t, vm_offset_t, boolean_t);
+extern void vm_map_startup(void);
+struct pmap; struct vm_object;
+extern vm_map_t vm_map_create(struct pmap *, vm_offset_t, vm_offset_t,
+ boolean_t);
+extern void vm_map_init(struct vm_map *, vm_offset_t, vm_offset_t, boolean_t);
+extern vm_map_entry_t vm_map_entry_create(vm_map_t);
+extern void vm_map_entry_dispose(vm_map_t, vm_map_entry_t);
+extern void vm_map_reference(vm_map_t);
+extern void vm_map_deallocate(vm_map_t);
+extern int vm_map_insert(vm_map_t, struct vm_object *, vm_offset_t, vm_offset_t,
+ vm_offset_t);
+extern boolean_t vm_map_lookup_entry(vm_map_t, vm_offset_t, vm_map_entry_t *);
+extern int vm_map_find(vm_map_t, struct vm_object *, vm_offset_t, vm_offset_t*,
+ vm_size_t, boolean_t);
+extern void vm_map_simplify_entry(vm_map_t, vm_map_entry_t);
+extern int vm_map_submap(vm_map_t, vm_offset_t, vm_offset_t, vm_map_t);
+extern int vm_map_protect(vm_map_t, vm_offset_t, vm_offset_t, vm_prot_t,
+ boolean_t);
+extern int vm_map_inherit(vm_map_t, vm_offset_t, vm_offset_t, vm_inherit_t);
+extern int vm_map_pageable(vm_map_t, vm_offset_t, vm_offset_t, boolean_t);
+extern void vm_map_entry_unwire(vm_map_t, vm_map_entry_t);
+extern void vm_map_entry_delete(vm_map_t, vm_map_entry_t);
+extern int vm_map_delete(vm_map_t, vm_offset_t, vm_offset_t);
+extern int vm_map_remove(vm_map_t, vm_offset_t, vm_offset_t);
+extern boolean_t vm_map_check_protection(vm_map_t, vm_offset_t, vm_offset_t,
+ vm_prot_t);
+extern void vm_map_copy_entry(vm_map_t, vm_map_t, vm_map_entry_t,
+ vm_map_entry_t);
+extern int vm_map_copy(vm_map_t, vm_map_t, vm_offset_t, vm_size_t, vm_offset_t,
+ boolean_t, boolean_t);
+extern int vm_map_lookup(vm_map_t *, vm_offset_t, vm_prot_t,
+ vm_map_entry_t *, struct vm_object **, vm_offset_t *,
+ vm_prot_t *, boolean_t *, boolean_t *);
+extern void vm_map_lookup_done(vm_map_t, vm_map_entry_t);
+extern void vm_map_simplify(vm_map_t, vm_offset_t);
+extern void vm_map_print(vm_map_t, boolean_t); /* f defined(DEBUG) || NDDB>0 */
+
+extern int vm_fault(struct vm_map *, vm_offset_t, vm_prot_t, boolean_t);
+extern void vm_fault_wire(struct vm_map *, vm_offset_t, vm_offset_t);
+extern void vm_fault_unwire(struct vm_map *, vm_offset_t, vm_offset_t);
+extern void vm_fault_copy_entry(vm_map_t, vm_map_t, vm_map_entry_t,
+ vm_map_entry_t);
-void vm_map_init();
-vm_map_t vm_map_create();
-void vm_map_deallocate();
-void vm_map_reference();
-int vm_map_find();
-int vm_map_remove();
-int vm_map_lookup();
-void vm_map_lookup_done();
-int vm_map_protect();
-int vm_map_inherit();
-int vm_map_copy();
-void vm_map_print();
-void vm_map_copy_entry();
-boolean_t vm_map_verify();
-void vm_map_verify_done();
/*
* Functions implemented as macros
@@ -203,10 +232,6 @@ void vm_map_verify_done();
/* XXX: number of kernel maps and entries to statically allocate */
#define MAX_KMAP 10
-#ifdef OMIT
-#define MAX_KMAPENT 500
-#else /* !OMIT*/
-#define MAX_KMAPENT 1000 /* 15 Aug 92*/
-#endif /* !OMIT*/
+#define MAX_KMAPENT 128
#endif _VM_MAP_