FreeBSD virtual memory subsystem code
vm_radix.h File Reference
#include <vm/_vm_radix.h>
Include dependency graph for vm_radix.h:
This graph shows which files directly or indirectly include this file:

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)
 

Function Documentation

◆ vm_radix_init()

static __inline void vm_radix_init ( struct vm_radix rtree)
static

Definition at line 53 of file vm_radix.h.

References vm_radix::rt_root.

Referenced by vm_object_zinit().

Here is the caller graph for this function:

◆ vm_radix_insert()

int vm_radix_insert ( struct vm_radix rtree,
vm_page_t  page 
)

◆ vm_radix_is_empty()

static __inline boolean_t vm_radix_is_empty ( struct vm_radix rtree)
static

Definition at line 60 of file vm_radix.h.

References vm_radix::rt_root.

◆ vm_radix_is_singleton()

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().

Here is the call graph for this function:

◆ vm_radix_lookup()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vm_radix_lookup_ge()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vm_radix_lookup_le()

vm_page_t vm_radix_lookup_le ( struct vm_radix rtree,
vm_pindex_t  index 
)

◆ vm_radix_lookup_unlocked()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vm_radix_reclaim_allnodes()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vm_radix_remove()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vm_radix_replace()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vm_radix_wait()

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().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ vm_radix_zinit()

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().

Here is the call graph for this function:
Here is the caller graph for this function: