Lines Matching defs:atmvcc
57 struct atm_vcc *atmvcc; /* VCC descriptor */
89 static inline struct pppoatm_vcc *atmvcc_to_pvcc(const struct atm_vcc *atmvcc)
91 return (struct pppoatm_vcc *) (atmvcc->user_back);
109 static void pppoatm_release_cb(struct atm_vcc *atmvcc)
111 struct pppoatm_vcc *pvcc = atmvcc_to_pvcc(atmvcc);
125 pvcc->old_release_cb(atmvcc);
132 static void pppoatm_pop(struct atm_vcc *atmvcc, struct sk_buff *skb)
134 struct pppoatm_vcc *pvcc = atmvcc_to_pvcc(atmvcc);
136 pvcc->old_pop(atmvcc, skb);
165 static void pppoatm_unassign_vcc(struct atm_vcc *atmvcc)
168 pvcc = atmvcc_to_pvcc(atmvcc);
169 atmvcc->push = pvcc->old_push;
170 atmvcc->pop = pvcc->old_pop;
171 atmvcc->release_cb = pvcc->old_release_cb;
174 atmvcc->user_back = NULL;
179 static void pppoatm_push(struct atm_vcc *atmvcc, struct sk_buff *skb)
181 struct pppoatm_vcc *pvcc = atmvcc_to_pvcc(atmvcc);
188 pppoatm_unassign_vcc(atmvcc);
189 atmvcc->push(atmvcc, NULL); /* Pass along bad news */
193 atm_return(atmvcc, skb->truesize);
241 if (atm_may_send(pvcc->atmvcc, size) &&
271 if (atm_may_send(pvcc->atmvcc, size) &&
293 ATM_SKB(skb)->vcc = pvcc->atmvcc;
294 pr_debug("(skb=0x%p, vcc=0x%p)\n", skb, pvcc->atmvcc);
387 static int pppoatm_assign_vcc(struct atm_vcc *atmvcc, void __user *arg)
405 pvcc->atmvcc = atmvcc;
409 pvcc->old_push = atmvcc->push;
410 pvcc->old_pop = atmvcc->pop;
411 pvcc->old_owner = atmvcc->owner;
412 pvcc->old_release_cb = atmvcc->release_cb;
416 pvcc->chan.mtu = atmvcc->qos.txtp.max_sdu - PPP_HDRLEN -
425 atmvcc->user_back = pvcc;
426 atmvcc->push = pppoatm_push;
427 atmvcc->pop = pppoatm_pop;
428 atmvcc->release_cb = pppoatm_release_cb;
430 atmvcc->owner = THIS_MODULE;
434 vcc_process_recv_queue(atmvcc);
445 struct atm_vcc *atmvcc = ATM_SD(sock);
448 if (cmd != ATM_SETBACKEND && atmvcc->push != pppoatm_push)
461 return pppoatm_assign_vcc(atmvcc, argp);
464 return put_user(ppp_channel_index(&atmvcc_to_pvcc(atmvcc)->
467 return put_user(ppp_unit_number(&atmvcc_to_pvcc(atmvcc)->