inline void lapb_dl_release_l2l3(struct layer2 *l2, int f) { if (test_bit(FLG_LAPB, &l2->flag)) l2down_create(l2, PH_DEACTIVATE_REQ, l2_newid(l2), 0, NULL); l2up_create(l2, f, 0, NULL); }
inline void lapb_dl_release_l2l3(layer2_t *l2, int f) { if (test_bit(FLG_LAPB, &l2->flag)) l2down_create(l2, PH_DEACTIVATE | REQUEST, 0, 0, NULL); l2up_create(l2, DL_RELEASE | f, CES(l2), 0, NULL); }
static void l2_st5_dm_release(struct FsmInst *fi, int event, void *arg) { layer2_t *l2 = fi->userdata; msg_t *msg = arg; if (get_PollFlagFree(l2, msg)) { stop_t200(l2, 7); if (!test_bit(FLG_L3_INIT, &l2->flag)) msg_queue_purge(&l2->i_queue); if (test_bit(FLG_LAPB, &l2->flag)) l2down_create(l2, PH_DEACTIVATE | REQUEST, 0, 0, NULL); st5_dl_release_l2l3(l2); FsmChangeState(fi, ST_L2_4); } }
static void l2_st5_dm_release(struct FsmInst *fi, int event, void *arg) { struct layer2 *l2 = fi->userdata; struct sk_buff *skb = arg; if (get_PollFlagFree(l2, skb)) { stop_t200(l2, 7); if (!test_bit(FLG_L3_INIT, &l2->flag)) skb_queue_purge(&l2->i_queue); if (test_bit(FLG_LAPB, &l2->flag)) l2down_create(l2, PH_DEACTIVATE_REQ, l2_newid(l2), 0, NULL); st5_dl_release_l2l3(l2); mISDN_FsmChangeState(fi, ST_L2_4); if (l2->tm) l2_tei(l2, MDL_STATUS_DOWN_IND, 0); } }