Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/vm_page.h
Context not available. | |||||
#define PQ_NONE 255 | #define PQ_NONE 255 | ||||
#define PQ_INACTIVE 0 | #define PQ_INACTIVE 0 | ||||
#define PQ_ACTIVE 1 | #define PQ_ACTIVE 1 | ||||
#define PQ_COUNT 2 | #define PQ_LAUNDRY 2 | ||||
#define PQ_COUNT 3 | |||||
TAILQ_HEAD(pglist, vm_page); | TAILQ_HEAD(pglist, vm_page); | ||||
SLIST_HEAD(spglist, vm_page); | SLIST_HEAD(spglist, vm_page); | ||||
Context not available. | |||||
boolean_t vmd_oom; | boolean_t vmd_oom; | ||||
int vmd_oom_seq; | int vmd_oom_seq; | ||||
int vmd_last_active_scan; | int vmd_last_active_scan; | ||||
struct vm_page vmd_laundry_marker; | |||||
struct vm_page vmd_marker; /* marker for pagedaemon private use */ | struct vm_page vmd_marker; /* marker for pagedaemon private use */ | ||||
struct vm_page vmd_inacthead; /* marker for LRU-defeating insertions */ | struct vm_page vmd_inacthead; /* marker for LRU-defeating insertions */ | ||||
}; | }; | ||||
Context not available. | |||||
#define vm_pagequeue_assert_locked(pq) mtx_assert(&(pq)->pq_mutex, MA_OWNED) | #define vm_pagequeue_assert_locked(pq) mtx_assert(&(pq)->pq_mutex, MA_OWNED) | ||||
#define vm_pagequeue_lock(pq) mtx_lock(&(pq)->pq_mutex) | #define vm_pagequeue_lock(pq) mtx_lock(&(pq)->pq_mutex) | ||||
#define vm_pagequeue_lockptr(pq) (&(pq)->pq_mutex) | |||||
#define vm_pagequeue_unlock(pq) mtx_unlock(&(pq)->pq_mutex) | #define vm_pagequeue_unlock(pq) mtx_unlock(&(pq)->pq_mutex) | ||||
#ifdef _KERNEL | #ifdef _KERNEL | ||||
Context not available. | |||||
#define PG_FICTITIOUS 0x0004 /* physical page doesn't exist */ | #define PG_FICTITIOUS 0x0004 /* physical page doesn't exist */ | ||||
#define PG_ZERO 0x0008 /* page is zeroed */ | #define PG_ZERO 0x0008 /* page is zeroed */ | ||||
#define PG_MARKER 0x0010 /* special queue marker page */ | #define PG_MARKER 0x0010 /* special queue marker page */ | ||||
#define PG_WINATCFLS 0x0040 /* flush dirty page on inactive q */ | |||||
#define PG_NODUMP 0x0080 /* don't include this page in a dump */ | #define PG_NODUMP 0x0080 /* don't include this page in a dump */ | ||||
#define PG_UNHOLDFREE 0x0100 /* delayed free of a held page */ | #define PG_UNHOLDFREE 0x0100 /* delayed free of a held page */ | ||||
Context not available. | |||||
vm_paddr_t boundary, vm_memattr_t memattr); | vm_paddr_t boundary, vm_memattr_t memattr); | ||||
vm_page_t vm_page_alloc_freelist(int, int); | vm_page_t vm_page_alloc_freelist(int, int); | ||||
vm_page_t vm_page_grab (vm_object_t, vm_pindex_t, int); | vm_page_t vm_page_grab (vm_object_t, vm_pindex_t, int); | ||||
void vm_page_cache(vm_page_t); | |||||
void vm_page_cache_free(vm_object_t, vm_pindex_t, vm_pindex_t); | void vm_page_cache_free(vm_object_t, vm_pindex_t, vm_pindex_t); | ||||
void vm_page_cache_transfer(vm_object_t, vm_pindex_t, vm_object_t); | void vm_page_cache_transfer(vm_object_t, vm_pindex_t, vm_object_t); | ||||
int vm_page_try_to_cache (vm_page_t); | |||||
int vm_page_try_to_free (vm_page_t); | int vm_page_try_to_free (vm_page_t); | ||||
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); | ||||
Context not available. | |||||
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); | ||||
boolean_t vm_page_is_cached(vm_object_t object, vm_pindex_t pindex); | boolean_t vm_page_is_cached(vm_object_t object, vm_pindex_t pindex); | ||||
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); | ||||
int vm_page_pa_tryrelock(pmap_t, vm_paddr_t, vm_paddr_t *); | int vm_page_pa_tryrelock(pmap_t, vm_paddr_t, vm_paddr_t *); | ||||
Context not available. | |||||
(void)mret; | (void)mret; | ||||
} | } | ||||
static inline bool | |||||
vm_page_active(vm_page_t m) | |||||
{ | |||||
return (m->queue == PQ_ACTIVE); | |||||
} | |||||
static inline bool | |||||
vm_page_inactive(vm_page_t m) | |||||
{ | |||||
return (m->queue == PQ_INACTIVE); | |||||
} | |||||
static inline bool | |||||
vm_page_in_laundry(vm_page_t m) | |||||
{ | |||||
return (m->queue == PQ_LAUNDRY); | |||||
} | |||||
#endif /* _KERNEL */ | #endif /* _KERNEL */ | ||||
#endif /* !_VM_PAGE_ */ | #endif /* !_VM_PAGE_ */ | ||||
Context not available. |