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);
111 static void pppoatm_release_cb(struct atm_vcc *atmvcc)
113 struct pppoatm_vcc *pvcc = atmvcc_to_pvcc(atmvcc);
127 pvcc->old_release_cb(atmvcc);
134 static void pppoatm_pop(struct atm_vcc *atmvcc, struct sk_buff *skb)
136 struct pppoatm_vcc *pvcc = atmvcc_to_pvcc(atmvcc);
138 pvcc->old_pop(atmvcc, skb);
167 static void pppoatm_unassign_vcc(struct atm_vcc *atmvcc)
170 pvcc = atmvcc_to_pvcc(atmvcc);
171 atmvcc->push = pvcc->old_push;
172 atmvcc->pop = pvcc->old_pop;
173 atmvcc->release_cb = pvcc->old_release_cb;
176 atmvcc->user_back = NULL;
181 static void pppoatm_push(struct atm_vcc *atmvcc, struct sk_buff *skb)
183 struct pppoatm_vcc *pvcc = atmvcc_to_pvcc(atmvcc);
190 pppoatm_unassign_vcc(atmvcc);
191 atmvcc->push(atmvcc, NULL); /* Pass along bad news */
195 atm_return(atmvcc, skb->truesize);
243 if (atm_may_send(pvcc->atmvcc, size) &&
273 if (atm_may_send(pvcc->atmvcc, size) &&
295 ATM_SKB(skb)->vcc = pvcc->atmvcc;
296 pr_debug("(skb=0x%p, vcc=0x%p)\n", skb, pvcc->atmvcc);
389 static int pppoatm_assign_vcc(struct atm_vcc *atmvcc, void __user *arg)
403 pvcc->atmvcc = atmvcc;
407 pvcc->old_push = atmvcc->push;
408 pvcc->old_pop = atmvcc->pop;
409 pvcc->old_owner = atmvcc->owner;
410 pvcc->old_release_cb = atmvcc->release_cb;
414 pvcc->chan.mtu = atmvcc->qos.txtp.max_sdu - PPP_HDRLEN -
422 atmvcc->user_back = pvcc;
423 atmvcc->push = pppoatm_push;
424 atmvcc->pop = pppoatm_pop;
425 atmvcc->release_cb = pppoatm_release_cb;
427 atmvcc->owner = THIS_MODULE;
431 vcc_process_recv_queue(atmvcc);
442 struct atm_vcc *atmvcc = ATM_SD(sock);
445 if (cmd != ATM_SETBACKEND && atmvcc->push != pppoatm_push)
458 return pppoatm_assign_vcc(atmvcc, argp);
461 return put_user(ppp_channel_index(&atmvcc_to_pvcc(atmvcc)->
464 return put_user(ppp_unit_number(&atmvcc_to_pvcc(atmvcc)->