/*---------------------------------------------------------------------------* * init controller state array *---------------------------------------------------------------------------*/ void init_controller(void) { int i; int max = 0; msg_ctrl_info_req_t mcir; remove_all_ctrl_state(); for (i=0; i <= max; i++) { mcir.controller = i; if ((ioctl(isdnfd, I4B_CTRL_INFO_REQ, &mcir)) < 0) continue; max = mcir.max_isdnif; /* init controller tab */ if ((init_controller_state(i, mcir.devname, mcir.cardname, mcir.tei, mcir.nbch)) == ERROR) { logit(LL_ERR, "init_controller: init_controller_state for controller %d failed", i); do_exit(1); } } DBGL(DL_RCCF, (logit(LL_DBG, "init_controller: found %d ISDN controller(s)", max))); }
/* * add a single controller */ void init_new_controller(int isdnif) { msg_ctrl_info_req_t mcir; memset(&mcir, 0, sizeof mcir); mcir.controller = isdnif; if ((ioctl(isdnfd, I4B_CTRL_INFO_REQ, &mcir)) < 0) return; if ((init_controller_state(isdnif, mcir.devname, mcir.cardname, mcir.tei, mcir.nbch)) == ERROR) { logit(LL_ERR, "init_new_controller: init_controller_state for controller %d failed", isdnif); do_exit(1); } }
/*---------------------------------------------------------------------------* * init controller state array *---------------------------------------------------------------------------*/ void init_controller(void) { int i; int max = 1; msg_ctrl_info_req_t mcir; for(i=0; i < max; i++) { mcir.controller = i; if((ioctl(isdnfd, I4B_CTRL_INFO_REQ, &mcir)) < 0) { dolog(LL_ERR, "init_controller: ioctl I4B_CTRL_INFO_REQ failed: %s", strerror(errno)); do_exit(1); } if((ncontroller = max = mcir.ncontroller) == 0) { dolog(LL_ERR, "init_controller: no ISDN controller found!"); do_exit(1); } if(mcir.ctrl_type == -1 || mcir.card_type == -1) { dolog(LL_ERR, "init_controller: ctrl/card is invalid!"); do_exit(1); } /* init controller tab */ if((init_controller_state(i, mcir.ctrl_type, mcir.card_type, mcir.tei, mcir.nbch)) == ERROR) { dolog(LL_ERR, "init_controller: init_controller_state for controller %d failed", i); do_exit(1); } } DBGL(DL_RCCF, (dolog(LL_DBG, "init_controller: found %d ISDN controller(s)", max))); }