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:
Konstantin Belousov 2017-07-19 20:52:47 +00:00
parent d7938e0594
commit cd1241fbd0
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=321247
6 changed files with 32 additions and 24 deletions

View File

@ -38,14 +38,4 @@ struct pctrie {
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_ */

View File

@ -119,5 +119,19 @@ void pctrie_remove(struct pctrie *ptree, uint64_t key,
size_t pctrie_node_size(void);
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 /* !_SYS_PCTRIE_H_ */

View File

@ -38,14 +38,4 @@ struct vm_radix {
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_ */

View File

@ -204,7 +204,7 @@ vm_object_zinit(void *mem, int size, int flags)
/* These are true for any object that has been freed */
object->type = OBJT_DEAD;
object->ref_count = 0;
object->rtree.rt_root = 0;
vm_radix_init(&object->rtree);
object->paging_in_progress = 0;
object->resident_page_count = 0;
object->shadow_count = 0;
@ -301,7 +301,7 @@ vm_object_init(void)
#endif
vm_object_zinit, NULL, UMA_ALIGN_PTR, UMA_ZONE_NOFREE);
vm_radix_init();
vm_radix_zinit();
}
void

View File

@ -310,7 +310,7 @@ SYSINIT(vm_radix_reserve_kva, SI_SUB_KMEM, SI_ORDER_THIRD,
* Initialize the UMA slab zone.
*/
void
vm_radix_init(void)
vm_radix_zinit(void)
{
vm_radix_node_zone = uma_zcreate("RADIX NODE",

View File

@ -35,7 +35,6 @@
#ifdef _KERNEL
void vm_radix_init(void);
int vm_radix_insert(struct vm_radix *rtree, vm_page_t page);
boolean_t vm_radix_is_singleton(struct vm_radix *rtree);
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);
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)
{
rtree->rt_root = 0;
}
static __inline boolean_t
vm_radix_is_empty(struct vm_radix *rtree)
{
return (rtree->rt_root == 0);
}
#endif /* _KERNEL */
#endif /* !_VM_RADIX_H_ */