本文整理汇总了C++中FsmChangeState函数的典型用法代码示例。如果您正苦于以下问题:C++ FsmChangeState函数的具体用法?C++ FsmChangeState怎么用?C++ FsmChangeState使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了FsmChangeState函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: lc_release_ind
static void
lc_release_ind(struct FsmInst *fi, int event, void *arg)
{
struct PStack *st = fi->userdata;
FsmDelTimer(&st->l3.l3m_timer, 52);
FsmChangeState(fi, ST_L3_LC_REL);
skb_queue_purge(&st->l3.squeue);
l3ml3p(st, DL_RELEASE | INDICATION);
}
开发者ID:aywq2008,项目名称:omniplay,代码行数:10,代码来源:isdnl3.c
示例2: dout_underrun
static void dout_underrun(struct FsmInst *fsm, int event, void *arg)
{
struct st5481_adapter *adapter = fsm->userdata;
struct st5481_d_out *d_out = &adapter->d_out;
if (test_bit(0, &d_out->busy) || test_bit(1, &d_out->busy)) {
FsmChangeState(&d_out->fsm, ST_DOUT_WAIT_FOR_NOT_BUSY);
} else {
dout_stop(fsm, event, arg);
}
}
开发者ID:GunioRobot,项目名称:MI424WR_GEN2_Rev_E-F,代码行数:11,代码来源:st5481_d.c
示例3: l1_go_f3
static void
l1_go_f3(struct FsmInst *fi, int event, void *arg)
{
struct st5481_adapter *adapter = fi->userdata;
if (fi->state == ST_L1_F7)
ph_disconnect(adapter);
FsmChangeState(fi, ST_L1_F3);
D_L1L2(adapter, PH_DEACTIVATE | INDICATION, NULL);
}
开发者ID:GunioRobot,项目名称:MI424WR_GEN2_Rev_E-F,代码行数:11,代码来源:st5481_d.c
示例4: lc_start_delay_check
static void
lc_start_delay_check(struct FsmInst *fi, int event, void *arg)
/* 20/09/00 - GE timer not user for NI-1 as layer 2 should stay up */
{
struct PStack *st = fi->userdata;
FsmChangeState(fi, ST_L3_LC_REL_DELAY);
/* 19/09/00 - GE timer not user for NI-1 */
if (st->protocol != ISDN_PTYPE_NI1)
FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50);
}
开发者ID:jameshilliard,项目名称:actiontec_opensrc_mi424wr-rev-ef_fw-20-19-8,代码行数:11,代码来源:isdnl3.c
示例5: l1_activate
static void
l1_activate(struct FsmInst *fi, int event, void *arg)
{
struct st5481_adapter *adapter = fi->userdata;
st5481_ph_command(adapter, ST5481_CMD_DR);
st5481_ph_command(adapter, ST5481_CMD_PUP);
FsmRestartTimer(&adapter->timer, TIMER3_VALUE, EV_TIMER3, NULL, 2);
st5481_ph_command(adapter, ST5481_CMD_AR8);
FsmChangeState(fi, ST_L1_F4);
}
开发者ID:GunioRobot,项目名称:MI424WR_GEN2_Rev_E-F,代码行数:11,代码来源:st5481_d.c
示例6: lc_connect
static void
lc_connect(struct FsmInst *fi, int event, void *arg)
{
struct PStack *st = fi->userdata;
struct sk_buff *skb = arg;
FsmChangeState(fi, ST_L3_LC_ESTAB);
while ((skb = skb_dequeue(&st->l3.squeue))) {
st->l3.l3l2(st, DL_DATA | REQUEST, skb);
}
st->l3.l3l4(st, DL_ESTABLISH | INDICATION, NULL);
}
开发者ID:shattered,项目名称:linux-m68k,代码行数:12,代码来源:isdnl3.c
示例7: l2_st6_dm_release
static void
l2_st6_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, 8);
lapb_dl_release_l2l3(l2, CONFIRM);
FsmChangeState(fi, ST_L2_4);
}
}
开发者ID:Distrotech,项目名称:mISDNuser,代码行数:12,代码来源:net_l2.c
示例8: tei_id_verify
static void
tei_id_verify(struct FsmInst *fi, int event, void *arg)
{
struct PStack *st = fi->userdata;
if (st->ma.debug)
st->ma.tei_m.printdebug(&st->ma.tei_m,
"id verify request for tei %d", st->l2.tei);
put_tei_msg(st, ID_VERIFY, 0, st->l2.tei);
FsmChangeState(&st->ma.tei_m, ST_TEI_IDVERIFY);
FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 2);
st->ma.N202 = 2;
}
开发者ID:xricson,项目名称:knoppix,代码行数:13,代码来源:tei.c
示例9: l2_queue_ui_assign
static void
l2_queue_ui_assign(struct FsmInst *fi, int event, void *arg)
{
layer2_t *l2 = fi->userdata;
msg_t *msg = arg;
msg_queue_tail(&l2->ui_queue, msg);
FsmChangeState(fi, ST_L2_2);
if ((msg = create_link_msg(MDL_ASSIGN | INDICATION, 0, 0, NULL, 0))) {
if (l2_tei(l2->tm, msg))
free_msg(msg);
}
}
开发者ID:Distrotech,项目名称:mISDNuser,代码行数:13,代码来源:net_l2.c
示例10: l2_mdl_assign
static void
l2_mdl_assign(struct FsmInst *fi, int event, void *arg)
{
layer2_t *l2 = fi->userdata;
msg_t *msg = arg;
mISDNuser_head_t *hh;
FsmChangeState(fi, ST_L2_3);
msg_trim(msg, 0);
hh = (mISDNuser_head_t *)msg_put(msg, mISDNUSER_HEAD_SIZE);
hh->prim = MDL_ASSIGN | INDICATION;
hh->dinfo = 0;
if (l2_tei(l2->tm, msg))
free_msg(msg);
}
开发者ID:Distrotech,项目名称:mISDNuser,代码行数:15,代码来源:net_l2.c
示例11: l2_released
static void
l2_released(struct FsmInst *fi, int event, void *arg)
{
layer2_t *l2 = fi->userdata;
msg_t *msg = arg;
if (!get_PollFlag(l2, msg)) {
l2_mdl_error_ua(fi, event, arg);
return;
}
free_msg(msg);
stop_t200(l2, 6);
lapb_dl_release_l2l3(l2, CONFIRM);
FsmChangeState(fi, ST_L2_4);
}
开发者ID:Distrotech,项目名称:mISDNuser,代码行数:15,代码来源:net_l2.c
示例12: lc_release_req
static void
lc_release_req(struct FsmInst *fi, int event, void *arg)
{
struct PStack *st = fi->userdata;
if (test_bit(FLG_L2BLOCK, &st->l2.flag)) {
if (st->l3.debug)
l3_debug(st, "lc_release_req: l2 blocked");
/* restart release timer */
FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 51);
} else {
FsmChangeState(fi, ST_L3_LC_REL_WAIT);
st->l3.l3l2(st, DL_RELEASE | REQUEST, NULL);
}
}
开发者ID:jameshilliard,项目名称:actiontec_opensrc_mi424wr-rev-ef_fw-20-19-8,代码行数:15,代码来源:isdnl3.c
示例13: l2_stop_multi
static void
l2_stop_multi(struct FsmInst *fi, int event, void *arg)
{
layer2_t *l2 = fi->userdata;
msg_t *msg = arg;
FsmChangeState(fi, ST_L2_4);
FsmDelTimer(&l2->t203, 3);
stop_t200(l2, 4);
send_uframe(l2, msg, UA | get_PollFlag(l2, msg), RSP);
msg_queue_purge(&l2->i_queue);
freewin(l2);
lapb_dl_release_l2l3(l2, INDICATION);
}
开发者ID:Distrotech,项目名称:mISDNuser,代码行数:15,代码来源:net_l2.c
示例14: establishlink
static void
establishlink(struct FsmInst *fi)
{
layer2_t *l2 = fi->userdata;
u_char cmd;
clear_exception(l2);
l2->rc = 0;
cmd = (test_bit(FLG_MOD128, &l2->flag) ? SABME : SABM) | 0x10;
send_uframe(l2, NULL, cmd, CMD);
FsmDelTimer(&l2->t203, 1);
restart_t200(l2, 1);
test_and_clear_bit(FLG_PEND_REL, &l2->flag);
freewin(l2);
FsmChangeState(fi, ST_L2_5);
}
开发者ID:Distrotech,项目名称:mISDNuser,代码行数:16,代码来源:net_l2.c
示例15: l2_disconnect
static void
l2_disconnect(struct FsmInst *fi, int event, void *arg)
{
layer2_t *l2 = fi->userdata;
msg_t *msg = arg;
msg_queue_purge(&l2->i_queue);
freewin(l2);
FsmChangeState(fi, ST_L2_6);
l2->rc = 0;
send_uframe(l2, NULL, DISC | 0x10, CMD);
FsmDelTimer(&l2->t203, 1);
restart_t200(l2, 2);
if (msg)
free_msg(msg);
}
开发者ID:Distrotech,项目名称:mISDNuser,代码行数:16,代码来源:net_l2.c
示例16: l2_st5_dm_release
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);
}
}
开发者ID:Distrotech,项目名称:mISDNuser,代码行数:16,代码来源:net_l2.c
示例17: tei_id_chk_req
static void
tei_id_chk_req(struct FsmInst *fi, int event, void *arg)
{
struct PStack *st = fi->userdata;
struct sk_buff *skb = arg;
int tei;
tei = skb->data[4] >> 1;
if (st->ma.debug)
st->ma.tei_m.printdebug(&st->ma.tei_m,
"identity check req tei %d", tei);
if ((st->l2.tei != -1) && ((tei == GROUP_TEI) || (tei == st->l2.tei))) {
FsmDelTimer(&st->ma.t202, 4);
FsmChangeState(&st->ma.tei_m, ST_TEI_NOP);
put_tei_msg(st, ID_CHK_RES, random_ri(), st->l2.tei);
}
}
开发者ID:xricson,项目名称:knoppix,代码行数:17,代码来源:tei.c
示例18: lc_connect
static void
lc_connect(struct FsmInst *fi, int event, void *arg)
{
struct PStack *st = fi->userdata;
struct sk_buff *skb = arg;
int dequeued = 0;
FsmChangeState(fi, ST_L3_LC_ESTAB);
while ((skb = skb_dequeue(&st->l3.squeue))) {
st->l3.l3l2(st, DL_DATA | REQUEST, skb);
dequeued++;
}
if ((!st->l3.proc) && dequeued) {
if (st->l3.debug)
l3_debug(st, "lc_connect: release link");
FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL);
} else
l3ml3p(st, DL_ESTABLISH | INDICATION);
}
开发者ID:jameshilliard,项目名称:actiontec_opensrc_mi424wr-rev-ef_fw-20-19-8,代码行数:19,代码来源:isdnl3.c
示例19: l2_start_multi
static void
l2_start_multi(struct FsmInst *fi, int event, void *arg)
{
layer2_t *l2 = fi->userdata;
msg_t *msg = arg;
send_uframe(l2, NULL, UA | get_PollFlag(l2, msg), RSP);
clear_exception(l2);
l2->vs = 0;
l2->va = 0;
l2->vr = 0;
l2->sow = 0;
FsmChangeState(fi, ST_L2_7);
FsmAddTimer(&l2->t203, l2->T203, EV_L2_T203, NULL, 3);
msg_trim(msg, 0);
msg_push(msg, mISDNUSER_HEAD_SIZE);
if (l2up(l2, DL_ESTABLISH | INDICATION, CES(l2), msg))
free_msg(msg);
}
开发者ID:Distrotech,项目名称:mISDNuser,代码行数:20,代码来源:net_l2.c
示例20: tei_id_request
static void
tei_id_request(struct FsmInst *fi, int event, void *arg)
{
struct PStack *st = fi->userdata;
if (st->l2.tei != -1) {
st->ma.tei_m.printdebug(&st->ma.tei_m,
"assign request for already assigned tei %d",
st->l2.tei);
return;
}
st->ma.ri = random_ri();
if (st->ma.debug)
st->ma.tei_m.printdebug(&st->ma.tei_m,
"assign request ri %d", st->ma.ri);
put_tei_msg(st, ID_REQUEST, st->ma.ri, 127);
FsmChangeState(&st->ma.tei_m, ST_TEI_IDREQ);
FsmAddTimer(&st->ma.t202, st->ma.T202, EV_T202, NULL, 1);
st->ma.N202 = 3;
}
开发者ID:xricson,项目名称:knoppix,代码行数:20,代码来源:tei.c
注:本文中的FsmChangeState函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论