Introduce a function rn_detachhead() that will free the
radix table root nodes. This is only needed (and available) in the virtualization case to free the resources when tearing down a virtual network stack. Sponsored by: ISPsystem Reviewed by: julian, zec MFC after: 5 days
This commit is contained in:
parent
391dab1c2d
commit
1bb635b04d
@ -1161,6 +1161,24 @@ rn_inithead(head, off)
|
||||
return (1);
|
||||
}
|
||||
|
||||
#ifdef VIMAGE
|
||||
int
|
||||
rn_detachhead(void **head)
|
||||
{
|
||||
struct radix_node_head *rnh;
|
||||
|
||||
KASSERT((head != NULL && *head != NULL),
|
||||
("%s: head already freed", __func__));
|
||||
rnh = *head;
|
||||
|
||||
/* Free <left,root,right> nodes. */
|
||||
Free(rnh);
|
||||
|
||||
*head = NULL;
|
||||
return (1);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
rn_init(int maxk)
|
||||
{
|
||||
|
@ -162,6 +162,9 @@ struct radix_node_head {
|
||||
|
||||
void rn_init(int);
|
||||
int rn_inithead(void **, int);
|
||||
#ifdef VIMAGE
|
||||
int rn_detachhead(void **);
|
||||
#endif
|
||||
int rn_refines(void *, void *);
|
||||
struct radix_node
|
||||
*rn_addmask(void *, int, int),
|
||||
|
Loading…
x
Reference in New Issue
Block a user