Add pctrie_init() and vm_radix_init() to initialize generic pctrie and
vm_radix trie. Existing vm_radix_init() function is renamed to vm_radix_zinit(). Inlines moved out of the _ headers. Reviewed by: alc, markj (previous version) Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D11661
This commit is contained in:
parent
2d832b2211
commit
f16b72a2cc
@ -38,14 +38,4 @@ struct pctrie {
|
|||||||
uintptr_t pt_root;
|
uintptr_t pt_root;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef _KERNEL
|
|
||||||
|
|
||||||
static __inline boolean_t
|
|
||||||
pctrie_is_empty(struct pctrie *ptree)
|
|
||||||
{
|
|
||||||
|
|
||||||
return (ptree->pt_root == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* _KERNEL */
|
|
||||||
#endif /* !__SYS_PCTRIE_H_ */
|
#endif /* !__SYS_PCTRIE_H_ */
|
||||||
|
@ -119,5 +119,19 @@ void pctrie_remove(struct pctrie *ptree, uint64_t key,
|
|||||||
size_t pctrie_node_size(void);
|
size_t pctrie_node_size(void);
|
||||||
int pctrie_zone_init(void *mem, int size, int flags);
|
int pctrie_zone_init(void *mem, int size, int flags);
|
||||||
|
|
||||||
|
static __inline void
|
||||||
|
pctrie_init(struct pctrie *ptree)
|
||||||
|
{
|
||||||
|
|
||||||
|
ptree->pt_root = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline boolean_t
|
||||||
|
pctrie_is_empty(struct pctrie *ptree)
|
||||||
|
{
|
||||||
|
|
||||||
|
return (ptree->pt_root == 0);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* _KERNEL */
|
#endif /* _KERNEL */
|
||||||
#endif /* !_SYS_PCTRIE_H_ */
|
#endif /* !_SYS_PCTRIE_H_ */
|
||||||
|
@ -38,14 +38,4 @@ struct vm_radix {
|
|||||||
uintptr_t rt_root;
|
uintptr_t rt_root;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef _KERNEL
|
|
||||||
|
|
||||||
static __inline boolean_t
|
|
||||||
vm_radix_is_empty(struct vm_radix *rtree)
|
|
||||||
{
|
|
||||||
|
|
||||||
return (rtree->rt_root == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* _KERNEL */
|
|
||||||
#endif /* !__VM_RADIX_H_ */
|
#endif /* !__VM_RADIX_H_ */
|
||||||
|
@ -204,7 +204,7 @@ vm_object_zinit(void *mem, int size, int flags)
|
|||||||
/* These are true for any object that has been freed */
|
/* These are true for any object that has been freed */
|
||||||
object->type = OBJT_DEAD;
|
object->type = OBJT_DEAD;
|
||||||
object->ref_count = 0;
|
object->ref_count = 0;
|
||||||
object->rtree.rt_root = 0;
|
vm_radix_init(&object->rtree);
|
||||||
object->paging_in_progress = 0;
|
object->paging_in_progress = 0;
|
||||||
object->resident_page_count = 0;
|
object->resident_page_count = 0;
|
||||||
object->shadow_count = 0;
|
object->shadow_count = 0;
|
||||||
@ -301,7 +301,7 @@ vm_object_init(void)
|
|||||||
#endif
|
#endif
|
||||||
vm_object_zinit, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
|
vm_object_zinit, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
|
||||||
|
|
||||||
vm_radix_init();
|
vm_radix_zinit();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -310,7 +310,7 @@ SYSINIT(vm_radix_reserve_kva, SI_SUB_KMEM, SI_ORDER_THIRD,
|
|||||||
* Initialize the UMA slab zone.
|
* Initialize the UMA slab zone.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
vm_radix_init(void)
|
vm_radix_zinit(void)
|
||||||
{
|
{
|
||||||
|
|
||||||
vm_radix_node_zone = uma_zcreate("RADIX NODE",
|
vm_radix_node_zone = uma_zcreate("RADIX NODE",
|
||||||
|
@ -35,7 +35,6 @@
|
|||||||
|
|
||||||
#ifdef _KERNEL
|
#ifdef _KERNEL
|
||||||
|
|
||||||
void vm_radix_init(void);
|
|
||||||
int vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
|
int vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
|
||||||
boolean_t vm_radix_is_singleton(struct vm_radix *rtree);
|
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(struct vm_radix *rtree, vm_pindex_t index);
|
||||||
@ -44,6 +43,21 @@ vm_page_t vm_radix_lookup_le(struct vm_radix *rtree, vm_pindex_t index);
|
|||||||
void vm_radix_reclaim_allnodes(struct vm_radix *rtree);
|
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_remove(struct vm_radix *rtree, vm_pindex_t index);
|
||||||
vm_page_t vm_radix_replace(struct vm_radix *rtree, vm_page_t newpage);
|
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)
|
||||||
|
{
|
||||||
|
|
||||||
|
rtree->rt_root = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static __inline boolean_t
|
||||||
|
vm_radix_is_empty(struct vm_radix *rtree)
|
||||||
|
{
|
||||||
|
|
||||||
|
return (rtree->rt_root == 0);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* _KERNEL */
|
#endif /* _KERNEL */
|
||||||
#endif /* !_VM_RADIX_H_ */
|
#endif /* !_VM_RADIX_H_ */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user