Lines Matching refs:vcc

98 patm_rx_vcc_can_open(struct patm_softc *sc, struct patm_vcc *vcc)
107 patm_rx_vcc_open(struct patm_softc *sc, struct patm_vcc *vcc)
111 patm_debug(sc, VCC, "%u.%u RX opening", vcc->vcc.vpi, vcc->vcc.vci);
113 switch (vcc->vcc.aal) {
128 if (vcc->cid != 0)
129 patm_sram_write4(sc, sc->mmap->rct + vcc->cid *
137 vcc->vflags |= PATM_VCC_RX_OPEN;
140 /* close the given vcc for transmission */
142 patm_rx_vcc_close(struct patm_softc *sc, struct patm_vcc *vcc)
146 patm_debug(sc, VCC, "%u.%u RX closing", vcc->vcc.vpi, vcc->vcc.vci);
148 if (vcc->cid == 0) {
152 vcc->vflags &= ~PATM_VCC_RX_OPEN;
157 w1 = rct_read(sc, vcc->cid, 0);
159 rct_write(sc, vcc->cid, 0, w1);
163 rct_write(sc, vcc->cid, 0, w1);
166 patm_nor_write(sc, IDT_NOR_IRCP, vcc->cid);
168 vcc->vflags &= ~PATM_VCC_RX_OPEN;
169 vcc->vflags |= PATM_VCC_RX_CLOSING;
183 patm_rx_vcc_closed(struct patm_softc *sc, struct patm_vcc *vcc)
186 vcc->vcc.vpi, vcc->vcc.vci);
198 struct patm_vcc *vcc;
207 vcc = sc->vccs[cid];
217 if (vcc != NULL && (vcc->vflags & PATM_VCC_RX_CLOSING)) {
218 patm_debug(sc, VCC, "%u.%u RX closed", vcc->vcc.vpi,
219 vcc->vcc.vci);
220 vcc->vflags &= ~PATM_VCC_RX_CLOSING;
221 if (vcc->vcc.flags & ATMIO_FLAG_ASYNC) {
222 patm_rx_vcc_closed(sc, vcc);
223 if (!(vcc->vflags & PATM_VCC_OPEN))
224 patm_vcc_closed(sc, vcc);
233 if (vcc == NULL || (vcc->vflags & PATM_VCC_RX_OPEN) == 0) {
241 if (vcc->vcc.aal == ATMIO_AAL_0) {
250 } else if (vcc->vcc.aal == ATMIO_AAL_34) {
255 } else if (vcc->vcc.aal == ATMIO_AAL_5) {
258 if (vcc->chain != NULL) {
259 m_freem(vcc->chain);
260 vcc->chain = vcc->last = NULL;
266 if (vcc->chain == NULL) {
272 vcc->chain = vcc->last = m;
277 vcc->last->m_next = m;
278 vcc->last = m;
279 vcc->chain->m_pkthdr.len += m->m_len;
288 if ((u_int)vcc->chain->m_pkthdr.len < len + 8) {
291 m_freem(vcc->chain);
292 vcc->chain = vcc->last = NULL;
295 m->m_len -= vcc->chain->m_pkthdr.len - len;
298 m = vcc->chain;
299 vcc->chain = vcc->last = NULL;
319 vcc->ibytes += m->m_pkthdr.len;
320 vcc->ipackets++;
322 ATM_PH_FLAGS(&aph) = vcc->vcc.flags & 0xff;
327 if (!(vcc->vcc.flags & ATMIO_FLAG_NG) &&
328 (vcc->vcc.aal == ATMIO_AAL_5) &&
329 (vcc->vcc.flags & ATM_PH_LLCSNAP))
333 atm_input(sc->ifp, &aph, m, vcc->rxhand);
433 struct patm_vcc *vcc;
452 vcc = sc->vccs[cid];
453 if (vcc == NULL || !(vcc->vflags & PATM_VCC_RX_OPEN) ||
454 vcc->vcc.aal != ATMIO_AAL_RAW) {
455 vcc = sc->vccs[0];
456 if (vcc == NULL || !(vcc->vflags & PATM_VCC_RX_OPEN)) {
469 switch (vcc->vflags & PATM_RAW_FORMAT) {
518 vcc->ibytes += m->m_pkthdr.len;
519 vcc->ipackets++;
521 ATM_PH_FLAGS(&aph) = vcc->vcc.flags & 0xff;
522 ATM_PH_VPI(&aph) = vcc->vcc.vpi;
523 ATM_PH_SETVCI(&aph, vcc->vcc.vci);
525 atm_input(sc->ifp, &aph, m, vcc->rxhand);