kernel - Fix overflows and races in zalloc()
[dragonfly.git] / sys / vm / vm_extern.h
index 4729729..1664ea7 100644 (file)
@@ -44,6 +44,9 @@
 #ifndef _VM_VM_MAP_H_
 #include <vm/vm_map.h>
 #endif
+#ifndef _VM_VM_KERN_H_
+#include <vm/vm_kern.h>
+#endif
 #ifndef _MACHINE_TYPES_H_
 #include <machine/types.h>
 #endif
@@ -74,15 +77,14 @@ int swapon (struct proc *, void *, int *);
 #endif
 
 int grow (struct proc *, size_t);
-int grow_stack (struct proc *, vm_offset_t);
 int kernacc(c_caddr_t, int, int);
 vm_offset_t kmem_alloc3 (vm_map_t, vm_size_t, int flags);
-vm_offset_t kmem_alloc_nofault (vm_map_t, vm_size_t);
+vm_offset_t kmem_alloc_nofault (vm_map_t, vm_size_t, vm_size_t);
 vm_offset_t kmem_alloc_pageable (vm_map_t, vm_size_t);
 vm_offset_t kmem_alloc_wait (vm_map_t, vm_size_t);
 void kmem_free (vm_map_t, vm_offset_t, vm_size_t);
 void kmem_free_wakeup (vm_map_t, vm_offset_t, vm_size_t);
-void kmem_init (vm_offset_t, vm_offset_t);
+void kmem_init (void);
 void kmem_suballoc (vm_map_t, vm_map_t, vm_offset_t *, vm_offset_t *, vm_size_t);
 void munmapfd (struct proc *, int);
 int swaponvp (struct thread *, struct vnode *, u_quad_t);
@@ -95,8 +97,8 @@ void vm_fault_copy_entry (vm_map_t, vm_map_t, vm_map_entry_t, vm_map_entry_t);
 void vm_fault_unwire (vm_map_t, vm_map_entry_t);
 int vm_fault_wire (vm_map_t, vm_map_entry_t, boolean_t);
 void vm_fork (struct proc *, struct proc *, int);
-void vm_fault_ratecheck(void);
-void vm_waitproc (struct proc *);
+int vm_test_nominal (void);
+void vm_wait_nominal (void);
 void vm_init_limits(struct proc *);
 
 int vm_mmap (vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, void *, vm_ooffset_t);
@@ -107,7 +109,7 @@ struct vmspace *vmspace_fork (struct vmspace *);
 void vmspace_exec (struct proc *, struct vmspace *);
 void vmspace_unshare (struct proc *);
 void vmspace_exitfree (struct proc *);
-void vnode_pager_setsize (struct vnode *, vm_ooffset_t);
+void vmspace_exitbump (struct vmspace *);
 void vslock (caddr_t, u_int);
 void vsunlock (caddr_t, u_int);
 void vm_object_print (/* db_expr_t */ long, boolean_t, /* db_expr_t */ long,
@@ -120,6 +122,13 @@ kmem_alloc (vm_map_t map, vm_size_t size)
        return(kmem_alloc3(map, size, 0));
 }
 
+static __inline
+vm_offset_t
+kmem_alloc_stack (vm_map_t map, vm_size_t size)
+{
+       return(kmem_alloc3(map, size, KM_STACK));
+}
+
 #endif                         /* _KERNEL */
 
 #endif                         /* !_VM_VM_EXTERN_H_ */