• Home
  • Raw
  • Download

Lines Matching refs:chanp

29 static int init_b_st(struct Channel *chanp, int incoming);
30 static void release_b_st(struct Channel *chanp);
69 link_debug(struct Channel *chanp, int direction, char *fmt, ...) in link_debug() argument
75 sprintf(tmp, "Ch%d %s ", chanp->chan, in link_debug()
77 VHiSax_putstatus(chanp->cs, tmp, fmt, args); in link_debug()
174 HL_LL(struct Channel *chanp, int command) in HL_LL() argument
178 ic.driver = chanp->cs->myid; in HL_LL()
180 ic.arg = chanp->chan; in HL_LL()
181 chanp->cs->iif.statcallb(&ic); in HL_LL()
185 lli_deliver_cause(struct Channel *chanp) in lli_deliver_cause() argument
189 if (!chanp->proc) in lli_deliver_cause()
191 if (chanp->proc->para.cause == NO_CAUSE) in lli_deliver_cause()
193 ic.driver = chanp->cs->myid; in lli_deliver_cause()
195 ic.arg = chanp->chan; in lli_deliver_cause()
196 if (chanp->cs->protocol == ISDN_PTYPE_EURO) in lli_deliver_cause()
197 sprintf(ic.parm.num, "E%02X%02X", chanp->proc->para.loc & 0x7f, in lli_deliver_cause()
198 chanp->proc->para.cause & 0x7f); in lli_deliver_cause()
200 sprintf(ic.parm.num, "%02X%02X", chanp->proc->para.loc & 0x7f, in lli_deliver_cause()
201 chanp->proc->para.cause & 0x7f); in lli_deliver_cause()
202 chanp->cs->iif.statcallb(&ic); in lli_deliver_cause()
208 struct Channel *chanp = fi->userdata; in lli_close() local
211 chanp->Flags = 0; in lli_close()
212 chanp->cs->cardmsg(chanp->cs, MDL_INFO_REL, (void *) (long)chanp->chan); in lli_close()
218 struct Channel *chanp = fi->userdata; in lli_leased_in() local
222 if (!chanp->leased) in lli_leased_in()
224 chanp->cs->cardmsg(chanp->cs, MDL_INFO_SETUP, (void *) (long)chanp->chan); in lli_leased_in()
226 if (chanp->debug & 1) in lli_leased_in()
227 link_debug(chanp, 0, "STAT_ICALL_LEASED"); in lli_leased_in()
228 ic.driver = chanp->cs->myid; in lli_leased_in()
229 ic.command = ((chanp->chan < 2) ? ISDN_STAT_ICALL : ISDN_STAT_ICALLW); in lli_leased_in()
230 ic.arg = chanp->chan; in lli_leased_in()
235 sprintf(ic.parm.setup.eazmsn, "%d", chanp->chan + 1); in lli_leased_in()
236 sprintf(ic.parm.setup.phone, "LEASED%d", chanp->cs->myid); in lli_leased_in()
237 ret = chanp->cs->iif.statcallb(&ic); in lli_leased_in()
238 if (chanp->debug & 1) in lli_leased_in()
239 link_debug(chanp, 1, "statcallb ret=%d", ret); in lli_leased_in()
241 chanp->cs->cardmsg(chanp->cs, MDL_INFO_REL, (void *) (long)chanp->chan); in lli_leased_in()
253 struct Channel *chanp = fi->userdata; in lli_init_bchan_out() local
256 if (chanp->debug & 1) in lli_init_bchan_out()
257 link_debug(chanp, 0, "STAT_DCONN"); in lli_init_bchan_out()
258 HL_LL(chanp, ISDN_STAT_DCONN); in lli_init_bchan_out()
259 init_b_st(chanp, 0); in lli_init_bchan_out()
260 chanp->b_st->lli.l4l3(chanp->b_st, DL_ESTABLISH | REQUEST, NULL); in lli_init_bchan_out()
266 struct Channel *chanp = fi->userdata; in lli_prep_dialout() local
268 FsmDelTimer(&chanp->drel_timer, 60); in lli_prep_dialout()
269 FsmDelTimer(&chanp->dial_timer, 73); in lli_prep_dialout()
270 chanp->l2_active_protocol = chanp->l2_protocol; in lli_prep_dialout()
271 chanp->incoming = 0; in lli_prep_dialout()
272 chanp->cs->cardmsg(chanp->cs, MDL_INFO_SETUP, (void *) (long)chanp->chan); in lli_prep_dialout()
273 if (chanp->leased) { in lli_prep_dialout()
277 chanp->d_st->lli.l4l3(chanp->d_st, CC_SETUP | REQUEST, chanp); in lli_prep_dialout()
284 struct Channel *chanp = fi->userdata; in lli_resume() local
286 FsmDelTimer(&chanp->drel_timer, 60); in lli_resume()
287 FsmDelTimer(&chanp->dial_timer, 73); in lli_resume()
288 chanp->l2_active_protocol = chanp->l2_protocol; in lli_resume()
289 chanp->incoming = 0; in lli_resume()
290 chanp->cs->cardmsg(chanp->cs, MDL_INFO_SETUP, (void *) (long)chanp->chan); in lli_resume()
291 if (chanp->leased) { in lli_resume()
295 chanp->d_st->lli.l4l3(chanp->d_st, CC_RESUME | REQUEST, chanp); in lli_resume()
302 struct Channel *chanp = fi->userdata; in lli_go_active() local
307 chanp->data_open = !0; in lli_go_active()
308 if (chanp->bcs->conmsg) in lli_go_active()
309 strcpy(ic.parm.num, chanp->bcs->conmsg); in lli_go_active()
312 if (chanp->debug & 1) in lli_go_active()
313 link_debug(chanp, 0, "STAT_BCONN %s", ic.parm.num); in lli_go_active()
314 ic.driver = chanp->cs->myid; in lli_go_active()
316 ic.arg = chanp->chan; in lli_go_active()
317 chanp->cs->iif.statcallb(&ic); in lli_go_active()
318 chanp->cs->cardmsg(chanp->cs, MDL_INFO_CONN, (void *) (long)chanp->chan); in lli_go_active()
331 struct Channel *chanp = fi->userdata; in lli_deliver_call() local
335 chanp->cs->cardmsg(chanp->cs, MDL_INFO_SETUP, (void *) (long)chanp->chan); in lli_deliver_call()
343 if (chanp->debug & 1) in lli_deliver_call()
344 link_debug(chanp, 0, (chanp->chan < 2) ? "STAT_ICALL" : "STAT_ICALLW"); in lli_deliver_call()
345 ic.driver = chanp->cs->myid; in lli_deliver_call()
346 ic.command = ((chanp->chan < 2) ? ISDN_STAT_ICALL : ISDN_STAT_ICALLW); in lli_deliver_call()
348 ic.arg = chanp->chan; in lli_deliver_call()
353 memcpy(&ic.parm.setup, &chanp->proc->para.setup, sizeof(setup_parm)); in lli_deliver_call()
354 ret = chanp->cs->iif.statcallb(&ic); in lli_deliver_call()
355 if (chanp->debug & 1) in lli_deliver_call()
356 link_debug(chanp, 1, "statcallb ret=%d", ret); in lli_deliver_call()
360 FsmDelTimer(&chanp->drel_timer, 61); in lli_deliver_call()
362 chanp->d_st->lli.l4l3(chanp->d_st, CC_ALERTING | REQUEST, chanp->proc); in lli_deliver_call()
366 FsmDelTimer(&chanp->drel_timer, 61); in lli_deliver_call()
368 chanp->d_st->lli.l4l3(chanp->d_st, CC_PROCEED_SEND | REQUEST, chanp->proc); in lli_deliver_call()
370 memcpy(&chanp->setup, &ic.parm.setup, sizeof(setup_parm)); in lli_deliver_call()
371 chanp->d_st->lli.l4l3(chanp->d_st, CC_REDIR | REQUEST, chanp->proc); in lli_deliver_call()
377 FsmDelTimer(&chanp->drel_timer, 61); in lli_deliver_call()
378 chanp->d_st->lli.l4l3(chanp->d_st, CC_MORE_INFO | REQUEST, chanp->proc); in lli_deliver_call()
382 chanp->d_st->lli.l4l3(chanp->d_st, CC_IGNORE | REQUEST, chanp->proc); in lli_deliver_call()
383 chanp->cs->cardmsg(chanp->cs, MDL_INFO_REL, (void *) (long)chanp->chan); in lli_deliver_call()
388 chanp->d_st->lli.l4l3(chanp->d_st, CC_IGNORE | REQUEST, chanp->proc); in lli_deliver_call()
389 chanp->cs->cardmsg(chanp->cs, MDL_INFO_REL, (void *) (long)chanp->chan); in lli_deliver_call()
396 struct Channel *chanp = fi->userdata; in lli_send_dconnect() local
399 chanp->d_st->lli.l4l3(chanp->d_st, CC_SETUP | RESPONSE, chanp->proc); in lli_send_dconnect()
405 struct Channel *chanp = fi->userdata; in lli_send_alert() local
408 chanp->d_st->lli.l4l3(chanp->d_st, CC_ALERTING | REQUEST, chanp->proc); in lli_send_alert()
414 struct Channel *chanp = fi->userdata; in lli_send_redir() local
416 chanp->d_st->lli.l4l3(chanp->d_st, CC_REDIR | REQUEST, chanp->proc); in lli_send_redir()
422 struct Channel *chanp = fi->userdata; in lli_init_bchan_in() local
425 if (chanp->debug & 1) in lli_init_bchan_in()
426 link_debug(chanp, 0, "STAT_DCONN"); in lli_init_bchan_in()
427 HL_LL(chanp, ISDN_STAT_DCONN); in lli_init_bchan_in()
428 chanp->l2_active_protocol = chanp->l2_protocol; in lli_init_bchan_in()
429 chanp->incoming = !0; in lli_init_bchan_in()
430 init_b_st(chanp, !0); in lli_init_bchan_in()
431 chanp->b_st->lli.l4l3(chanp->b_st, DL_ESTABLISH | REQUEST, NULL); in lli_init_bchan_in()
437 struct Channel *chanp = fi->userdata; in lli_setup_rsp() local
439 if (chanp->leased) { in lli_setup_rsp()
444 chanp->d_st->lli.l4l3(chanp->d_st, CC_ALERTING | REQUEST, chanp->proc); in lli_setup_rsp()
446 chanp->d_st->lli.l4l3(chanp->d_st, CC_SETUP | RESPONSE, chanp->proc); in lli_setup_rsp()
455 struct Channel *chanp = fi->userdata; in lli_suspend() local
457 chanp->d_st->lli.l4l3(chanp->d_st, CC_SUSPEND | REQUEST, chanp->proc); in lli_suspend()
463 lli_leased_hup(struct FsmInst *fi, struct Channel *chanp) in lli_leased_hup() argument
467 ic.driver = chanp->cs->myid; in lli_leased_hup()
469 ic.arg = chanp->chan; in lli_leased_hup()
471 chanp->cs->iif.statcallb(&ic); in lli_leased_hup()
472 if (chanp->debug & 1) in lli_leased_hup()
473 link_debug(chanp, 0, "STAT_DHUP"); in lli_leased_hup()
474 HL_LL(chanp, ISDN_STAT_DHUP); in lli_leased_hup()
481 struct Channel *chanp = fi->userdata; in lli_disconnect_req() local
483 if (chanp->leased) { in lli_disconnect_req()
484 lli_leased_hup(fi, chanp); in lli_disconnect_req()
487 if (chanp->proc) in lli_disconnect_req()
488 chanp->proc->para.cause = 0x10; /* Normal Call Clearing */ in lli_disconnect_req()
489 chanp->d_st->lli.l4l3(chanp->d_st, CC_DISCONNECT | REQUEST, in lli_disconnect_req()
490 chanp->proc); in lli_disconnect_req()
497 struct Channel *chanp = fi->userdata; in lli_disconnect_reject() local
499 if (chanp->leased) { in lli_disconnect_reject()
500 lli_leased_hup(fi, chanp); in lli_disconnect_reject()
503 if (chanp->proc) in lli_disconnect_reject()
504 chanp->proc->para.cause = 0x15; /* Call Rejected */ in lli_disconnect_reject()
505 chanp->d_st->lli.l4l3(chanp->d_st, CC_DISCONNECT | REQUEST, in lli_disconnect_reject()
506 chanp->proc); in lli_disconnect_reject()
513 struct Channel *chanp = fi->userdata; in lli_dhup_close() local
515 if (chanp->leased) { in lli_dhup_close()
516 lli_leased_hup(fi, chanp); in lli_dhup_close()
518 if (chanp->debug & 1) in lli_dhup_close()
519 link_debug(chanp, 0, "STAT_DHUP"); in lli_dhup_close()
520 lli_deliver_cause(chanp); in lli_dhup_close()
521 HL_LL(chanp, ISDN_STAT_DHUP); in lli_dhup_close()
529 struct Channel *chanp = fi->userdata; in lli_reject_req() local
531 if (chanp->leased) { in lli_reject_req()
532 lli_leased_hup(fi, chanp); in lli_reject_req()
536 if (chanp->proc) in lli_reject_req()
537 chanp->proc->para.cause = 0x15; /* Call Rejected */ in lli_reject_req()
538 chanp->d_st->lli.l4l3(chanp->d_st, CC_REJECT | REQUEST, chanp->proc); in lli_reject_req()
541 FsmRestartTimer(&chanp->drel_timer, 40, EV_HANGUP, NULL, 63); in lli_reject_req()
543 chanp->d_st->lli.l4l3(chanp->d_st, CC_ALERTING | REQUEST, chanp->proc); in lli_reject_req()
550 struct Channel *chanp = fi->userdata; in lli_disconn_bchan() local
552 chanp->data_open = 0; in lli_disconn_bchan()
554 chanp->b_st->lli.l4l3(chanp->b_st, DL_RELEASE | REQUEST, NULL); in lli_disconn_bchan()
560 struct Channel *chanp = fi->userdata; in lli_start_disc() local
562 if (chanp->leased) { in lli_start_disc()
563 lli_leased_hup(fi, chanp); in lli_start_disc()
572 struct Channel *chanp = fi->userdata; in lli_rel_b_disc() local
574 release_b_st(chanp); in lli_rel_b_disc()
581 struct Channel *chanp = fi->userdata; in lli_bhup_disc() local
583 if (chanp->debug & 1) in lli_bhup_disc()
584 link_debug(chanp, 0, "STAT_BHUP"); in lli_bhup_disc()
585 HL_LL(chanp, ISDN_STAT_BHUP); in lli_bhup_disc()
592 struct Channel *chanp = fi->userdata; in lli_bhup_rel_b() local
595 chanp->data_open = 0; in lli_bhup_rel_b()
596 if (chanp->debug & 1) in lli_bhup_rel_b()
597 link_debug(chanp, 0, "STAT_BHUP"); in lli_bhup_rel_b()
598 HL_LL(chanp, ISDN_STAT_BHUP); in lli_bhup_rel_b()
599 release_b_st(chanp); in lli_bhup_rel_b()
605 struct Channel *chanp = fi->userdata; in lli_release_bchan() local
607 chanp->data_open = 0; in lli_release_bchan()
609 chanp->b_st->lli.l4l3(chanp->b_st, DL_RELEASE | REQUEST, NULL); in lli_release_bchan()
616 struct Channel *chanp = fi->userdata; in lli_rel_b_dhup() local
618 release_b_st(chanp); in lli_rel_b_dhup()
625 struct Channel *chanp = fi->userdata; in lli_bhup_dhup() local
627 if (chanp->debug & 1) in lli_bhup_dhup()
628 link_debug(chanp, 0, "STAT_BHUP"); in lli_bhup_dhup()
629 HL_LL(chanp, ISDN_STAT_BHUP); in lli_bhup_dhup()
636 struct Channel *chanp = fi->userdata; in lli_abort() local
638 chanp->data_open = 0; in lli_abort()
639 chanp->b_st->lli.l4l3(chanp->b_st, DL_RELEASE | REQUEST, NULL); in lli_abort()
646 struct Channel *chanp = fi->userdata; in lli_release_req() local
648 if (chanp->leased) { in lli_release_req()
649 lli_leased_hup(fi, chanp); in lli_release_req()
652 chanp->d_st->lli.l4l3(chanp->d_st, CC_RELEASE | REQUEST, in lli_release_req()
653 chanp->proc); in lli_release_req()
660 struct Channel *chanp = fi->userdata; in lli_rel_b_release_req() local
662 release_b_st(chanp); in lli_rel_b_release_req()
669 struct Channel *chanp = fi->userdata; in lli_bhup_release_req() local
671 if (chanp->debug & 1) in lli_bhup_release_req()
672 link_debug(chanp, 0, "STAT_BHUP"); in lli_bhup_release_req()
673 HL_LL(chanp, ISDN_STAT_BHUP); in lli_bhup_release_req()
682 struct Channel *chanp = fi->userdata; in lli_charge_info() local
685 ic.driver = chanp->cs->myid; in lli_charge_info()
687 ic.arg = chanp->chan; in lli_charge_info()
688 sprintf(ic.parm.num, "%d", chanp->proc->para.chargeinfo); in lli_charge_info()
689 chanp->cs->iif.statcallb(&ic); in lli_charge_info()
697 struct Channel *chanp = fi->userdata; in lli_dchan_not_ready() local
699 if (chanp->debug & 1) in lli_dchan_not_ready()
700 link_debug(chanp, 0, "STAT_DHUP"); in lli_dchan_not_ready()
701 HL_LL(chanp, ISDN_STAT_DHUP); in lli_dchan_not_ready()
707 struct Channel *chanp = fi->userdata; in lli_no_setup_rsp() local
709 if (chanp->debug & 1) in lli_no_setup_rsp()
710 link_debug(chanp, 0, "STAT_DHUP"); in lli_no_setup_rsp()
711 HL_LL(chanp, ISDN_STAT_DHUP); in lli_no_setup_rsp()
724 struct Channel *chanp = fi->userdata; in lli_failure_l() local
728 ic.driver = chanp->cs->myid; in lli_failure_l()
730 ic.arg = chanp->chan; in lli_failure_l()
732 chanp->cs->iif.statcallb(&ic); in lli_failure_l()
733 HL_LL(chanp, ISDN_STAT_DHUP); in lli_failure_l()
734 chanp->Flags = 0; in lli_failure_l()
735 chanp->cs->cardmsg(chanp->cs, MDL_INFO_REL, (void *) (long)chanp->chan); in lli_failure_l()
741 struct Channel *chanp = fi->userdata; in lli_rel_b_fail() local
743 release_b_st(chanp); in lli_rel_b_fail()
750 struct Channel *chanp = fi->userdata; in lli_bhup_fail() local
752 if (chanp->debug & 1) in lli_bhup_fail()
753 link_debug(chanp, 0, "STAT_BHUP"); in lli_bhup_fail()
754 HL_LL(chanp, ISDN_STAT_BHUP); in lli_bhup_fail()
761 struct Channel *chanp = fi->userdata; in lli_failure_a() local
763 chanp->data_open = 0; in lli_failure_a()
764 chanp->b_st->lli.l4l3(chanp->b_st, DL_RELEASE | REQUEST, NULL); in lli_failure_a()
854 release_b_st(struct Channel *chanp) in release_b_st() argument
856 struct PStack *st = chanp->b_st; in release_b_st()
858 if (test_and_clear_bit(FLG_START_B, &chanp->Flags)) { in release_b_st()
859 chanp->bcs->BC_Close(chanp->bcs); in release_b_st()
860 switch (chanp->l2_active_protocol) { in release_b_st()
879 struct Channel *chanp = st->lli.userdata; in selectfreechannel() local
889 chanp += 2; in selectfreechannel()
893 if (chanp->fi.state == ST_NULL) in selectfreechannel()
894 return (chanp); in selectfreechannel()
895 chanp++; in selectfreechannel()
901 chanp = st->lli.userdata; in selectfreechannel()
902 chanp += i; in selectfreechannel()
904 if (chanp->fi.state == ST_NULL) in selectfreechannel()
905 return (chanp); in selectfreechannel()
906 chanp++; in selectfreechannel()
928 struct Channel *chanp; in dchan_l3l4() local
934 if (!(chanp = selectfreechannel(pc->st, pc->para.bchannel))) { in dchan_l3l4()
938 chanp->proc = pc; in dchan_l3l4()
939 pc->chan = chanp; in dchan_l3l4()
940 FsmEvent(&chanp->fi, EV_SETUP_IND, NULL); in dchan_l3l4()
944 if (!(chanp = pc->chan)) in dchan_l3l4()
949 FsmEvent(&chanp->fi, EV_SETUP_IND, NULL); in dchan_l3l4()
952 FsmEvent(&chanp->fi, EV_DISCONNECT_IND, NULL); in dchan_l3l4()
955 FsmEvent(&chanp->fi, EV_RELEASE, NULL); in dchan_l3l4()
958 FsmEvent(&chanp->fi, EV_RELEASE, NULL); in dchan_l3l4()
961 FsmEvent(&chanp->fi, EV_SETUP_CNF, NULL); in dchan_l3l4()
964 FsmEvent(&chanp->fi, EV_RELEASE, NULL); in dchan_l3l4()
967 FsmEvent(&chanp->fi, EV_RELEASE, NULL); in dchan_l3l4()
970 FsmEvent(&chanp->fi, EV_SETUP_CMPL_IND, NULL); in dchan_l3l4()
973 FsmEvent(&chanp->fi, EV_SETUP_CNF, NULL); in dchan_l3l4()
976 FsmEvent(&chanp->fi, EV_CINF, NULL); in dchan_l3l4()
979 FsmEvent(&chanp->fi, EV_NOSETUP_RSP, NULL); in dchan_l3l4()
982 FsmEvent(&chanp->fi, EV_SETUP_ERR, NULL); in dchan_l3l4()
985 FsmEvent(&chanp->fi, EV_CONNECT_ERR, NULL); in dchan_l3l4()
988 FsmEvent(&chanp->fi, EV_RELEASE, NULL); in dchan_l3l4()
997 stat_redir_result(cs, chanp->chan, pc->redir_result); in dchan_l3l4()
1000 if (chanp->debug & 0x800) { in dchan_l3l4()
1001 HiSax_putstatus(chanp->cs, "Ch", in dchan_l3l4()
1003 chanp->chan, pr); in dchan_l3l4()
1034 init_d_st(struct Channel *chanp) in init_d_st() argument
1037 struct IsdnCardState *cs = chanp->cs; in init_d_st()
1041 err = init_PStack(&chanp->d_st); in init_d_st()
1044 st = chanp->d_st; in init_d_st()
1060 sprintf(tmp, "DCh%d Q.921 ", chanp->chan); in init_d_st()
1064 setstack_l3dc(st, chanp); in init_d_st()
1065 st->lli.userdata = chanp; in init_d_st()
1075 struct Channel *chanp = fi->userdata; in callc_debug() local
1079 sprintf(tmp, "Ch%d callc ", chanp->chan); in callc_debug()
1080 VHiSax_putstatus(chanp->cs, tmp, fmt, args); in callc_debug()
1087 struct Channel *chanp = csta->channel + chan; in init_chan() local
1090 chanp->cs = csta; in init_chan()
1091 chanp->bcs = csta->bcs + chan; in init_chan()
1092 chanp->chan = chan; in init_chan()
1093 chanp->incoming = 0; in init_chan()
1094 chanp->debug = 0; in init_chan()
1095 chanp->Flags = 0; in init_chan()
1096 chanp->leased = 0; in init_chan()
1097 err = init_PStack(&chanp->b_st); in init_chan()
1100 chanp->b_st->l1.delay = DEFAULT_B_DELAY; in init_chan()
1101 chanp->fi.fsm = &callcfsm; in init_chan()
1102 chanp->fi.state = ST_NULL; in init_chan()
1103 chanp->fi.debug = 0; in init_chan()
1104 chanp->fi.userdata = chanp; in init_chan()
1105 chanp->fi.printdebug = callc_debug; in init_chan()
1106 FsmInitTimer(&chanp->fi, &chanp->dial_timer); in init_chan()
1107 FsmInitTimer(&chanp->fi, &chanp->drel_timer); in init_chan()
1109 err = init_d_st(chanp); in init_chan()
1113 chanp->d_st = csta->channel->d_st; in init_chan()
1115 chanp->data_open = 0; in init_chan()
1147 release_d_st(struct Channel *chanp) in release_d_st() argument
1149 struct PStack *st = chanp->d_st; in release_d_st()
1157 chanp->d_st = NULL; in release_d_st()
1186 struct Channel *chanp = (struct Channel *) st->lli.userdata; in lldata_handler() local
1191 if (chanp->data_open) { in lldata_handler()
1192 if (chanp->debug & 0x800) in lldata_handler()
1193 link_debug(chanp, 0, "lldata: %d", skb->len); in lldata_handler()
1194 chanp->cs->iif.rcvcallb_skb(chanp->cs->myid, chanp->chan, skb); in lldata_handler()
1196 link_debug(chanp, 0, "lldata: channel not open"); in lldata_handler()
1202 FsmEvent(&chanp->fi, EV_BC_EST, NULL); in lldata_handler()
1206 FsmEvent(&chanp->fi, EV_BC_REL, NULL); in lldata_handler()
1218 struct Channel *chanp = (struct Channel *) st->lli.userdata; in lltrans_handler() local
1223 if (chanp->data_open) { in lltrans_handler()
1224 if (chanp->debug & 0x800) in lltrans_handler()
1225 link_debug(chanp, 0, "lltrans: %d", skb->len); in lltrans_handler()
1226 chanp->cs->iif.rcvcallb_skb(chanp->cs->myid, chanp->chan, skb); in lltrans_handler()
1228 link_debug(chanp, 0, "lltrans: channel not open"); in lltrans_handler()
1234 FsmEvent(&chanp->fi, EV_BC_EST, NULL); in lltrans_handler()
1238 FsmEvent(&chanp->fi, EV_BC_REL, NULL); in lltrans_handler()
1250 struct Channel *chanp = st->lli.userdata; in lli_writewakeup() local
1253 if (chanp->debug & 0x800) in lli_writewakeup()
1254 link_debug(chanp, 0, "llwakeup: %d", len); in lli_writewakeup()
1255 ic.driver = chanp->cs->myid; in lli_writewakeup()
1257 ic.arg = chanp->chan; in lli_writewakeup()
1259 chanp->cs->iif.statcallb(&ic); in lli_writewakeup()
1263 init_b_st(struct Channel *chanp, int incoming) in init_b_st() argument
1265 struct PStack *st = chanp->b_st; in init_b_st()
1266 struct IsdnCardState *cs = chanp->cs; in init_b_st()
1270 if (chanp->leased) in init_b_st()
1271 st->l1.bc = chanp->chan & 1; in init_b_st()
1273 st->l1.bc = chanp->proc->para.bchannel - 1; in init_b_st()
1274 switch (chanp->l2_active_protocol) { in init_b_st()
1292 chanp->bcs->conmsg = NULL; in init_b_st()
1293 if (chanp->bcs->BC_SetStack(st, chanp->bcs)) in init_b_st()
1305 switch (chanp->l2_active_protocol) { in init_b_st()
1307 sprintf(tmp, "Ch%d X.75", chanp->chan); in init_b_st()
1309 setstack_l3bc(st, chanp); in init_b_st()
1311 st->lli.userdata = chanp; in init_b_st()
1314 st->l2.l2m.debug = chanp->debug & 16; in init_b_st()
1315 st->l2.debug = chanp->debug & 64; in init_b_st()
1323 st->lli.userdata = chanp; in init_b_st()
1327 setstack_l3bc(st, chanp); in init_b_st()
1330 test_and_set_bit(FLG_START_B, &chanp->Flags); in init_b_st()
1337 struct Channel *chanp = (struct Channel *) st->lli.userdata; in leased_l4l3() local
1342 link_debug(chanp, 0, "leased line d-channel DATA"); in leased_l4l3()
1360 struct Channel *chanp = (struct Channel *) st->lli.userdata; in leased_l1l2() local
1366 link_debug(chanp, 0, "leased line d-channel DATA"); in leased_l1l2()
1374 if (test_bit(FLG_TWO_DCHAN, &chanp->cs->HW_Flags)) in leased_l1l2()
1379 FsmEvent(&chanp->fi, event, NULL); in leased_l1l2()
1380 chanp++; in leased_l1l2()
1395 struct Channel *chanp = csta->channel; in distr_debug() local
1398 chanp[i].debug = debugflags; in distr_debug()
1399 chanp[i].fi.debug = debugflags & 2; in distr_debug()
1400 chanp[i].d_st->l2.l2m.debug = debugflags & 8; in distr_debug()
1401 chanp[i].b_st->l2.l2m.debug = debugflags & 0x10; in distr_debug()
1402 chanp[i].d_st->l2.debug = debugflags & 0x20; in distr_debug()
1403 chanp[i].b_st->l2.debug = debugflags & 0x40; in distr_debug()
1404 chanp[i].d_st->l3.l3m.debug = debugflags & 0x80; in distr_debug()
1405 chanp[i].b_st->l3.l3m.debug = debugflags & 0x100; in distr_debug()
1406 chanp[i].b_st->ma.tei_m.debug = debugflags & 0x200; in distr_debug()
1407 chanp[i].b_st->ma.debug = debugflags & 0x200; in distr_debug()
1408 chanp[i].d_st->l1.l1m.debug = debugflags & 0x1000; in distr_debug()
1409 chanp[i].b_st->l1.l1m.debug = debugflags & 0x2000; in distr_debug()
1420 capi_debug(struct Channel *chanp, capi_msg *cm) in capi_debug() argument
1427 HiSax_putstatus(chanp->cs, "Ch", "%d CAPIMSG %s", chanp->chan, tmpbuf); in capi_debug()
1431 lli_got_fac_req(struct Channel *chanp, capi_msg *cm) { in lli_got_fac_req() argument
1440 strncpy(chanp->setup.phone, &cm->para[5], cm->para[5] + 1); in lli_got_fac_req()
1441 FsmEvent(&chanp->fi, EV_SUSPEND, cm); in lli_got_fac_req()
1444 strncpy(chanp->setup.phone, &cm->para[5], cm->para[5] + 1); in lli_got_fac_req()
1445 if (chanp->fi.state == ST_NULL) { in lli_got_fac_req()
1446 FsmEvent(&chanp->fi, EV_RESUME, cm); in lli_got_fac_req()
1448 FsmDelTimer(&chanp->dial_timer, 72); in lli_got_fac_req()
1449 FsmAddTimer(&chanp->dial_timer, 80, EV_RESUME, cm, 73); in lli_got_fac_req()
1456 lli_got_manufacturer(struct Channel *chanp, struct IsdnCardState *cs, capi_msg *cm) { in lli_got_manufacturer() argument
1499 struct Channel *chanp; in HiSax_command() local
1511 chanp = csta->channel + ic->arg; in HiSax_command()
1514 chanp = csta->channel + (ic->arg & 0xff); in HiSax_command()
1515 if (chanp->debug & 1) in HiSax_command()
1516 link_debug(chanp, 1, "SETL2 card %d %ld", in HiSax_command()
1518 chanp->l2_protocol = ic->arg >> 8; in HiSax_command()
1521 chanp = csta->channel + (ic->arg & 0xff); in HiSax_command()
1522 if (chanp->debug & 1) in HiSax_command()
1523 link_debug(chanp, 1, "SETL3 card %d %ld", in HiSax_command()
1525 chanp->l3_protocol = ic->arg >> 8; in HiSax_command()
1528 chanp = csta->channel + (ic->arg & 0xff); in HiSax_command()
1529 if (chanp->debug & 1) in HiSax_command()
1530 link_debug(chanp, 1, "DIAL %s -> %s (%d,%d)", in HiSax_command()
1533 memcpy(&chanp->setup, &ic->parm.setup, sizeof(setup_parm)); in HiSax_command()
1534 if (!strcmp(chanp->setup.eazmsn, "0")) in HiSax_command()
1535 chanp->setup.eazmsn[0] = '\0'; in HiSax_command()
1538 if (chanp->fi.state == ST_NULL) { in HiSax_command()
1539 FsmEvent(&chanp->fi, EV_DIAL, NULL); in HiSax_command()
1541 FsmDelTimer(&chanp->dial_timer, 70); in HiSax_command()
1542 FsmAddTimer(&chanp->dial_timer, 50, EV_DIAL, NULL, 71); in HiSax_command()
1546 chanp = csta->channel + ic->arg; in HiSax_command()
1547 if (chanp->debug & 1) in HiSax_command()
1548 link_debug(chanp, 1, "ACCEPTB"); in HiSax_command()
1549 FsmEvent(&chanp->fi, EV_ACCEPTB, NULL); in HiSax_command()
1552 chanp = csta->channel + ic->arg; in HiSax_command()
1553 memcpy(&chanp->setup, &ic->parm.setup, sizeof(setup_parm)); in HiSax_command()
1554 if (chanp->debug & 1) in HiSax_command()
1555 link_debug(chanp, 1, "ACCEPTD"); in HiSax_command()
1556 FsmEvent(&chanp->fi, EV_ACCEPTD, NULL); in HiSax_command()
1559 chanp = csta->channel + ic->arg; in HiSax_command()
1560 if (chanp->debug & 1) in HiSax_command()
1561 link_debug(chanp, 1, "HANGUP"); in HiSax_command()
1562 FsmEvent(&chanp->fi, EV_HANGUP, NULL); in HiSax_command()
1565 chanp = csta->channel + ic->arg; in HiSax_command()
1566 if (chanp->debug & 1) in HiSax_command()
1567 capi_debug(chanp, &ic->parm.cmsg); in HiSax_command()
1573 lli_got_fac_req(chanp, &ic->parm.cmsg); in HiSax_command()
1577 lli_got_manufacturer(chanp, csta, &ic->parm.cmsg); in HiSax_command()
1615 chanp = csta->channel + num; in HiSax_command()
1616 chanp->leased = 1; in HiSax_command()
1620 chanp->d_st->l1.l1l2 = leased_l1l2; in HiSax_command()
1621 chanp->d_st->lli.l4l3 = leased_l4l3; in HiSax_command()
1622 chanp->d_st->lli.l4l3(chanp->d_st, in HiSax_command()
1654 chanp = csta->channel + (num & 1); in HiSax_command()
1657 test_and_clear_bit(FLG_FIXED_TEI, &chanp->d_st->l2.flag); in HiSax_command()
1658 chanp->d_st->l2.tei = -1; in HiSax_command()
1662 test_and_set_bit(FLG_FIXED_TEI, &chanp->d_st->l2.flag); in HiSax_command()
1663 chanp->d_st->l2.tei = num; in HiSax_command()
1668 chanp->d_st->lli.l4l3(chanp->d_st, in HiSax_command()
1703 chanp = csta->channel + ic->arg; in HiSax_command()
1704 if (chanp->debug & 1) in HiSax_command()
1705 link_debug(chanp, 1, "PROCEED"); in HiSax_command()
1706 FsmEvent(&chanp->fi, EV_PROCEED, NULL); in HiSax_command()
1710 chanp = csta->channel + ic->arg; in HiSax_command()
1711 if (chanp->debug & 1) in HiSax_command()
1712 link_debug(chanp, 1, "ALERT"); in HiSax_command()
1713 FsmEvent(&chanp->fi, EV_ALERT, NULL); in HiSax_command()
1717 chanp = csta->channel + ic->arg; in HiSax_command()
1718 if (chanp->debug & 1) in HiSax_command()
1719 link_debug(chanp, 1, "REDIR"); in HiSax_command()
1720 memcpy(&chanp->setup, &ic->parm.setup, sizeof(setup_parm)); in HiSax_command()
1721 FsmEvent(&chanp->fi, EV_REDIR, NULL); in HiSax_command()
1743 struct Channel *chanp; in HiSax_writebuf_skb() local
1753 chanp = csta->channel + chan; in HiSax_writebuf_skb()
1754 st = chanp->b_st; in HiSax_writebuf_skb()
1755 if (!chanp->data_open) { in HiSax_writebuf_skb()
1756 link_debug(chanp, 1, "writebuf: channel not open"); in HiSax_writebuf_skb()
1760 link_debug(chanp, 1, "writebuf: packet too large (%d bytes)", len); in HiSax_writebuf_skb()
1766 if ((len + chanp->bcs->tx_cnt) > MAX_DATA_MEM) { in HiSax_writebuf_skb()
1770 if (chanp->debug & 0x800) in HiSax_writebuf_skb()
1771 link_debug(chanp, 1, "writebuf: no buffers for %d bytes", len); in HiSax_writebuf_skb()
1773 } else if (chanp->debug & 0x800) in HiSax_writebuf_skb()
1774 link_debug(chanp, 1, "writebuf %d/%d/%d", len, chanp->bcs->tx_cnt, MAX_DATA_MEM); in HiSax_writebuf_skb()
1780 if (chanp->l2_active_protocol == ISDN_PROTO_L2_X75I) in HiSax_writebuf_skb()
1783 chanp->bcs->tx_cnt += len; in HiSax_writebuf_skb()