Lines Matching full:mbox
60 osm_mgrp_box_t *mbox = malloc(sizeof(*mbox)); in mgrp_box_new() local
61 if (!mbox) in mgrp_box_new()
64 memset(mbox, 0, sizeof(*mbox)); in mgrp_box_new()
65 mbox->mlid = mlid; in mgrp_box_new()
66 cl_qlist_init(&mbox->mgrp_list); in mgrp_box_new()
68 return mbox; in mgrp_box_new()
71 void mgrp_box_delete(osm_mgrp_box_t *mbox) in mgrp_box_delete() argument
73 osm_mtree_destroy(mbox->root); in mgrp_box_delete()
74 free(mbox); in mgrp_box_delete()
107 void osm_mgrp_box_delete(osm_mgrp_box_t *mbox) in osm_mgrp_box_delete() argument
111 while (cl_qlist_count(&mbox->mgrp_list)) { in osm_mgrp_box_delete()
112 mgrp = cl_item_obj(cl_qlist_remove_head(&mbox->mgrp_list), in osm_mgrp_box_delete()
116 mgrp_box_delete(mbox); in osm_mgrp_box_delete()
123 osm_mgrp_box_t *mbox; in osm_mgrp_new() local
135 mbox = osm_get_mbox_by_mlid(subn, p_mgrp->mlid); in osm_mgrp_new()
136 if (!mbox && !(mbox = mgrp_box_new(cl_ntoh16(p_mgrp->mlid)))) { in osm_mgrp_new()
141 cl_qlist_insert_tail(&mbox->mgrp_list, &p_mgrp->list_item); in osm_mgrp_new()
142 subn->mboxes[mbox->mlid - IB_LID_MCAST_START_HO] = mbox; in osm_mgrp_new()
153 osm_mgrp_box_t *mbox; in osm_mgrp_cleanup() local
179 mbox = osm_get_mbox_by_mlid(subn, mgrp->mlid); in osm_mgrp_cleanup()
180 cl_qlist_remove_item(&mbox->mgrp_list, &mgrp->list_item); in osm_mgrp_cleanup()
181 if (cl_is_qlist_empty(&mbox->mgrp_list)) { in osm_mgrp_cleanup()
183 mgrp_box_delete(mbox); in osm_mgrp_cleanup()