static __u16 capi_register(capi_register_params * rparam, __u16 * applidp) { int appl; int i; if (rparam->datablklen < 128) return CAPI_LOGBLKSIZETOSMALL; for (appl = 1; appl <= CAPI_MAXAPPL; appl++) { if (APPL_IS_FREE(appl)) break; } if (appl > CAPI_MAXAPPL) return CAPI_TOOMANYAPPLS; APPL_MARK_USED(appl); skb_queue_head_init(&APPL(appl)->recv_queue); APPL(appl)->nncci = 0; memcpy(&APPL(appl)->rparam, rparam, sizeof(capi_register_params)); for (i = 0; i < CAPI_MAXCONTR; i++) { if (cards[i].cardstate != CARD_RUNNING) continue; cards[i].driver->register_appl(&cards[i], appl, &APPL(appl)->rparam); } *applidp = appl; printk(KERN_INFO "kcapi: appl %d up\n", appl); return CAPI_NOERROR; }
static __u16 capi_register(capi_register_params * rparam, __u16 * applidp) { int i; int appl; if (rparam->datablklen < 128) return CAPI_LOGBLKSIZETOSMALL; for (appl = 1; appl <= CAPI_MAXAPPL; appl++) { if (APPL_IS_FREE(appl)) break; } if (appl > CAPI_MAXAPPL) return CAPI_TOOMANYAPPLS; APPL_MARK_USED(appl); skb_queue_head_init(&APPL(appl)->recv_queue); memcpy(&APPL(appl)->rparam, rparam, sizeof(capi_register_params)); for (i = 0; i < ncards; i++) { if (cards[i].cardstate != CARD_RUNNING) continue; B1_send_register(cards[i].port, appl, 1024 * (APPL(appl)->rparam.level3cnt + 1), APPL(appl)->rparam.level3cnt, APPL(appl)->rparam.datablkcnt, APPL(appl)->rparam.datablklen); } *applidp = appl; printk(KERN_INFO "b1capi: appl %d up\n", appl); return CAPI_NOERROR; }