• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /asus-wl-520gu-7.0.1.45/src/linux/linux/net/atm/

Lines Matching refs:vcc

43 void svc_callback(struct atm_vcc *vcc)
45 wake_up(&vcc->sleep);
57 static void svc_disconnect(struct atm_vcc *vcc)
62 DPRINTK("svc_disconnect %p\n",vcc);
63 if (test_bit(ATM_VF_REGIS,&vcc->flags)) {
64 sigd_enq(vcc,as_close,NULL,NULL,NULL);
65 add_wait_queue(&vcc->sleep,&wait);
66 while (!test_bit(ATM_VF_RELEASED,&vcc->flags) && sigd) {
70 remove_wait_queue(&vcc->sleep,&wait);
74 while ((skb = skb_dequeue(&vcc->listenq))) {
76 sigd_enq2(NULL,as_reject,vcc,NULL,NULL,&vcc->qos,0);
79 clear_bit(ATM_VF_REGIS,&vcc->flags);
80 clear_bit(ATM_VF_RELEASED,&vcc->flags);
81 clear_bit(ATM_VF_CLOSE,&vcc->flags);
88 struct atm_vcc *vcc;
91 vcc = ATM_SD(sock);
92 DPRINTK("svc_release %p\n",vcc);
93 clear_bit(ATM_VF_READY,&vcc->flags);
95 svc_disconnect(vcc);
109 struct atm_vcc *vcc;
114 vcc = ATM_SD(sock);
115 if (test_bit(ATM_VF_SESSION,&vcc->flags)) return -EINVAL;
118 clear_bit(ATM_VF_BOUND,&vcc->flags);
121 if (!test_bit(ATM_VF_HASQOS,&vcc->flags)) return -EBADFD;
122 vcc->local = *addr;
123 vcc->reply = WAITING;
124 sigd_enq(vcc,as_bind,NULL,NULL,&vcc->local);
125 add_wait_queue(&vcc->sleep,&wait);
126 while (vcc->reply == WAITING && sigd) {
130 remove_wait_queue(&vcc->sleep,&wait);
131 clear_bit(ATM_VF_REGIS,&vcc->flags); /* doesn't count */
133 if (!vcc->reply) set_bit(ATM_VF_BOUND,&vcc->flags);
134 return vcc->reply;
143 struct atm_vcc *vcc = ATM_SD(sock);
146 DPRINTK("svc_connect %p\n",vcc);
150 if (vcc->reply == WAITING) return -EALREADY;
152 if (vcc->reply) return vcc->reply;
158 if (test_bit(ATM_VF_SESSION,&vcc->flags)) return -EINVAL;
161 if (!test_bit(ATM_VF_HASQOS,&vcc->flags)) return -EBADFD;
162 if (vcc->qos.txtp.traffic_class == ATM_ANYCLASS ||
163 vcc->qos.rxtp.traffic_class == ATM_ANYCLASS)
165 if (!vcc->qos.txtp.traffic_class &&
166 !vcc->qos.rxtp.traffic_class) return -EINVAL;
167 vcc->remote = *addr;
168 vcc->reply = WAITING;
169 sigd_enq(vcc,as_connect,NULL,NULL,&vcc->remote);
174 add_wait_queue(&vcc->sleep,&wait);
176 while (vcc->reply == WAITING && sigd) {
193 sigd_enq(vcc,as_close,NULL,NULL,NULL);
194 while (vcc->reply == WAITING && sigd) {
198 if (!vcc->reply)
199 while (!test_bit(ATM_VF_RELEASED,&vcc->flags)
204 clear_bit(ATM_VF_REGIS,&vcc->flags);
205 clear_bit(ATM_VF_RELEASED,&vcc->flags);
206 clear_bit(ATM_VF_CLOSE,&vcc->flags);
211 remove_wait_queue(&vcc->sleep,&wait);
214 if (vcc->reply) return vcc->reply;
221 vcc->qos.txtp.max_pcr = SELECT_TOP_PCR(vcc->qos.txtp);
222 vcc->qos.txtp.pcr = 0;
223 vcc->qos.txtp.min_pcr = 0;
227 if (!(error = atm_connect(sock,vcc->itf,vcc->vpi,vcc->vci)))
229 else (void) svc_disconnect(vcc);
237 struct atm_vcc *vcc = ATM_SD(sock);
239 DPRINTK("svc_listen %p\n",vcc);
241 if (test_bit(ATM_VF_SESSION,&vcc->flags)) return -EINVAL;
242 vcc->reply = WAITING;
243 sigd_enq(vcc,as_listen,NULL,NULL,&vcc->local);
244 add_wait_queue(&vcc->sleep,&wait);
245 while (vcc->reply == WAITING && sigd) {
249 remove_wait_queue(&vcc->sleep,&wait);
251 set_bit(ATM_VF_LISTEN,&vcc->flags);
252 vcc->backlog_quota = backlog > 0 ? backlog : ATM_BACKLOG_DEFAULT;
253 return vcc->reply;
342 int svc_change_qos(struct atm_vcc *vcc,struct atm_qos *qos)
346 vcc->reply = WAITING;
347 sigd_enq2(vcc,as_modify,NULL,NULL,&vcc->local,qos,0);
348 add_wait_queue(&vcc->sleep,&wait);
349 while (vcc->reply == WAITING && !test_bit(ATM_VF_RELEASED,&vcc->flags)
354 remove_wait_queue(&vcc->sleep,&wait);
356 return vcc->reply;
363 struct atm_vcc *vcc;
368 vcc = ATM_SD(sock);
369 if (copy_from_user(&vcc->sap,optval,optlen)) return -EFAULT;
370 set_bit(ATM_VF_HASSAP,&vcc->flags);