FreeBSD virtual memory subsystem code
|
#include <vm/_vm_radix.h>
Go to the source code of this file.
Functions | |
int | vm_radix_insert (struct vm_radix *rtree, vm_page_t page) |
void | vm_radix_wait (void) |
boolean_t | vm_radix_is_singleton (struct vm_radix *rtree) |
vm_page_t | vm_radix_lookup (struct vm_radix *rtree, vm_pindex_t index) |
vm_page_t | vm_radix_lookup_ge (struct vm_radix *rtree, vm_pindex_t index) |
vm_page_t | vm_radix_lookup_le (struct vm_radix *rtree, vm_pindex_t index) |
vm_page_t | vm_radix_lookup_unlocked (struct vm_radix *rtree, vm_pindex_t index) |
void | vm_radix_reclaim_allnodes (struct vm_radix *rtree) |
vm_page_t | vm_radix_remove (struct vm_radix *rtree, vm_pindex_t index) |
vm_page_t | vm_radix_replace (struct vm_radix *rtree, vm_page_t newpage) |
void | vm_radix_zinit (void) |
static __inline void | vm_radix_init (struct vm_radix *rtree) |
static __inline boolean_t | vm_radix_is_empty (struct vm_radix *rtree) |
|
static |
Definition at line 53 of file vm_radix.h.
References vm_radix::rt_root.
Referenced by vm_object_zinit().
int vm_radix_insert | ( | struct vm_radix * | rtree, |
vm_page_t | page | ||
) |
Definition at line 386 of file vm_radix.c.
References LOCKED, vm_radix::rt_root, UNSERIALIZED, vm_radix_addpage(), VM_RADIX_ISLEAF, vm_radix_isleaf(), vm_radix_keybarr(), vm_radix_keydiff(), vm_radix_node_get(), vm_radix_node_load(), vm_radix_node_store(), vm_radix_root_load(), vm_radix_slot(), vm_radix_topage(), and vm_radix_trimkey().
Referenced by vm_page_insert_after(), and vm_page_rename().
|
static |
Definition at line 60 of file vm_radix.h.
References vm_radix::rt_root.
boolean_t vm_radix_is_singleton | ( | struct vm_radix * | rtree | ) |
Definition at line 463 of file vm_radix.c.
References LOCKED, vm_radix_isleaf(), and vm_radix_root_load().
vm_page_t vm_radix_lookup | ( | struct vm_radix * | rtree, |
vm_pindex_t | index | ||
) |
Definition at line 507 of file vm_radix.c.
References _vm_radix_lookup(), and LOCKED.
Referenced by vm_page_lookup().
vm_page_t vm_radix_lookup_ge | ( | struct vm_radix * | rtree, |
vm_pindex_t | index | ||
) |
Definition at line 534 of file vm_radix.c.
References LOCKED, VM_RADIX_COUNT, vm_radix_isleaf(), vm_radix_keybarr(), VM_RADIX_LIMIT, vm_radix_node_load(), vm_radix_root_load(), vm_radix_slot(), vm_radix_topage(), vm_radix_trimkey(), and VM_RADIX_UNITLEVEL.
Referenced by vm_page_find_least().
vm_page_t vm_radix_lookup_le | ( | struct vm_radix * | rtree, |
vm_pindex_t | index | ||
) |
Definition at line 646 of file vm_radix.c.
References LOCKED, VM_RADIX_COUNT, vm_radix_isleaf(), vm_radix_keybarr(), VM_RADIX_LIMIT, vm_radix_node_load(), vm_radix_root_load(), vm_radix_slot(), vm_radix_topage(), vm_radix_trimkey(), and VM_RADIX_UNITLEVEL.
Referenced by kmem_back_domain(), vm_page_alloc(), vm_page_alloc_contig_domain(), vm_page_alloc_domain(), vm_page_grab_pages(), vm_page_insert(), and vm_page_rename().
vm_page_t vm_radix_lookup_unlocked | ( | struct vm_radix * | rtree, |
vm_pindex_t | index | ||
) |
Definition at line 519 of file vm_radix.c.
References _vm_radix_lookup(), SMR, and vm_radix_smr.
Referenced by vm_page_acquire_unlocked(), vm_page_lookup_unlocked(), and vm_page_relookup().
void vm_radix_reclaim_allnodes | ( | struct vm_radix * | rtree | ) |
Definition at line 825 of file vm_radix.c.
References LOCKED, UNSERIALIZED, vm_radix_isleaf(), vm_radix_reclaim_allnodes_int(), vm_radix_root_load(), and vm_radix_root_store().
Referenced by vm_object_terminate_pages().
vm_page_t vm_radix_remove | ( | struct vm_radix * | rtree, |
vm_pindex_t | index | ||
) |
Definition at line 761 of file vm_radix.c.
References LOCKED, VM_RADIX_COUNT, vm_radix_isleaf(), vm_radix_node_load(), vm_radix_node_put(), vm_radix_node_store(), vm_radix_root_load(), vm_radix_root_store(), vm_radix_slot(), and vm_radix_topage().
Referenced by vm_page_object_remove().
vm_page_t vm_radix_replace | ( | struct vm_radix * | rtree, |
vm_page_t | newpage | ||
) |
Definition at line 842 of file vm_radix.c.
References LOCKED, vm_radix::rt_root, VM_RADIX_ISLEAF, vm_radix_isleaf(), vm_radix_keybarr(), vm_radix_node_load(), vm_radix_node_store(), vm_radix_root_load(), vm_radix_slot(), and vm_radix_topage().
Referenced by vm_page_replace_hold().
void vm_radix_wait | ( | void | ) |
Definition at line 881 of file vm_radix.c.
References uma_zwait(), and vm_radix_node_zone.
Referenced by vm_object_collapse_scan_wait(), vm_object_split(), vm_page_alloc_contig_domain(), and vm_page_alloc_domain_after().
void vm_radix_zinit | ( | void | ) |
Definition at line 372 of file vm_radix.c.
References uma_zcreate(), uma_zone_get_smr(), UMA_ZONE_SMR, UMA_ZONE_VM, UMA_ZONE_ZINIT, vm_radix_node_zone, VM_RADIX_PAD, and vm_radix_smr.
Referenced by vm_object_init().