45#include <sys/kassert.h>
53void kva_free(vm_offset_t, vm_size_t);
61 vm_paddr_t low, vm_paddr_t high, vm_memattr_t memattr);
63 int flags, vm_paddr_t low, vm_paddr_t high, vm_memattr_t memattr);
65 vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary,
66 vm_memattr_t memattr);
68 int flags, vm_paddr_t low, vm_paddr_t high, u_long alignment,
69 vm_paddr_t boundary, vm_memattr_t memattr);
73void kmem_free(vm_offset_t addr, vm_size_t size);
91 int fault_flags, vm_page_t *m_hold);
97 vm_prot_t prot, vm_page_t *ma,
int max_count);
99 int fault_flags,
int *signo,
int *ucode);
100int vm_forkproc(
struct thread *,
struct proc *,
struct thread *,
109 int *,
struct cdev *,
struct cdevsw *, vm_ooffset_t *,
vm_object_t *);
111 struct vnode *, vm_ooffset_t *,
vm_object_t *, boolean_t *);
117int vmspace_exec(
struct proc *, vm_offset_t, vm_offset_t);
126int vslock(
void *,
size_t);
133 vm_page_t ma[],
int npages,
int req_class);
145 KASSERT(powerof2(alignment), (
"%s: alignment is not a power of 2: %#lx",
146 __func__, alignment));
147 return ((pa & (alignment - 1)) == 0);
157 KASSERT(powerof2(boundary), (
"%s: boundary is not a power of 2: %#jx",
158 __func__, (uintmax_t)boundary));
159 return (((pa ^ (pa + size - 1)) & -boundary) == 0);
void vmspace_free(struct vmspace *)
vm_offset_t kmap_alloc_wait(vm_map_t, vm_size_t)
void vmspace_exit(struct thread *)
void vsunlock(void *, size_t)
void kmem_bootstrap_free(vm_offset_t, vm_size_t)
struct vmspace * vmspace_acquire_ref(struct proc *)
int vm_fault_trap(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, int fault_flags, int *signo, int *ucode)
int vm_mmap_cdev(struct thread *, vm_size_t, vm_prot_t, vm_prot_t *, int *, struct cdev *, struct cdevsw *, vm_ooffset_t *, vm_object_t *)
void vm_waitproc(struct proc *)
void vm_set_page_size(void)
void kmem_subinit(vm_map_t, vm_map_t, vm_offset_t *, vm_offset_t *, vm_size_t, bool)
void kmap_free_wakeup(vm_map_t, vm_offset_t, vm_size_t)
int vm_fault(vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, int fault_flags, vm_page_t *m_hold)
int vmspace_unshare(struct proc *)
int vm_forkproc(struct thread *, struct proc *, struct thread *, struct vmspace *, int)
static bool vm_addr_bound_ok(vm_paddr_t pa, vm_paddr_t size, vm_paddr_t boundary)
void kmem_unback(vm_object_t, vm_offset_t, vm_size_t)
int vm_thread_new(struct thread *td, int pages)
u_int vm_active_count(void)
vm_offset_t kmem_alloc_contig(vm_size_t size, int flags, vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary, vm_memattr_t memattr)
struct vmspace * vmspace_alloc(vm_offset_t, vm_offset_t, pmap_pinit_t)
void vnode_pager_purge_range(struct vnode *, vm_ooffset_t, vm_ooffset_t)
vm_offset_t kmem_alloc_attr(vm_size_t size, int flags, vm_paddr_t low, vm_paddr_t high, vm_memattr_t memattr)
u_int vm_laundry_count(void)
struct sf_buf * vm_imgact_map_page(vm_object_t object, vm_ooffset_t offset)
int kernacc(void *, int, int)
int vm_fault_quick_hold_pages(vm_map_t map, vm_offset_t addr, vm_size_t len, vm_prot_t prot, vm_page_t *ma, int max_count)
void vmspace_exitfree(struct proc *)
int vm_mmap_to_errno(int rv)
int vm_mmap_object(vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, vm_object_t, vm_ooffset_t, boolean_t, struct thread *)
int kmem_back(vm_object_t, vm_offset_t, vm_size_t, int)
u_int vm_wait_count(void)
u_int vm_inactive_count(void)
void kmem_init(vm_offset_t, vm_offset_t)
void kmem_free(vm_offset_t addr, vm_size_t size)
vm_offset_t kva_alloc(vm_size_t)
void vmspace_switch_aio(struct vmspace *)
int kmem_back_domain(int, vm_object_t, vm_offset_t, vm_size_t, int)
vm_offset_t kmem_malloc(vm_size_t size, int flags)
void vm_sync_icache(vm_map_t, vm_offset_t, vm_size_t)
void vnode_pager_setsize(struct vnode *, vm_ooffset_t)
void vm_fault_copy_entry(vm_map_t, vm_map_t, vm_map_entry_t, vm_map_entry_t, vm_ooffset_t *)
int vm_mmap_vnode(struct thread *, vm_size_t, vm_prot_t, vm_prot_t *, int *, struct vnode *, vm_ooffset_t *, vm_object_t *, boolean_t *)
vm_offset_t kmem_alloc_contig_domainset(struct domainset *ds, vm_size_t size, int flags, vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary, vm_memattr_t memattr)
vm_offset_t kmem_malloc_domainset(struct domainset *ds, vm_size_t size, int flags)
vm_offset_t kmem_alloc_attr_domainset(struct domainset *ds, vm_size_t size, int flags, vm_paddr_t low, vm_paddr_t high, vm_memattr_t memattr)
static bool vm_addr_align_ok(vm_paddr_t pa, u_long alignment)
int useracc(void *, int, int)
int vslock(void *, size_t)
int vm_fault_disable_pagefaults(void)
void kmem_init_zero_region(void)
int vm_mmap(vm_map_t, vm_offset_t *, vm_size_t, vm_prot_t, vm_prot_t, int, objtype_t, void *, vm_ooffset_t)
int vmspace_exec(struct proc *, vm_offset_t, vm_offset_t)
void vm_thread_stack_back(struct domainset *ds, vm_offset_t kaddr, vm_page_t ma[], int npages, int req_class)
void vm_fault_enable_pagefaults(int save)
struct vmspace * vmspace_fork(struct vmspace *, vm_ooffset_t *)
void kva_free(vm_offset_t, vm_size_t)
void vm_imgact_unmap_page(struct sf_buf *sf)
static bool vm_addr_ok(vm_paddr_t pa, vm_paddr_t size, u_long alignment, vm_paddr_t boundary)
void vm_thread_dispose(struct thread *td)
int(* pmap_pinit_t)(struct pmap *pmap)