Changeset View
Changeset View
Standalone View
Standalone View
head/sys/vm/vm_page.h
Show First 20 Lines • Show All 616 Lines • ▼ Show 20 Lines | int vm_page_grab_pages(vm_object_t object, vm_pindex_t pindex, int allocflags, | ||||
vm_page_t *ma, int count); | vm_page_t *ma, int count); | ||||
int vm_page_grab_valid(vm_page_t *mp, vm_object_t object, vm_pindex_t pindex, | int vm_page_grab_valid(vm_page_t *mp, vm_object_t object, vm_pindex_t pindex, | ||||
int allocflags); | int allocflags); | ||||
void vm_page_deactivate(vm_page_t); | void vm_page_deactivate(vm_page_t); | ||||
void vm_page_deactivate_noreuse(vm_page_t); | void vm_page_deactivate_noreuse(vm_page_t); | ||||
void vm_page_dequeue(vm_page_t m); | void vm_page_dequeue(vm_page_t m); | ||||
void vm_page_dequeue_deferred(vm_page_t m); | void vm_page_dequeue_deferred(vm_page_t m); | ||||
vm_page_t vm_page_find_least(vm_object_t, vm_pindex_t); | vm_page_t vm_page_find_least(vm_object_t, vm_pindex_t); | ||||
bool vm_page_free_prep(vm_page_t m); | |||||
vm_page_t vm_page_getfake(vm_paddr_t paddr, vm_memattr_t memattr); | vm_page_t vm_page_getfake(vm_paddr_t paddr, vm_memattr_t memattr); | ||||
void vm_page_initfake(vm_page_t m, vm_paddr_t paddr, vm_memattr_t memattr); | void vm_page_initfake(vm_page_t m, vm_paddr_t paddr, vm_memattr_t memattr); | ||||
int vm_page_insert (vm_page_t, vm_object_t, vm_pindex_t); | int vm_page_insert (vm_page_t, vm_object_t, vm_pindex_t); | ||||
void vm_page_invalid(vm_page_t m); | void vm_page_invalid(vm_page_t m); | ||||
void vm_page_launder(vm_page_t m); | void vm_page_launder(vm_page_t m); | ||||
vm_page_t vm_page_lookup (vm_object_t, vm_pindex_t); | vm_page_t vm_page_lookup (vm_object_t, vm_pindex_t); | ||||
vm_page_t vm_page_next(vm_page_t m); | vm_page_t vm_page_next(vm_page_t m); | ||||
void vm_page_pqbatch_drain(void); | void vm_page_pqbatch_drain(void); | ||||
void vm_page_pqbatch_submit(vm_page_t m, uint8_t queue); | void vm_page_pqbatch_submit(vm_page_t m, uint8_t queue); | ||||
vm_page_t vm_page_prev(vm_page_t m); | vm_page_t vm_page_prev(vm_page_t m); | ||||
bool vm_page_ps_test(vm_page_t m, int flags, vm_page_t skip_m); | bool vm_page_ps_test(vm_page_t m, int flags, vm_page_t skip_m); | ||||
void vm_page_putfake(vm_page_t m); | void vm_page_putfake(vm_page_t m); | ||||
void vm_page_readahead_finish(vm_page_t m); | void vm_page_readahead_finish(vm_page_t m); | ||||
bool vm_page_reclaim_contig(int req, u_long npages, vm_paddr_t low, | bool vm_page_reclaim_contig(int req, u_long npages, vm_paddr_t low, | ||||
vm_paddr_t high, u_long alignment, vm_paddr_t boundary); | vm_paddr_t high, u_long alignment, vm_paddr_t boundary); | ||||
bool vm_page_reclaim_contig_domain(int domain, int req, u_long npages, | bool vm_page_reclaim_contig_domain(int domain, int req, u_long npages, | ||||
vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary); | vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary); | ||||
void vm_page_reference(vm_page_t m); | void vm_page_reference(vm_page_t m); | ||||
#define VPR_TRYFREE 0x01 | #define VPR_TRYFREE 0x01 | ||||
#define VPR_NOREUSE 0x02 | #define VPR_NOREUSE 0x02 | ||||
void vm_page_release(vm_page_t m, int flags); | void vm_page_release(vm_page_t m, int flags); | ||||
void vm_page_release_locked(vm_page_t m, int flags); | void vm_page_release_locked(vm_page_t m, int flags); | ||||
bool vm_page_remove(vm_page_t); | bool vm_page_remove(vm_page_t); | ||||
bool vm_page_remove_xbusy(vm_page_t); | |||||
int vm_page_rename(vm_page_t, vm_object_t, vm_pindex_t); | int vm_page_rename(vm_page_t, vm_object_t, vm_pindex_t); | ||||
vm_page_t vm_page_replace(vm_page_t mnew, vm_object_t object, | void vm_page_replace(vm_page_t mnew, vm_object_t object, | ||||
vm_pindex_t pindex); | vm_pindex_t pindex, vm_page_t mold); | ||||
void vm_page_requeue(vm_page_t m); | void vm_page_requeue(vm_page_t m); | ||||
int vm_page_sbusied(vm_page_t m); | int vm_page_sbusied(vm_page_t m); | ||||
vm_page_t vm_page_scan_contig(u_long npages, vm_page_t m_start, | vm_page_t vm_page_scan_contig(u_long npages, vm_page_t m_start, | ||||
vm_page_t m_end, u_long alignment, vm_paddr_t boundary, int options); | vm_page_t m_end, u_long alignment, vm_paddr_t boundary, int options); | ||||
vm_page_bits_t vm_page_set_dirty(vm_page_t m); | vm_page_bits_t vm_page_set_dirty(vm_page_t m); | ||||
void vm_page_set_valid_range(vm_page_t m, int base, int size); | void vm_page_set_valid_range(vm_page_t m, int base, int size); | ||||
int vm_page_sleep_if_busy(vm_page_t m, const char *msg); | int vm_page_sleep_if_busy(vm_page_t m, const char *msg); | ||||
int vm_page_sleep_if_xbusy(vm_page_t m, const char *msg); | int vm_page_sleep_if_xbusy(vm_page_t m, const char *msg); | ||||
Show All 16 Lines | |||||
void vm_page_set_validclean (vm_page_t, int, int); | void vm_page_set_validclean (vm_page_t, int, int); | ||||
void vm_page_clear_dirty(vm_page_t, int, int); | void vm_page_clear_dirty(vm_page_t, int, int); | ||||
void vm_page_set_invalid(vm_page_t, int, int); | void vm_page_set_invalid(vm_page_t, int, int); | ||||
void vm_page_valid(vm_page_t m); | void vm_page_valid(vm_page_t m); | ||||
int vm_page_is_valid(vm_page_t, int, int); | int vm_page_is_valid(vm_page_t, int, int); | ||||
void vm_page_test_dirty(vm_page_t); | void vm_page_test_dirty(vm_page_t); | ||||
vm_page_bits_t vm_page_bits(int base, int size); | vm_page_bits_t vm_page_bits(int base, int size); | ||||
void vm_page_zero_invalid(vm_page_t m, boolean_t setvalid); | void vm_page_zero_invalid(vm_page_t m, boolean_t setvalid); | ||||
void vm_page_free_toq(vm_page_t m); | |||||
void vm_page_free_pages_toq(struct spglist *free, bool update_wire_count); | void vm_page_free_pages_toq(struct spglist *free, bool update_wire_count); | ||||
void vm_page_dirty_KBI(vm_page_t m); | void vm_page_dirty_KBI(vm_page_t m); | ||||
void vm_page_lock_KBI(vm_page_t m, const char *file, int line); | void vm_page_lock_KBI(vm_page_t m, const char *file, int line); | ||||
void vm_page_unlock_KBI(vm_page_t m, const char *file, int line); | void vm_page_unlock_KBI(vm_page_t m, const char *file, int line); | ||||
int vm_page_trylock_KBI(vm_page_t m, const char *file, int line); | int vm_page_trylock_KBI(vm_page_t m, const char *file, int line); | ||||
#if defined(INVARIANTS) || defined(INVARIANT_SUPPORT) | #if defined(INVARIANTS) || defined(INVARIANT_SUPPORT) | ||||
void vm_page_assert_locked_KBI(vm_page_t m, const char *file, int line); | void vm_page_assert_locked_KBI(vm_page_t m, const char *file, int line); | ||||
▲ Show 20 Lines • Show All 202 Lines • ▼ Show 20 Lines | |||||
* Set page to not be dirty. Note: does not clear pmap modify bits | * Set page to not be dirty. Note: does not clear pmap modify bits | ||||
*/ | */ | ||||
static __inline void | static __inline void | ||||
vm_page_undirty(vm_page_t m) | vm_page_undirty(vm_page_t m) | ||||
{ | { | ||||
VM_PAGE_OBJECT_BUSY_ASSERT(m); | VM_PAGE_OBJECT_BUSY_ASSERT(m); | ||||
m->dirty = 0; | m->dirty = 0; | ||||
} | |||||
static inline void | |||||
vm_page_replace_checked(vm_page_t mnew, vm_object_t object, vm_pindex_t pindex, | |||||
vm_page_t mold) | |||||
{ | |||||
vm_page_t mret; | |||||
mret = vm_page_replace(mnew, object, pindex); | |||||
KASSERT(mret == mold, | |||||
("invalid page replacement, mold=%p, mret=%p", mold, mret)); | |||||
/* Unused if !INVARIANTS. */ | |||||
(void)mold; | |||||
(void)mret; | |||||
} | } | ||||
/* | /* | ||||
* vm_page_queue: | * vm_page_queue: | ||||
* | * | ||||
* Return the index of the queue containing m. This index is guaranteed | * Return the index of the queue containing m. This index is guaranteed | ||||
* not to change while the page lock is held. | * not to change while the page lock is held. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 87 Lines • Show Last 20 Lines |