Lines Matching refs:st
73 struct PStack *st = fi->userdata; in l3m_debug() local
76 VHiSax_putstatus(st->l1.hardware, st->l3.debug_id, fmt, args); in l3m_debug()
156 l3_debug(pc->st, "%s cr %d %d --> %d", __func__, in newl3state()
166 t->pc->st->lli.l4l3(t->pc->st, t->event, t->pc); in L3ExpireTimer()
216 no_l3_proto(struct PStack *st, int pr, void *arg) in no_l3_proto() argument
220 HiSax_putstatus(st->l1.hardware, "L3", "no D protocol"); in no_l3_proto()
227 no_l3_proto_spec(struct PStack *st, isdn_ctrl *ic) in no_l3_proto_spec() argument
234 *getl3proc(struct PStack *st, int cr) in getl3proc() argument
236 struct l3_process *p = st->l3.proc; in getl3proc()
247 *new_l3_process(struct PStack *st, int cr) in new_l3_process() argument
255 if (!st->l3.proc) in new_l3_process()
256 st->l3.proc = p; in new_l3_process()
258 np = st->l3.proc; in new_l3_process()
264 p->debug = st->l3.debug; in new_l3_process()
268 p->st = st; in new_l3_process()
269 p->N303 = st->l3.N303; in new_l3_process()
281 np = p->st->l3.proc; in release_l3_process()
287 else if (!(p->st->l3.proc = np->next) && in release_l3_process()
288 !test_bit(FLG_PTP, &p->st->l2.flag)) { in release_l3_process()
290 l3_debug(p->st, "release_l3_process: last process"); in release_l3_process()
291 if (skb_queue_empty(&p->st->l3.squeue)) { in release_l3_process()
293 l3_debug(p->st, "release_l3_process: release link"); in release_l3_process()
294 if (p->st->protocol != ISDN_PTYPE_NI1) in release_l3_process()
295 FsmEvent(&p->st->l3.l3m, EV_RELEASE_REQ, NULL); in release_l3_process()
297 FsmEvent(&p->st->l3.l3m, EV_RELEASE_IND, NULL); in release_l3_process()
300 l3_debug(p->st, "release_l3_process: not release link"); in release_l3_process()
310 l3_debug(p->st, "HiSax internal L3 error CR(%d) not in list", p->callref); in release_l3_process()
314 l3ml3p(struct PStack *st, int pr) in l3ml3p() argument
316 struct l3_process *p = st->l3.proc; in l3ml3p()
322 st->l3.l3ml3(st, pr, p); in l3ml3p()
328 setstack_l3dc(struct PStack *st, struct Channel *chanp) in setstack_l3dc() argument
332 st->l3.proc = NULL; in setstack_l3dc()
333 st->l3.global = NULL; in setstack_l3dc()
334 skb_queue_head_init(&st->l3.squeue); in setstack_l3dc()
335 st->l3.l3m.fsm = &l3fsm; in setstack_l3dc()
336 st->l3.l3m.state = ST_L3_LC_REL; in setstack_l3dc()
337 st->l3.l3m.debug = 1; in setstack_l3dc()
338 st->l3.l3m.userdata = st; in setstack_l3dc()
339 st->l3.l3m.userint = 0; in setstack_l3dc()
340 st->l3.l3m.printdebug = l3m_debug; in setstack_l3dc()
341 FsmInitTimer(&st->l3.l3m, &st->l3.l3m_timer); in setstack_l3dc()
342 strcpy(st->l3.debug_id, "L3DC "); in setstack_l3dc()
343 st->lli.l4l3_proto = no_l3_proto_spec; in setstack_l3dc()
346 if (st->protocol == ISDN_PTYPE_EURO) { in setstack_l3dc()
347 setstack_dss1(st); in setstack_l3dc()
351 if (st->protocol == ISDN_PTYPE_NI1) { in setstack_l3dc()
352 setstack_ni1(st); in setstack_l3dc()
356 if (st->protocol == ISDN_PTYPE_1TR6) { in setstack_l3dc()
357 setstack_1tr6(st); in setstack_l3dc()
360 if (st->protocol == ISDN_PTYPE_LEASED) { in setstack_l3dc()
361 st->lli.l4l3 = no_l3_proto; in setstack_l3dc()
362 st->l2.l2l3 = no_l3_proto; in setstack_l3dc()
363 st->l3.l3ml3 = no_l3_proto; in setstack_l3dc()
366 st->lli.l4l3 = no_l3_proto; in setstack_l3dc()
367 st->l2.l2l3 = no_l3_proto; in setstack_l3dc()
368 st->l3.l3ml3 = no_l3_proto; in setstack_l3dc()
370 (st->protocol == ISDN_PTYPE_1TR6) ? "1tr6" : in setstack_l3dc()
371 (st->protocol == ISDN_PTYPE_EURO) ? "euro" : in setstack_l3dc()
372 (st->protocol == ISDN_PTYPE_NI1) ? "ni1" : in setstack_l3dc()
375 st->protocol = -1; in setstack_l3dc()
380 isdnl3_trans(struct PStack *st, int pr, void *arg) { in isdnl3_trans() argument
381 st->l3.l3l2(st, pr, arg); in isdnl3_trans()
385 releasestack_isdnl3(struct PStack *st) in releasestack_isdnl3() argument
387 while (st->l3.proc) in releasestack_isdnl3()
388 release_l3_process(st->l3.proc); in releasestack_isdnl3()
389 if (st->l3.global) { in releasestack_isdnl3()
390 StopAllL3Timer(st->l3.global); in releasestack_isdnl3()
391 kfree(st->l3.global); in releasestack_isdnl3()
392 st->l3.global = NULL; in releasestack_isdnl3()
394 FsmDelTimer(&st->l3.l3m_timer, 54); in releasestack_isdnl3()
395 skb_queue_purge(&st->l3.squeue); in releasestack_isdnl3()
399 setstack_l3bc(struct PStack *st, struct Channel *chanp) in setstack_l3bc() argument
402 st->l3.proc = NULL; in setstack_l3bc()
403 st->l3.global = NULL; in setstack_l3bc()
404 skb_queue_head_init(&st->l3.squeue); in setstack_l3bc()
405 st->l3.l3m.fsm = &l3fsm; in setstack_l3bc()
406 st->l3.l3m.state = ST_L3_LC_REL; in setstack_l3bc()
407 st->l3.l3m.debug = 1; in setstack_l3bc()
408 st->l3.l3m.userdata = st; in setstack_l3bc()
409 st->l3.l3m.userint = 0; in setstack_l3bc()
410 st->l3.l3m.printdebug = l3m_debug; in setstack_l3bc()
411 strcpy(st->l3.debug_id, "L3BC "); in setstack_l3bc()
412 st->lli.l4l3 = isdnl3_trans; in setstack_l3bc()
420 struct PStack *st = fi->userdata; in lc_activate() local
423 st->l3.l3l2(st, DL_ESTABLISH | REQUEST, NULL); in lc_activate()
429 struct PStack *st = fi->userdata; in lc_connect() local
434 while ((skb = skb_dequeue(&st->l3.squeue))) { in lc_connect()
435 st->l3.l3l2(st, DL_DATA | REQUEST, skb); in lc_connect()
438 if ((!st->l3.proc) && dequeued) { in lc_connect()
439 if (st->l3.debug) in lc_connect()
440 l3_debug(st, "lc_connect: release link"); in lc_connect()
441 FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL); in lc_connect()
443 l3ml3p(st, DL_ESTABLISH | INDICATION); in lc_connect()
449 struct PStack *st = fi->userdata; in lc_connected() local
453 FsmDelTimer(&st->l3.l3m_timer, 51); in lc_connected()
455 while ((skb = skb_dequeue(&st->l3.squeue))) { in lc_connected()
456 st->l3.l3l2(st, DL_DATA | REQUEST, skb); in lc_connected()
459 if ((!st->l3.proc) && dequeued) { in lc_connected()
460 if (st->l3.debug) in lc_connected()
461 l3_debug(st, "lc_connected: release link"); in lc_connected()
462 FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL); in lc_connected()
464 l3ml3p(st, DL_ESTABLISH | CONFIRM); in lc_connected()
470 struct PStack *st = fi->userdata; in lc_start_delay() local
473 FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50); in lc_start_delay()
480 struct PStack *st = fi->userdata; in lc_start_delay_check() local
484 if (st->protocol != ISDN_PTYPE_NI1) in lc_start_delay_check()
485 FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 50); in lc_start_delay_check()
491 struct PStack *st = fi->userdata; in lc_release_req() local
493 if (test_bit(FLG_L2BLOCK, &st->l2.flag)) { in lc_release_req()
494 if (st->l3.debug) in lc_release_req()
495 l3_debug(st, "lc_release_req: l2 blocked"); in lc_release_req()
497 FsmAddTimer(&st->l3.l3m_timer, DREL_TIMER_VALUE, EV_TIMEOUT, NULL, 51); in lc_release_req()
500 st->l3.l3l2(st, DL_RELEASE | REQUEST, NULL); in lc_release_req()
507 struct PStack *st = fi->userdata; in lc_release_ind() local
509 FsmDelTimer(&st->l3.l3m_timer, 52); in lc_release_ind()
511 skb_queue_purge(&st->l3.squeue); in lc_release_ind()
512 l3ml3p(st, DL_RELEASE | INDICATION); in lc_release_ind()
518 struct PStack *st = fi->userdata; in lc_release_cnf() local
521 skb_queue_purge(&st->l3.squeue); in lc_release_cnf()
522 l3ml3p(st, DL_RELEASE | CONFIRM); in lc_release_cnf()
546 l3_msg(struct PStack *st, int pr, void *arg) in l3_msg() argument
550 if (st->l3.l3m.state == ST_L3_LC_ESTAB) { in l3_msg()
551 st->l3.l3l2(st, pr, arg); in l3_msg()
555 skb_queue_tail(&st->l3.squeue, skb); in l3_msg()
556 FsmEvent(&st->l3.l3m, EV_ESTABLISH_REQ, NULL); in l3_msg()
560 FsmEvent(&st->l3.l3m, EV_ESTABLISH_REQ, NULL); in l3_msg()
563 FsmEvent(&st->l3.l3m, EV_ESTABLISH_CNF, NULL); in l3_msg()
566 FsmEvent(&st->l3.l3m, EV_ESTABLISH_IND, NULL); in l3_msg()
569 FsmEvent(&st->l3.l3m, EV_RELEASE_IND, NULL); in l3_msg()
572 FsmEvent(&st->l3.l3m, EV_RELEASE_CNF, NULL); in l3_msg()
575 FsmEvent(&st->l3.l3m, EV_RELEASE_REQ, NULL); in l3_msg()