kernel - simplify vm pager ops, add pre-faulting for zero-fill pages.
[dragonfly.git] / sys / vm / vm_map.h
index 6de62cf..e33e98c 100644 (file)
@@ -148,11 +148,10 @@ struct vm_map_entry {
        vm_prot_t max_protection;       /* maximum protection */
        vm_inherit_t inheritance;       /* inheritance */
        int wired_count;                /* can be paged if = 0 */
-       vm_pindex_t lastr;              /* last read */
 };
 
 #define MAP_ENTRY_NOSYNC               0x0001
-#define MAP_ENTRY_UNUSED0002           0x0002
+#define MAP_ENTRY_STACK                        0x0002
 #define MAP_ENTRY_COW                  0x0004
 #define MAP_ENTRY_NEEDS_COPY           0x0008
 #define MAP_ENTRY_NOFAULT              0x0010
@@ -411,6 +410,7 @@ vmspace_resident_count(struct vmspace *vmspace)
 #define MAP_PREFAULT           0x0008
 #define MAP_PREFAULT_PARTIAL   0x0010
 #define MAP_DISABLE_SYNCER     0x0020
+#define MAP_IS_STACK           0x0040
 #define MAP_DISABLE_COREDUMP   0x0100
 #define MAP_PREFAULT_MADVISE   0x0200  /* from (user) madvise request */
 
@@ -420,6 +420,7 @@ vmspace_resident_count(struct vmspace *vmspace)
 #define VM_FAULT_NORMAL                0x00    /* Nothing special */
 #define VM_FAULT_CHANGE_WIRING 0x01    /* Change the wiring as appropriate */
 #define VM_FAULT_USER_WIRE     0x02    /* Likewise, but for user purposes */
+#define VM_FAULT_BURST         0x04    /* Burst fault can be done */
 #define VM_FAULT_DIRTY         0x08    /* Dirty the page */
 #define VM_FAULT_WIRE_MASK     (VM_FAULT_CHANGE_WIRING|VM_FAULT_USER_WIRE)
 
@@ -444,7 +445,8 @@ int vm_map_find (vm_map_t, vm_object_t, vm_ooffset_t,
                 vm_maptype_t,
                 vm_prot_t, vm_prot_t, 
                 int);
-int vm_map_findspace (vm_map_t, vm_offset_t, vm_size_t, vm_offset_t, vm_offset_t *);
+int vm_map_findspace (vm_map_t, vm_offset_t, vm_size_t, vm_offset_t,
+                     int, vm_offset_t *);
 int vm_map_inherit (vm_map_t, vm_offset_t, vm_offset_t, vm_inherit_t);
 void vm_map_init (struct vm_map *, vm_offset_t, vm_offset_t, pmap_t);
 int vm_map_insert (vm_map_t, int *, vm_object_t, vm_ooffset_t,
@@ -467,9 +469,11 @@ int vm_map_madvise (vm_map_t, vm_offset_t, vm_offset_t, int, off_t);
 void vm_map_simplify_entry (vm_map_t, vm_map_entry_t, int *);
 void vm_init2 (void);
 int vm_uiomove (vm_map_t, vm_object_t, off_t, int, vm_offset_t, int *);
-int vm_map_stack (vm_map_t, vm_offset_t, vm_size_t, vm_prot_t, vm_prot_t, int);
+int vm_map_stack (vm_map_t, vm_offset_t, vm_size_t, int,
+                 vm_prot_t, vm_prot_t, int);
 int vm_map_growstack (struct proc *p, vm_offset_t addr);
 int vmspace_swap_count (struct vmspace *vmspace);
+int vmspace_anonymous_count (struct vmspace *vmspace);
 void vm_map_set_wired_quick(vm_map_t map, vm_offset_t addr, vm_size_t size, int *);
 
 #endif