pdch_ulc: Create helper API pdch_ulc_release_node
Change-Id: I6362ad7382c2b73e6fedb11182964be96e5c8d35
This commit is contained in:
parent
9a6f0b191a
commit
ade9c2f553
|
@ -183,13 +183,18 @@ int pdch_ulc_reserve_sba(struct pdch_ulc *ulc, struct gprs_rlcmac_sba *sba)
|
||||||
return pdch_ulc_add_node(ulc, item);
|
return pdch_ulc_add_node(ulc, item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pdch_ulc_release_node(struct pdch_ulc *ulc, struct pdch_ulc_node *item)
|
||||||
|
{
|
||||||
|
rb_erase(&item->node, &ulc->tree_root);
|
||||||
|
talloc_free(item);
|
||||||
|
}
|
||||||
|
|
||||||
int pdch_ulc_release_fn(struct pdch_ulc *ulc, uint32_t fn)
|
int pdch_ulc_release_fn(struct pdch_ulc *ulc, uint32_t fn)
|
||||||
{
|
{
|
||||||
struct pdch_ulc_node *item = pdch_ulc_get_node(ulc, fn);
|
struct pdch_ulc_node *item = pdch_ulc_get_node(ulc, fn);
|
||||||
if (!item)
|
if (!item)
|
||||||
return -ENOKEY;
|
return -ENOKEY;
|
||||||
rb_erase(&item->node, &ulc->tree_root);
|
pdch_ulc_release_node(ulc, item);
|
||||||
talloc_free(item);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -222,8 +227,7 @@ void pdch_ulc_release_tbf(struct pdch_ulc *ulc, const struct gprs_rlcmac_tbf *tb
|
||||||
* search from start (to avoid traverse continue from
|
* search from start (to avoid traverse continue from
|
||||||
* no-more existant node */
|
* no-more existant node */
|
||||||
tree_modified = true;
|
tree_modified = true;
|
||||||
rb_erase(&item->node, &ulc->tree_root);
|
pdch_ulc_release_node(ulc, item);
|
||||||
talloc_free(item);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} while (tree_modified);
|
} while (tree_modified);
|
||||||
|
|
|
@ -77,8 +77,8 @@ struct pdch_ulc_node *pdch_ulc_pop_node(struct pdch_ulc *ulc, uint32_t fn);
|
||||||
struct gprs_rlcmac_sba *pdch_ulc_get_sba(struct pdch_ulc *ulc, uint32_t fn);
|
struct gprs_rlcmac_sba *pdch_ulc_get_sba(struct pdch_ulc *ulc, uint32_t fn);
|
||||||
struct gprs_rlcmac_tbf *pdch_ulc_get_tbf_poll(struct pdch_ulc *ulc, uint32_t fn);
|
struct gprs_rlcmac_tbf *pdch_ulc_get_tbf_poll(struct pdch_ulc *ulc, uint32_t fn);
|
||||||
|
|
||||||
|
void pdch_ulc_release_node(struct pdch_ulc *ulc, struct pdch_ulc_node *item);
|
||||||
void pdch_ulc_release_tbf(struct pdch_ulc *ulc, const struct gprs_rlcmac_tbf *tbf);
|
void pdch_ulc_release_tbf(struct pdch_ulc *ulc, const struct gprs_rlcmac_tbf *tbf);
|
||||||
|
|
||||||
int pdch_ulc_release_fn(struct pdch_ulc *ulc, uint32_t fn);
|
int pdch_ulc_release_fn(struct pdch_ulc *ulc, uint32_t fn);
|
||||||
|
|
||||||
void pdch_ulc_expire_fn(struct pdch_ulc *ulc, uint32_t fn);
|
void pdch_ulc_expire_fn(struct pdch_ulc *ulc, uint32_t fn);
|
||||||
|
|
Loading…
Reference in New Issue