FreeBSD virtual memory subsystem code
|
#include <sys/kassert.h>
Go to the source code of this file.
Typedefs | |
typedef int(* | pmap_pinit_t) (struct pmap *pmap) |
Functions | |
vm_offset_t | kva_alloc (vm_size_t) |
void | kva_free (vm_offset_t, vm_size_t) |
vm_offset_t | kmap_alloc_wait (vm_map_t, vm_size_t) |
void | kmap_free_wakeup (vm_map_t, vm_offset_t, vm_size_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) |
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) |
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) |
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 (vm_size_t size, int flags) |
vm_offset_t | kmem_malloc_domainset (struct domainset *ds, vm_size_t size, int flags) |
void | kmem_free (vm_offset_t addr, vm_size_t size) |
int | kmem_back (vm_object_t, vm_offset_t, vm_size_t, int) |
int | kmem_back_domain (int, vm_object_t, vm_offset_t, vm_size_t, int) |
void | kmem_unback (vm_object_t, vm_offset_t, vm_size_t) |
void | kmem_bootstrap_free (vm_offset_t, vm_size_t) |
void | kmem_subinit (vm_map_t, vm_map_t, vm_offset_t *, vm_offset_t *, vm_size_t, bool) |
void | kmem_init (vm_offset_t, vm_offset_t) |
void | kmem_init_zero_region (void) |
void | kmeminit (void) |
int | kernacc (void *, int, int) |
int | useracc (void *, int, int) |
int | vm_fault (vm_map_t map, vm_offset_t vaddr, vm_prot_t fault_type, int fault_flags, vm_page_t *m_hold) |
void | vm_fault_copy_entry (vm_map_t, vm_map_t, vm_map_entry_t, vm_map_entry_t, vm_ooffset_t *) |
int | vm_fault_disable_pagefaults (void) |
void | vm_fault_enable_pagefaults (int save) |
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) |
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_forkproc (struct thread *, struct proc *, struct thread *, struct vmspace *, int) |
void | vm_waitproc (struct proc *) |
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 | 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 | vm_mmap_to_errno (int rv) |
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 *) |
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 *) |
void | vm_set_page_size (void) |
void | vm_sync_icache (vm_map_t, vm_offset_t, vm_size_t) |
struct vmspace * | vmspace_alloc (vm_offset_t, vm_offset_t, pmap_pinit_t) |
struct vmspace * | vmspace_fork (struct vmspace *, vm_ooffset_t *) |
int | vmspace_exec (struct proc *, vm_offset_t, vm_offset_t) |
int | vmspace_unshare (struct proc *) |
void | vmspace_exit (struct thread *) |
struct vmspace * | vmspace_acquire_ref (struct proc *) |
void | vmspace_free (struct vmspace *) |
void | vmspace_exitfree (struct proc *) |
void | vmspace_switch_aio (struct vmspace *) |
void | vnode_pager_setsize (struct vnode *, vm_ooffset_t) |
void | vnode_pager_purge_range (struct vnode *, vm_ooffset_t, vm_ooffset_t) |
int | vslock (void *, size_t) |
void | vsunlock (void *, size_t) |
struct sf_buf * | vm_imgact_map_page (vm_object_t object, vm_ooffset_t offset) |
void | vm_imgact_unmap_page (struct sf_buf *sf) |
void | vm_thread_dispose (struct thread *td) |
int | vm_thread_new (struct thread *td, int pages) |
void | vm_thread_stack_back (struct domainset *ds, vm_offset_t kaddr, vm_page_t ma[], int npages, int req_class) |
u_int | vm_active_count (void) |
u_int | vm_inactive_count (void) |
u_int | vm_laundry_count (void) |
u_int | vm_wait_count (void) |
static bool | vm_addr_align_ok (vm_paddr_t pa, u_long alignment) |
static bool | vm_addr_bound_ok (vm_paddr_t pa, vm_paddr_t size, vm_paddr_t boundary) |
static bool | vm_addr_ok (vm_paddr_t pa, vm_paddr_t size, u_long alignment, vm_paddr_t boundary) |
typedef int(* pmap_pinit_t) (struct pmap *pmap) |
Definition at line 114 of file vm_extern.h.
int kernacc | ( | void * | addr, |
int | len, | ||
int | rw | ||
) |
Definition at line 121 of file vm_glue.c.
References kernel_map, vm_map_check_protection(), vm_map_lock_read, vm_map_max(), vm_map_unlock_read, and VM_PROT_ALL.
vm_offset_t kmap_alloc_wait | ( | vm_map_t | map, |
vm_size_t | size | ||
) |
Definition at line 634 of file vm_kern.c.
References MAP_ACC_CHARGED, vm_map::needs_wakeup, swap_release(), swap_reserve(), vm_map_findspace(), vm_map_insert(), vm_map_lock, vm_map_max(), vm_map_min(), vm_map_unlock, vm_map_unlock_and_wait, and VM_PROT_RW.
void kmap_free_wakeup | ( | vm_map_t | map, |
vm_offset_t | addr, | ||
vm_size_t | size | ||
) |
Definition at line 673 of file vm_kern.c.
References vm_map::needs_wakeup, vm_map_delete(), vm_map_lock, vm_map_unlock, and vm_map_wakeup().
vm_offset_t kmem_alloc_attr | ( | vm_size_t | size, |
int | flags, | ||
vm_paddr_t | low, | ||
vm_paddr_t | high, | ||
vm_memattr_t | memattr | ||
) |
Definition at line 257 of file vm_kern.c.
References vm_map::flags, kmem_alloc_attr_domainset(), and vm_map::size.
Referenced by vm_ksubmap_init().
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 | ||
) |
Definition at line 266 of file vm_kern.c.
References kmem_alloc_attr_domain(), vm_domainset_iter_policy(), and vm_domainset_iter_policy_init().
Referenced by kmem_alloc_attr().
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 | ||
) |
Definition at line 340 of file vm_kern.c.
References kmem_alloc_contig_domainset().
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 | ||
) |
Definition at line 349 of file vm_kern.c.
References kmem_alloc_contig_domain(), vm_domainset_iter_policy(), and vm_domainset_iter_policy_init().
Referenced by contig_alloc(), and kmem_alloc_contig().
int kmem_back | ( | vm_object_t | object, |
vm_offset_t | addr, | ||
vm_size_t | size, | ||
int | flags | ||
) |
Definition at line 524 of file vm_kern.c.
References KERN_SUCCESS, kernel_object, kmem_back_domain(), kmem_unback(), KVA_QUANTUM, KVA_QUANTUM_SHIFT, VM_DOMAIN_EMPTY, and vm_ndomains.
Referenced by memguard_alloc().
int kmem_back_domain | ( | int | domain, |
vm_object_t | object, | ||
vm_offset_t | addr, | ||
vm_size_t | size, | ||
int | flags | ||
) |
Definition at line 462 of file vm_kern.c.
References KERN_NO_SPACE, KERN_SUCCESS, kernel_object, kmem_unback(), PG_ZERO, pmap_enter(), PMAP_ENTER_WIRED, pmap_zero_page(), vm_object::rtree, VM_ALLOC_NOWAIT, VM_ALLOC_WAITFAIL, VM_ALLOC_WAITOK, VM_ALLOC_WIRED, VM_OBJECT_WLOCK, VM_OBJECT_WUNLOCK, vm_page_alloc_domain_after(), vm_page_domain(), vm_page_valid(), VM_PROT_ALL, VM_PROT_EXECUTE, VM_PROT_RW, vm_radix_lookup_le(), VPO_KMEM_EXEC, and VPO_UNMANAGED.
Referenced by kmapent_alloc(), kmem_back(), and kmem_malloc_domain().
void kmem_bootstrap_free | ( | vm_offset_t | start, |
vm_size_t | size | ||
) |
Definition at line 848 of file vm_kern.c.
References kernel_arena, PHYS_TO_VM_PAGE(), pmap_remove(), vm_cnt, vm_domain_free_lock, vm_domain_free_unlock, vm_domain_freecnt_inc(), vm_pagequeue_domain(), vm_phys_free_pages(), and VM_PROT_RW.
void kmem_free | ( | vm_offset_t | addr, |
vm_size_t | size | ||
) |
Definition at line 614 of file vm_kern.c.
References _kmem_unback(), and kernel_object.
Referenced by page_free().
void kmem_init | ( | vm_offset_t | start, |
vm_offset_t | end | ||
) |
Definition at line 753 of file vm_kern.c.
References kernel_arena, kernel_map, kva_import(), kva_import_domain(), KVA_NUMA_IMPORT_QUANTUM, KVA_QUANTUM, MAP_NOFAULT, uma_startup2(), vm_dom, vm_map_init(), vm_map_insert(), vm_map_lock, vm_map_unlock, vm_ndomains, vm_page_array, vm_page_array_size, VM_PROT_ALL, VM_PROT_RW, vmd_kernel_arena, vm_domain::vmd_kernel_arena, vmd_kernel_rwx_arena, and vm_domain::vmd_kernel_rwx_arena.
Referenced by vm_mem_init().
void kmem_init_zero_region | ( | void | ) |
Definition at line 686 of file vm_kern.c.
References kva_alloc(), pmap_protect(), pmap_qenter(), VM_ALLOC_WIRED, VM_ALLOC_ZERO, vm_page_alloc_noobj(), VM_PROT_READ, and zero_region.
Referenced by vm_mem_init().
vm_offset_t kmem_malloc | ( | vm_size_t | size, |
int | flags | ||
) |
Definition at line 432 of file vm_kern.c.
References kmem_malloc_domainset().
Referenced by vm_ksubmap_init().
vm_offset_t kmem_malloc_domainset | ( | struct domainset * | ds, |
vm_size_t | size, | ||
int | flags | ||
) |
Definition at line 439 of file vm_kern.c.
References kmem_malloc_domain(), vm_domainset_iter_policy(), and vm_domainset_iter_policy_init().
Referenced by kmem_malloc(), and page_alloc().
void kmem_subinit | ( | vm_map_t | map, |
vm_map_t | parent, | ||
vm_offset_t * | min, | ||
vm_offset_t * | max, | ||
vm_size_t | size, | ||
bool | superpage_align | ||
) |
Definition at line 382 of file vm_kern.c.
References KERN_SUCCESS, MAP_ACC_NO_CHARGE, vm_map_find(), vm_map_init(), vm_map_min(), vm_map_pmap(), vm_map_submap(), VM_PROT_ALL, VMFS_ANY_SPACE, and VMFS_SUPER_SPACE.
Referenced by vm_ksubmap_init().
void kmem_unback | ( | vm_object_t | object, |
vm_offset_t | addr, | ||
vm_size_t | size | ||
) |
Definition at line 601 of file vm_kern.c.
References _kmem_unback().
Referenced by kmapent_free(), kmem_alloc_attr_domain(), kmem_back(), kmem_back_domain(), and memguard_free().
void kmeminit | ( | void | ) |
vm_offset_t kva_alloc | ( | vm_size_t | size | ) |
Definition at line 146 of file vm_kern.c.
References kernel_arena, and vm_map::size.
Referenced by kmem_init_zero_region(), pbuf_init(), pcpu_page_alloc(), uma_zone_reserve_kva(), vm_ksubmap_init(), and vm_thread_stack_create().
void kva_free | ( | vm_offset_t | addr, |
vm_size_t | size | ||
) |
Definition at line 167 of file vm_kern.c.
References kernel_arena, and vm_map::size.
Referenced by pcpu_page_free(), and vm_thread_stack_dispose().
int useracc | ( | void * | addr, |
int | len, | ||
int | rw | ||
) |
Definition at line 153 of file vm_glue.c.
References vm_map_check_protection(), vm_map_lock_read, vm_map_max(), vm_map_unlock_read, and VM_PROT_ALL.
u_int vm_active_count | ( | void | ) |
Definition at line 446 of file vm_meter.c.
References PQ_ACTIVE, and vm_pagequeue_count().
|
inlinestatic |
Definition at line 143 of file vm_extern.h.
Referenced by vm_addr_ok(), and vm_page_scan_contig().
|
inlinestatic |
Definition at line 155 of file vm_extern.h.
Referenced by vm_addr_ok(), and vm_page_scan_contig().
|
inlinestatic |
Definition at line 163 of file vm_extern.h.
References vm_addr_align_ok(), and vm_addr_bound_ok().
Referenced by vm_phys_alloc_seg_contig().
int vm_fault | ( | vm_map_t | map, |
vm_offset_t | vaddr, | ||
vm_prot_t | fault_type, | ||
int | fault_flags, | ||
vm_page_t * | m_hold | ||
) |
Definition at line 1447 of file vm_fault.c.
References vm_map_entry::eflags, faultstate::entry, FAULT_CONTINUE, fault_deallocate(), FAULT_FAILURE, faultstate::fault_flags, FAULT_HARD, FAULT_OUT_OF_BOUNDS, fault_page_free(), FAULT_PROTECTION_FAILURE, FAULT_RESTART, FAULT_SOFT, FAULT_SUCCESS, faultstate::fault_type, faultstate::first_m, faultstate::first_object, faultstate::first_pindex, KERN_FAILURE, KERN_OUT_OF_BOUNDS, KERN_PROTECTION_FAILURE, KERN_RESOURCE_SHORTAGE, KERN_RESTART, KERN_SUCCESS, faultstate::lookup_still_valid, faultstate::m, faultstate::m_cow, faultstate::m_hold, faultstate::map, MAP_ENTRY_SPLIT_BOUNDARY_MASK, faultstate::nera, vm_map_entry::next_read, faultstate::object, OBJT_VNODE, faultstate::oom_started, PFBAK, PFFOR, faultstate::pindex, vm_map::pmap, pmap_enter(), PMAP_ENTER_WIRED, faultstate::prot, vm_object::type, unlock_and_deallocate(), faultstate::vaddr, vm_fault_allocate(), vm_fault_cow(), vm_fault_dirty(), VM_FAULT_DIRTY, vm_fault_lookup(), vm_fault_next(), VM_FAULT_NOFILL, vm_fault_object(), vm_fault_prefault(), vm_fault_relookup(), vm_fault_soft_fast(), VM_FAULT_WIRE, vm_fault_zerofill(), VM_OBJECT_ASSERT_UNLOCKED, vm_object_pip_add(), vm_object_reference_locked(), VM_OBJECT_RLOCK, VM_OBJECT_RUNLOCK, VM_OBJECT_TRYUPGRADE, VM_OBJECT_WLOCK, VM_OBJECT_WUNLOCK, vm_page_activate(), vm_page_all_valid(), vm_page_assert_xbusied, vm_page_wire(), vm_page_xunbusy, VM_PROT_COPY, VM_PROT_WRITE, faultstate::vp, and faultstate::wired.
Referenced by vm_fault_quick_hold_pages(), vm_fault_trap(), and vm_map_wire_locked().
void vm_fault_copy_entry | ( | vm_map_t | dst_map, |
vm_map_t | src_map, | ||
vm_map_entry_t | dst_entry, | ||
vm_map_entry_t | src_entry, | ||
vm_ooffset_t * | fork_charge | ||
) |
Definition at line 1966 of file vm_fault.c.
References vm_object::backing_object, vm_object::backing_object_offset, vm_object::charge, vm_map_entry::cred, vm_object::cred, vm_object::domain, vm_map_entry::eflags, vm_map_entry::end, vm_object::flags, MAP_ENTRY_COW, MAP_ENTRY_NEEDS_COPY, OBJ_COLORED, OBJ_SWAP, faultstate::object, vm_map_entry::object, OBJT_DEFAULT, OFF_TO_IDX, vm_map_entry::offset, vm_object::pg_color, faultstate::pindex, vm_map::pmap, pmap_copy_page(), pmap_enter(), PMAP_ENTER_WIRED, PQ_INACTIVE, faultstate::prot, vm_map_entry::protection, vm_object::size, vm_map_entry::start, vm_object::type, faultstate::vaddr, VM_ALLOC_NORMAL, VM_ALLOC_WAITFAIL, vm_map_object::vm_object, vm_object_allocate_anon(), vm_object_deallocate(), vm_object_reference(), VM_OBJECT_RLOCK, VM_OBJECT_RUNLOCK, VM_OBJECT_WLOCK, VM_OBJECT_WUNLOCK, vm_page_activate(), vm_page_all_valid(), vm_page_alloc(), vm_page_busy_acquire(), vm_page_lookup(), vm_page_unwire(), vm_page_wire(), vm_page_wired(), vm_page_xunbusy, VM_PROT_WRITE, and vm_wait().
Referenced by vm_map_copy_entry(), and vm_map_protect().
int vm_fault_disable_pagefaults | ( | void | ) |
Definition at line 2170 of file vm_fault.c.
void vm_fault_enable_pagefaults | ( | int | save | ) |
Definition at line 2177 of file vm_fault.c.
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 | ||
) |
Definition at line 1877 of file vm_fault.c.
References KERN_SUCCESS, faultstate::map, vm_map::pmap, pmap_extract_and_hold(), PQ_INACTIVE, faultstate::prot, vm_fault(), VM_FAULT_NORMAL, vm_map_range_valid(), vm_page_dirty(), vm_page_unwire(), VM_PROT_QUICK_NOFAULT, and VM_PROT_WRITE.
int vm_fault_trap | ( | vm_map_t | map, |
vm_offset_t | vaddr, | ||
vm_prot_t | fault_type, | ||
int | fault_flags, | ||
int * | signo, | ||
int * | ucode | ||
) |
Definition at line 657 of file vm_fault.c.
References KERN_FAILURE, KERN_INVALID_ADDRESS, KERN_OUT_OF_BOUNDS, KERN_PROTECTION_FAILURE, KERN_RESOURCE_SHORTAGE, KERN_SUCCESS, kernel_map, prot_fault_translation, UCODE_PAGEFLT, and vm_fault().
int vm_forkproc | ( | struct thread * | td, |
struct proc * | p2, | ||
struct thread * | td2, | ||
struct vmspace * | vm2, | ||
int | flags | ||
) |
Definition at line 532 of file vm_glue.c.
References vm_wait_doms(), and vmspace_unshare().
struct sf_buf * vm_imgact_map_page | ( | vm_object_t | object, |
vm_ooffset_t | offset | ||
) |
Definition at line 237 of file vm_glue.c.
References vm_imgact_hold_page().
void vm_imgact_unmap_page | ( | struct sf_buf * | sf | ) |
Definition at line 252 of file vm_glue.c.
References PQ_ACTIVE, and vm_page_unwire().
u_int vm_inactive_count | ( | void | ) |
Definition at line 453 of file vm_meter.c.
References PQ_INACTIVE, and vm_pagequeue_count().
u_int vm_laundry_count | ( | void | ) |
Definition at line 460 of file vm_meter.c.
References PQ_LAUNDRY, and vm_pagequeue_count().
int vm_mmap | ( | vm_map_t | map, |
vm_offset_t * | addr, | ||
vm_size_t | size, | ||
vm_prot_t | prot, | ||
vm_prot_t | maxprot, | ||
int | flags, | ||
objtype_t | handle_type, | ||
void * | handle, | ||
vm_ooffset_t | foff | ||
) |
Definition at line 1466 of file vm_mmap.c.
References OBJT_DEFAULT, OBJT_DEVICE, OBJT_VNODE, vm_mmap_cdev(), vm_mmap_object(), vm_mmap_vnode(), vm_object_deallocate(), and vm_pager_release_writecount().
int vm_mmap_cdev | ( | struct thread * | td, |
vm_size_t | objsize, | ||
vm_prot_t | prot, | ||
vm_prot_t * | maxprotp, | ||
int * | flagsp, | ||
struct cdev * | cdev, | ||
struct cdevsw * | dsw, | ||
vm_ooffset_t * | foff, | ||
vm_object_t * | objp | ||
) |
Definition at line 1404 of file vm_mmap.c.
References OBJT_DEVICE, vm_pager_allocate(), VM_PROT_ALL, and VM_PROT_WRITE.
Referenced by vm_mmap().
int vm_mmap_object | ( | vm_map_t | map, |
vm_offset_t * | addr, | ||
vm_size_t | size, | ||
vm_prot_t | prot, | ||
vm_prot_t | maxprot, | ||
int | flags, | ||
vm_object_t | object, | ||
vm_ooffset_t | foff, | ||
boolean_t | writecounted, | ||
struct thread * | td | ||
) |
Definition at line 1570 of file vm_mmap.c.
References vm_map::flags, kern_mmap_racct_check(), KERN_SUCCESS, MAP_CHECK_EXCL, MAP_COPY_ON_WRITE, MAP_CREATE_GUARD, MAP_DISABLE_COREDUMP, MAP_DISABLE_SYNCER, MAP_INHERIT_SHARE, MAP_PREFAULT, MAP_PREFAULT_PARTIAL, MAP_STACK_GROWS_DOWN, MAP_WIREFUTURE, MAP_WRITECOUNT, vm_map_find(), vm_map_find_min(), vm_map_fixed(), vm_map_lock, vm_map_unlock, VM_MAP_WIRE_HOLESOK, vm_map_wire_locked(), VM_MAP_WIRE_NOHOLES, VM_MAP_WIRE_USER, vm_mmap_to_errno(), VMFS_ALIGNED_SPACE, VMFS_OPTIMAL_SPACE, and VMFS_SUPER_SPACE.
Referenced by kern_mmap(), and vm_mmap().
int vm_mmap_to_errno | ( | int | rv | ) |
Definition at line 1685 of file vm_mmap.c.
References KERN_INVALID_ADDRESS, KERN_NO_SPACE, KERN_PROTECTION_FAILURE, and KERN_SUCCESS.
Referenced by kern_munmap(), vm_map_madvise(), and vm_mmap_object().
int vm_mmap_vnode | ( | struct thread * | td, |
vm_size_t | objsize, | ||
vm_prot_t | prot, | ||
vm_prot_t * | maxprotp, | ||
int * | flagsp, | ||
struct vnode * | vp, | ||
vm_ooffset_t * | foffp, | ||
vm_object_t * | objp, | ||
boolean_t * | writecounted | ||
) |
Definition at line 1290 of file vm_mmap.c.
References OBJ_COLORED, OBJ_SWAP, OBJT_DEFAULT, OBJT_VNODE, vm_object_color(), vm_object_reference(), VM_OBJECT_WLOCK, VM_OBJECT_WUNLOCK, vm_pager_allocate(), vm_pager_update_writecount(), and VM_PROT_WRITE.
Referenced by vm_mmap().
void vm_set_page_size | ( | void | ) |
Definition at line 255 of file vm_page.c.
References vm_cnt.
Referenced by vm_mem_init().
void vm_sync_icache | ( | vm_map_t | , |
vm_offset_t | , | ||
vm_size_t | |||
) |
void vm_thread_dispose | ( | struct thread * | td | ) |
Definition at line 387 of file vm_glue.c.
References kstack_cache, uma_zfree(), and vm_thread_stack_dispose().
int vm_thread_new | ( | struct thread * | td, |
int | pages | ||
) |
Definition at line 352 of file vm_glue.c.
References kstack_cache, KSTACK_MAX_PAGES, uma_zalloc(), and vm_thread_stack_create().
void vm_thread_stack_back | ( | struct domainset * | ds, |
vm_offset_t | kaddr, | ||
vm_page_t | ma[], | ||
int | npages, | ||
int | req_class | ||
) |
Definition at line 408 of file vm_glue.c.
References vm_object::domain, kstack_object, VM_ALLOC_WAITFAIL, VM_ALLOC_WIRED, vm_ndomains, VM_OBJECT_WLOCK, VM_OBJECT_WUNLOCK, and vm_page_grab_pages().
Referenced by vm_thread_stack_create(), and vm_thread_swapin().
u_int vm_wait_count | ( | void | ) |
Definition at line 3234 of file vm_page.c.
References vm_min_waiters, vm_pageproc_waiters, and vm_severe_waiters.
Referenced by vmtotal().
void vm_waitproc | ( | struct proc * | p | ) |
Definition at line 583 of file vm_glue.c.
References vmspace_exitfree().
struct vmspace * vmspace_acquire_ref | ( | struct proc * | p | ) |
Definition at line 467 of file vm_map.c.
References PROC_VMSPACE_LOCK, PROC_VMSPACE_UNLOCK, vmspace::vm_refcnt, and vmspace_free().
Referenced by vm_daemon(), and vm_pageout_oom().
struct vmspace * vmspace_alloc | ( | vm_offset_t | min, |
vm_offset_t | max, | ||
pmap_pinit_t | pinit | ||
) |
Definition at line 325 of file vm_map.c.
References _vm_map_init(), vm_map::pmap, uma_zalloc(), uma_zfree(), vmspace::vm_daddr, vmspace::vm_dsize, vmspace::vm_map, vmspace::vm_maxsaddr, vmspace::vm_refcnt, vmspace::vm_shm, vmspace::vm_ssize, vmspace::vm_swrss, vmspace::vm_taddr, vmspace::vm_tsize, vmspace_pmap(), and vmspace_zone.
Referenced by vmspace_fork().
int vmspace_exec | ( | struct proc * | p, |
vm_offset_t | minuser, | ||
vm_offset_t | maxuser | ||
) |
void vmspace_exit | ( | struct thread * | td | ) |
Definition at line 414 of file vm_map.c.
References pmap_activate(), pmap_remove_pages(), PROC_VMSPACE_LOCK, PROC_VMSPACE_UNLOCK, vmspace::vm_refcnt, vmspace_dofree(), and vmspace_pmap().
void vmspace_exitfree | ( | struct proc * | p | ) |
Definition at line 401 of file vm_map.c.
References PROC_VMSPACE_LOCK, PROC_VMSPACE_UNLOCK, and vmspace_free().
Referenced by vm_waitproc().
Definition at line 4239 of file vm_map.c.
References vm_map::anon_loc, vm_map::busy, vm_map_entry::cred, vm_object::cred, vm_map_entry::eflags, vm_map_entry::end, vm_map::flags, vm_map_entry::inheritance, vm_map::lock, MAP_ASLR, MAP_ASLR_IGNSTART, MAP_ASLR_STACK, MAP_ENTRY_GUARD, MAP_ENTRY_IN_TRANSITION, MAP_ENTRY_IS_SUB_MAP, MAP_ENTRY_NEEDS_COPY, MAP_ENTRY_SPLIT_BOUNDARY_MASK, MAP_ENTRY_USER_WIRED, MAP_ENTRY_VN_EXEC, MAP_ENTRY_WRITECNT, MAP_WXORX, vm_map_entry::max_protection, OBJ_ONEMAPPING, vm_map_entry::object, OBJT_VNODE, vm_map_entry::offset, vm_map::pmap, pmap_copy(), pmap_pinit(), vm_map_entry::protection, vm_map_entry::start, vm_object::type, vm_object::un_pager, vmspace::vm_daddr, VM_INHERIT_COPY, VM_INHERIT_NONE, VM_INHERIT_SHARE, VM_INHERIT_ZERO, vmspace::vm_map, vm_map_copy_entry(), vm_map_entry_back(), vm_map_entry_create(), VM_MAP_ENTRY_FOREACH, vm_map_entry_link(), vm_map_entry_set_vnode_text(), vm_map_lock, vm_map_max(), vm_map_min(), vm_map_process_deferred(), vm_map_trylock, vm_map_wait_busy(), vmspace::vm_maxsaddr, vm_map_object::vm_object, vm_object_clear_flag(), vm_object_deallocate(), vm_object_reference(), vm_object_shadow(), VM_OBJECT_WLOCK, VM_OBJECT_WUNLOCK, vm_pager_update_writecount(), vmspace::vm_stacktop, vmspace::vm_taddr, vmspace_alloc(), vmspace_free(), vmspace_map_entry_forked(), vm_object::vnp, vm_map_entry::wired_count, and vm_map_entry::wiring_thread.
void vmspace_free | ( | struct vmspace * | vm | ) |
Definition at line 390 of file vm_map.c.
References vmspace::vm_refcnt, and vmspace_dofree().
Referenced by vm_daemon(), vm_pageout_oom(), vmspace_acquire_ref(), vmspace_exitfree(), vmspace_fork(), and vmspace_switch_aio().
void vmspace_switch_aio | ( | struct vmspace * | newvm | ) |
Definition at line 502 of file vm_map.c.
References pmap_activate(), vmspace::vm_refcnt, and vmspace_free().
int vmspace_unshare | ( | struct proc * | p | ) |
Definition at line 4855 of file vm_map.c.
Referenced by vm_forkproc().
void vnode_pager_purge_range | ( | struct vnode * | vp, |
vm_ooffset_t | start, | ||
vm_ooffset_t | end | ||
) |
Definition at line 561 of file vnode_pager.c.
References OBJ_MAX_SIZE, OFF_TO_IDX, VM_ALLOC_NOCREAT, vm_object_page_remove(), VM_OBJECT_WLOCK, VM_OBJECT_WUNLOCK, vm_page_grab(), vm_page_none_valid(), vm_page_xunbusy, and vnode_pager_subpage_purge().
void vnode_pager_setsize | ( | struct vnode * | vp, |
vm_ooffset_t | nsize | ||
) |
Definition at line 486 of file vnode_pager.c.
References OBJT_DEAD, OBJT_VNODE, OFF_TO_IDX, vm_object::size, vm_object::type, vm_object::un_pager, VM_ALLOC_NOCREAT, vm_object_page_remove(), VM_OBJECT_WLOCK, VM_OBJECT_WUNLOCK, vm_page_grab(), vm_page_none_valid(), vm_page_xunbusy, vnode_pager_subpage_purge(), vm_object::vnp, and vm_object::vnp_size.
int vslock | ( | void * | addr, |
size_t | len | ||
) |
Definition at line 175 of file vm_glue.c.
References KERN_SUCCESS, vm_map_wire(), VM_MAP_WIRE_NOHOLES, VM_MAP_WIRE_SYSTEM, and vm_page_max_user_wired.
void vsunlock | ( | void * | addr, |
size_t | len | ||
) |
Definition at line 204 of file vm_glue.c.
References vm_map_unwire(), VM_MAP_WIRE_NOHOLES, and VM_MAP_WIRE_SYSTEM.