pdch_ulc: Create helper API pdch_ulc_release_node

Change-Id: I6362ad7382c2b73e6fedb11182964be96e5c8d35
This commit is contained in:
Pau Espin 2021-03-24 14:02:49 +01:00
parent 9a6f0b191a
commit ade9c2f553
2 changed files with 9 additions and 5 deletions

View File

@ -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);
}
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)
{
struct pdch_ulc_node *item = pdch_ulc_get_node(ulc, fn);
if (!item)
return -ENOKEY;
rb_erase(&item->node, &ulc->tree_root);
talloc_free(item);
pdch_ulc_release_node(ulc, item);
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
* no-more existant node */
tree_modified = true;
rb_erase(&item->node, &ulc->tree_root);
talloc_free(item);
pdch_ulc_release_node(ulc, item);
break;
}
} while (tree_modified);

View File

@ -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_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);
int pdch_ulc_release_fn(struct pdch_ulc *ulc, uint32_t fn);
void pdch_ulc_expire_fn(struct pdch_ulc *ulc, uint32_t fn);