• Home
  • Raw
  • Download

Lines Matching refs:ch

55 			if (likely(bch->ch.peer)) {  in bchannel_bh()
56 err = bch->ch.recv(bch->ch.peer, skb); in bchannel_bh()
66 mISDN_initdchannel(struct dchannel *ch, int maxlen, void *phf) in mISDN_initdchannel() argument
68 test_and_set_bit(FLG_HDLC, &ch->Flags); in mISDN_initdchannel()
69 ch->maxlen = maxlen; in mISDN_initdchannel()
70 ch->hw = NULL; in mISDN_initdchannel()
71 ch->rx_skb = NULL; in mISDN_initdchannel()
72 ch->tx_skb = NULL; in mISDN_initdchannel()
73 ch->tx_idx = 0; in mISDN_initdchannel()
74 ch->phfunc = phf; in mISDN_initdchannel()
75 skb_queue_head_init(&ch->squeue); in mISDN_initdchannel()
76 skb_queue_head_init(&ch->rqueue); in mISDN_initdchannel()
77 INIT_LIST_HEAD(&ch->dev.bchannels); in mISDN_initdchannel()
78 INIT_WORK(&ch->workq, dchannel_bh); in mISDN_initdchannel()
84 mISDN_initbchannel(struct bchannel *ch, unsigned short maxlen, in mISDN_initbchannel() argument
87 ch->Flags = 0; in mISDN_initbchannel()
88 ch->minlen = minlen; in mISDN_initbchannel()
89 ch->next_minlen = minlen; in mISDN_initbchannel()
90 ch->init_minlen = minlen; in mISDN_initbchannel()
91 ch->maxlen = maxlen; in mISDN_initbchannel()
92 ch->next_maxlen = maxlen; in mISDN_initbchannel()
93 ch->init_maxlen = maxlen; in mISDN_initbchannel()
94 ch->hw = NULL; in mISDN_initbchannel()
95 ch->rx_skb = NULL; in mISDN_initbchannel()
96 ch->tx_skb = NULL; in mISDN_initbchannel()
97 ch->tx_idx = 0; in mISDN_initbchannel()
98 skb_queue_head_init(&ch->rqueue); in mISDN_initbchannel()
99 ch->rcount = 0; in mISDN_initbchannel()
100 ch->next_skb = NULL; in mISDN_initbchannel()
101 INIT_WORK(&ch->workq, bchannel_bh); in mISDN_initbchannel()
107 mISDN_freedchannel(struct dchannel *ch) in mISDN_freedchannel() argument
109 if (ch->tx_skb) { in mISDN_freedchannel()
110 dev_kfree_skb(ch->tx_skb); in mISDN_freedchannel()
111 ch->tx_skb = NULL; in mISDN_freedchannel()
113 if (ch->rx_skb) { in mISDN_freedchannel()
114 dev_kfree_skb(ch->rx_skb); in mISDN_freedchannel()
115 ch->rx_skb = NULL; in mISDN_freedchannel()
117 skb_queue_purge(&ch->squeue); in mISDN_freedchannel()
118 skb_queue_purge(&ch->rqueue); in mISDN_freedchannel()
119 flush_work(&ch->workq); in mISDN_freedchannel()
125 mISDN_clear_bchannel(struct bchannel *ch) in mISDN_clear_bchannel() argument
127 if (ch->tx_skb) { in mISDN_clear_bchannel()
128 dev_kfree_skb(ch->tx_skb); in mISDN_clear_bchannel()
129 ch->tx_skb = NULL; in mISDN_clear_bchannel()
131 ch->tx_idx = 0; in mISDN_clear_bchannel()
132 if (ch->rx_skb) { in mISDN_clear_bchannel()
133 dev_kfree_skb(ch->rx_skb); in mISDN_clear_bchannel()
134 ch->rx_skb = NULL; in mISDN_clear_bchannel()
136 if (ch->next_skb) { in mISDN_clear_bchannel()
137 dev_kfree_skb(ch->next_skb); in mISDN_clear_bchannel()
138 ch->next_skb = NULL; in mISDN_clear_bchannel()
140 test_and_clear_bit(FLG_TX_BUSY, &ch->Flags); in mISDN_clear_bchannel()
141 test_and_clear_bit(FLG_TX_NEXT, &ch->Flags); in mISDN_clear_bchannel()
142 test_and_clear_bit(FLG_ACTIVE, &ch->Flags); in mISDN_clear_bchannel()
143 test_and_clear_bit(FLG_FILLEMPTY, &ch->Flags); in mISDN_clear_bchannel()
144 test_and_clear_bit(FLG_TX_EMPTY, &ch->Flags); in mISDN_clear_bchannel()
145 test_and_clear_bit(FLG_RX_OFF, &ch->Flags); in mISDN_clear_bchannel()
146 ch->dropcnt = 0; in mISDN_clear_bchannel()
147 ch->minlen = ch->init_minlen; in mISDN_clear_bchannel()
148 ch->next_minlen = ch->init_minlen; in mISDN_clear_bchannel()
149 ch->maxlen = ch->init_maxlen; in mISDN_clear_bchannel()
150 ch->next_maxlen = ch->init_maxlen; in mISDN_clear_bchannel()
151 skb_queue_purge(&ch->rqueue); in mISDN_clear_bchannel()
152 ch->rcount = 0; in mISDN_clear_bchannel()
157 mISDN_freebchannel(struct bchannel *ch) in mISDN_freebchannel() argument
159 cancel_work_sync(&ch->workq); in mISDN_freebchannel()
160 mISDN_clear_bchannel(ch); in mISDN_freebchannel()
393 queue_ch_frame(struct mISDNchannel *ch, u_int pr, int id, struct sk_buff *skb) in queue_ch_frame() argument
398 _queue_data(ch, pr, id, 0, NULL, GFP_ATOMIC); in queue_ch_frame()
400 if (ch->peer) { in queue_ch_frame()
404 if (!ch->recv(ch->peer, skb)) in queue_ch_frame()
413 dchannel_senddata(struct dchannel *ch, struct sk_buff *skb) in dchannel_senddata() argument
420 if (skb->len > ch->maxlen) { in dchannel_senddata()
422 __func__, skb->len, ch->maxlen); in dchannel_senddata()
426 if (test_and_set_bit(FLG_TX_BUSY, &ch->Flags)) { in dchannel_senddata()
427 skb_queue_tail(&ch->squeue, skb); in dchannel_senddata()
431 ch->tx_skb = skb; in dchannel_senddata()
432 ch->tx_idx = 0; in dchannel_senddata()
439 bchannel_senddata(struct bchannel *ch, struct sk_buff *skb) in bchannel_senddata() argument
447 if (skb->len > ch->maxlen) { in bchannel_senddata()
449 __func__, skb->len, ch->maxlen); in bchannel_senddata()
454 if (ch->next_skb) { in bchannel_senddata()
457 __func__, skb->len, ch->next_skb->len); in bchannel_senddata()
460 if (test_and_set_bit(FLG_TX_BUSY, &ch->Flags)) { in bchannel_senddata()
461 test_and_set_bit(FLG_TX_NEXT, &ch->Flags); in bchannel_senddata()
462 ch->next_skb = skb; in bchannel_senddata()
466 ch->tx_skb = skb; in bchannel_senddata()
467 ch->tx_idx = 0; in bchannel_senddata()
468 confirm_Bsend(ch); in bchannel_senddata()