Lines Matching defs:ssc

171 ucom_attach(struct ucom_super_softc *ssc, struct ucom_softc *sc,
188 ssc->sc_unit = 0;
189 if (ssc->sc_unit == -1)
193 (void)snprintf_s(ssc->sc_ttyname, sizeof(ssc->sc_ttyname), sizeof(ssc->sc_ttyname) - 1,
194 UCOM_TTY_PREFIX "%d", ssc->sc_unit);
197 error = usb_proc_create(&ssc->sc_tq, umtx, "ucom", USB_PRI_MED);
199 ucom_unit_free(ssc->sc_unit);
202 ssc->sc_subunits = subunits;
203 ssc->sc_flag = UCOM_FLAG_ATTACHED |
207 ssc->sc_flag |= UCOM_FLAG_WAIT_REFS;
210 ucom_ref(ssc);
212 for (subunit = 0; subunit < ssc->sc_subunits; subunit++) {
214 sc[subunit].sc_super = ssc;
219 error = ucom_attach_tty(ssc, &sc[subunit]);
221 ucom_detach(ssc, &sc[0]);
225 ucom_ref(ssc);
240 * by "ssc" and "sc" is zero or has already been detached.
243 ucom_detach(struct ucom_super_softc *ssc, struct ucom_softc *sc)
247 if (!(ssc->sc_flag & UCOM_FLAG_ATTACHED))
249 usb_proc_drain(&ssc->sc_tq);
251 for (subunit = 0; subunit < ssc->sc_subunits; subunit++) {
253 ucom_detach_tty(ssc, &sc[subunit]);
264 usb_proc_free(&ssc->sc_tq);
271 (void)ucom_unref(ssc);
273 if (ssc->sc_flag & UCOM_FLAG_WAIT_REFS)
274 ucom_drain(ssc);
277 ssc->sc_flag &= ~UCOM_FLAG_ATTACHED;
283 ucom_drain(struct ucom_super_softc *ssc)
286 while (ssc->sc_refs > 0) {
306 ucom_attach_tty(struct ucom_super_softc *ssc, struct ucom_softc *sc)
317 ssc->sc_unit, sc->sc_subunit);
334 ucom_detach_tty(struct ucom_super_softc *ssc, struct ucom_softc *sc)
358 ucom_set_pnpinfo_usb(struct ucom_super_softc *ssc, device_t dev)
365 "%d ttyports=%d", ssc->sc_unit, ssc->sc_subunits);
386 struct ucom_super_softc *ssc = sc->sc_super;
391 if (usb_proc_is_gone(&ssc->sc_tq)) {
401 usb_proc_msignal(&ssc->sc_tq, t0, t1);
418 usb_proc_mwait(&ssc->sc_tq, t0, t1);
441 struct ucom_super_softc *ssc = sc->sc_super;
443 return (usb_proc_is_gone(&ssc->sc_tq));
971 ucom_ref(struct ucom_super_softc *ssc)
974 ssc->sc_refs++;
986 ucom_free_unit(struct ucom_super_softc *ssc)
988 if (!(ssc->sc_flag & UCOM_FLAG_FREE_UNIT))
991 ucom_unit_free(ssc->sc_unit);
993 ssc->sc_flag &= ~UCOM_FLAG_FREE_UNIT;
1006 ucom_unref(struct ucom_super_softc *ssc)
1011 retval = (ssc->sc_refs < 2);
1012 ssc->sc_refs--;
1016 ucom_free_unit(ssc);