Lines Matching refs:ctr

66 capi_ctr_get(struct capi_ctr *ctr)
68 if (!try_module_get(ctr->owner))
70 return ctr;
74 capi_ctr_put(struct capi_ctr *ctr)
76 module_put(ctr->owner);
147 register_appl(struct capi_ctr *ctr, u16 applid, capi_register_params *rparam)
149 ctr = capi_ctr_get(ctr);
151 if (ctr)
152 ctr->register_appl(ctr, applid, rparam);
159 static void release_appl(struct capi_ctr *ctr, u16 applid)
163 ctr->release_appl(ctr, applid);
164 capi_ctr_put(ctr);
170 struct capi_ctr *ctr;
178 ctr = get_capi_ctr_by_nr(contr);
179 if (ctr) {
180 if (ctr->state == CAPI_CTR_RUNNING)
183 ctr->state = CAPI_CTR_RUNNING;
188 register_appl(ctr, applid, &ap->rparam);
197 static void ctr_down(struct capi_ctr *ctr, int new_state)
202 if (ctr->state == CAPI_CTR_DETECTED || ctr->state == CAPI_CTR_DETACHED)
205 ctr->state = new_state;
207 memset(ctr->manu, 0, sizeof(ctr->manu));
208 memset(&ctr->version, 0, sizeof(ctr->version));
209 memset(&ctr->profile, 0, sizeof(ctr->profile));
210 memset(ctr->serial, 0, sizeof(ctr->serial));
215 capi_ctr_put(ctr);
221 struct capi_ctr *ctr;
228 ctr = get_capi_ctr_by_nr(contr);
229 if (ctr)
230 ctr_down(ctr, CAPI_CTR_DETECTED);
294 * @ctr: controller descriptor structure.
301 void capi_ctr_handle_message(struct capi_ctr *ctr, u16 appl,
309 if (ctr->state != CAPI_CTR_RUNNING) {
313 ctr->cnr, cdb->buf);
317 ctr->cnr);
324 ctr->nrecvdatapkt++;
325 if (ctr->traceflag > 2)
328 ctr->nrecvctlpkt++;
329 if (ctr->traceflag)
332 showctl |= (ctr->traceflag & 1);
336 ctr->cnr, CAPIMSG_APPID(skb->data),
343 ctr->cnr, cdb->buf);
347 ctr->cnr, CAPIMSG_APPID(skb->data),
383 * @ctr: controller descriptor structure.
388 void capi_ctr_ready(struct capi_ctr *ctr)
391 ctr->cnr, ctr->name);
393 notify_push(CAPICTR_UP, ctr->cnr);
400 * @ctr: controller descriptor structure.
406 void capi_ctr_down(struct capi_ctr *ctr)
408 printk(KERN_NOTICE "kcapi: controller [%03d] down.\n", ctr->cnr);
410 notify_push(CAPICTR_DOWN, ctr->cnr);
419 * @ctr: controller descriptor structure.
425 int attach_capi_ctr(struct capi_ctr *ctr)
440 capi_controller[i] = ctr;
442 ctr->nrecvctlpkt = 0;
443 ctr->nrecvdatapkt = 0;
444 ctr->nsentctlpkt = 0;
445 ctr->nsentdatapkt = 0;
446 ctr->cnr = i + 1;
447 ctr->state = CAPI_CTR_DETECTED;
448 ctr->blocked = 0;
449 ctr->traceflag = showcapimsgs;
451 sprintf(ctr->procfn, "capi/controllers/%d", ctr->cnr);
452 ctr->procent = proc_create_single_data(ctr->procfn, 0, NULL,
453 ctr->proc_show, ctr);
460 ctr->cnr, ctr->name);
468 * @ctr: controller descriptor structure.
475 int detach_capi_ctr(struct capi_ctr *ctr)
481 ctr_down(ctr, CAPI_CTR_DETACHED);
483 if (ctr->cnr < 1 || ctr->cnr - 1 >= CAPI_MAXCONTR) {
488 if (capi_controller[ctr->cnr - 1] != ctr) {
492 capi_controller[ctr->cnr - 1] = NULL;
495 if (ctr->procent)
496 remove_proc_entry(ctr->procfn, NULL);
499 ctr->cnr, ctr->name);
653 struct capi_ctr *ctr;
673 ctr = get_capi_ctr_by_nr(CAPIMSG_CONTROLLER(skb->data));
674 if (!ctr || ctr->state != CAPI_CTR_RUNNING)
676 if (ctr->blocked)
683 ctr->nsentdatapkt++;
685 if (ctr->traceflag > 2)
688 ctr->nsentctlpkt++;
690 if (ctr->traceflag)
693 showctl |= (ctr->traceflag & 1);
716 return ctr->send_message(ctr, skb);
731 struct capi_ctr *ctr;
741 ctr = get_capi_ctr_by_nr(contr);
742 if (ctr && ctr->state == CAPI_CTR_RUNNING) {
743 strscpy_pad(buf, ctr->manu, CAPI_MANUFACTURER_LEN);
764 struct capi_ctr *ctr;
774 ctr = get_capi_ctr_by_nr(contr);
775 if (ctr && ctr->state == CAPI_CTR_RUNNING) {
776 memcpy(verp, &ctr->version, sizeof(capi_version));
797 struct capi_ctr *ctr;
807 ctr = get_capi_ctr_by_nr(contr);
808 if (ctr && ctr->state == CAPI_CTR_RUNNING) {
809 strscpy(serial, ctr->serial, CAPI_SERIAL_LEN);
830 struct capi_ctr *ctr;
840 ctr = get_capi_ctr_by_nr(contr);
841 if (ctr && ctr->state == CAPI_CTR_RUNNING) {
842 memcpy(profp, &ctr->profile, sizeof(struct capi_profile));
862 struct capi_ctr *ctr;
875 ctr = get_capi_ctr_by_nr(fdef.contr);
876 if (ctr) {
877 ctr->traceflag = fdef.flag;
879 ctr->cnr, ctr->traceflag);