version 1.39.2.1, 2001/09/07 04:45:33 |
version 1.39.2.2, 2001/09/26 15:28:19 |
Line 292 ucom_shutdown(struct ucom_softc *sc) |
|
Line 292 ucom_shutdown(struct ucom_softc *sc) |
|
int |
int |
ucomopen(struct vnode *devvp, int flag, int mode, struct proc *p) |
ucomopen(struct vnode *devvp, int flag, int mode, struct proc *p) |
{ |
{ |
int unit = UCOMUNIT(devvp->v_rdev); |
int unit; |
usbd_status err; |
usbd_status err; |
struct ucom_softc *sc; |
struct ucom_softc *sc; |
struct tty *tp; |
struct tty *tp; |
int s; |
int s; |
int error; |
int error; |
|
dev_t rdev; |
|
|
|
rdev = vdev_rdev(devvp); |
|
unit = UCOMUNIT(rdev); |
|
|
if (unit >= ucom_cd.cd_ndevs) |
if (unit >= ucom_cd.cd_ndevs) |
return (ENXIO); |
return (ENXIO); |
Line 311 ucomopen(struct vnode *devvp, int flag, |
|
Line 315 ucomopen(struct vnode *devvp, int flag, |
|
if (ISSET(sc->sc_dev.dv_flags, DVF_ACTIVE) == 0) |
if (ISSET(sc->sc_dev.dv_flags, DVF_ACTIVE) == 0) |
return (ENXIO); |
return (ENXIO); |
|
|
devvp->v_devcookie = sc; |
vdev_setprivdata(devvp, sc); |
|
|
tp = sc->sc_tty; |
tp = sc->sc_tty; |
|
|
Line 446 ucomopen(struct vnode *devvp, int flag, |
|
Line 450 ucomopen(struct vnode *devvp, int flag, |
|
wakeup(&sc->sc_opening); |
wakeup(&sc->sc_opening); |
splx(s); |
splx(s); |
|
|
error = ttyopen(tp, UCOMDIALOUT(devvp->v_rdev), ISSET(flag, |
error = ttyopen(tp, UCOMDIALOUT(rdev), ISSET(flag, O_NONBLOCK)); |
O_NONBLOCK)); |
|
if (error) |
if (error) |
goto bad; |
goto bad; |
|
|
|
|
int |
int |
ucomclose(struct vnode *devvp, int flag, int mode, struct proc *p) |
ucomclose(struct vnode *devvp, int flag, int mode, struct proc *p) |
{ |
{ |
struct ucom_softc *sc = devvp->v_devcookie; |
struct ucom_softc *sc; |
struct tty *tp = sc->sc_tty; |
struct tty *tp; |
|
|
DPRINTF(("ucomclose: unit=%d\n", UCOMUNIT(devvp->v_rdev))); |
sc = vdev_privdata(devvp); |
|
tp = sc->sc_tty; |
|
|
|
DPRINTF(("ucomclose: unit=%d\n", UCOMUNIT(vdev_rdev(devvp)))); |
if (!ISSET(tp->t_state, TS_ISOPEN)) |
if (!ISSET(tp->t_state, TS_ISOPEN)) |
return (0); |
return (0); |
|
|
Line 523 ucomclose(struct vnode *devvp, int flag, |
|
Line 529 ucomclose(struct vnode *devvp, int flag, |
|
int |
int |
ucomread(struct vnode *devvp, struct uio *uio, int flag) |
ucomread(struct vnode *devvp, struct uio *uio, int flag) |
{ |
{ |
struct ucom_softc *sc = devvp->v_devcookie; |
struct ucom_softc *sc; |
struct tty *tp = sc->sc_tty; |
struct tty *tp; |
int error; |
int error; |
|
|
|
sc = vdev_privdata(devvp); |
|
tp = sc->sc_tty; |
|
|
if (sc->sc_dying) |
if (sc->sc_dying) |
return (EIO); |
return (EIO); |
|
|
Line 540 ucomread(struct vnode *devvp, struct uio |
|
Line 549 ucomread(struct vnode *devvp, struct uio |
|
int |
int |
ucomwrite(struct vnode *devvp, struct uio *uio, int flag) |
ucomwrite(struct vnode *devvp, struct uio *uio, int flag) |
{ |
{ |
struct ucom_softc *sc = devvp->v_devcookie; |
struct ucom_softc *sc; |
struct tty *tp = sc->sc_tty; |
struct tty *tp; |
int error; |
int error; |
|
|
|
sc = vdev_privdata(devvp); |
|
tp = sc->sc_tty; |
|
|
if (sc->sc_dying) |
if (sc->sc_dying) |
return (EIO); |
return (EIO); |
|
|
Line 560 ucompoll(devvp, events, p) |
|
Line 572 ucompoll(devvp, events, p) |
|
int events; |
int events; |
struct proc *p; |
struct proc *p; |
{ |
{ |
struct ucom_softc *sc = devvp->v_devcookie; |
struct ucom_softc *sc; |
struct tty *tp = sc->sc_tty; |
struct tty *tp; |
int error; |
int error; |
|
|
|
sc = vdev_privdata(devvp); |
|
tp = sc->sc_tty; |
|
|
if (sc->sc_dying) |
if (sc->sc_dying) |
return (EIO); |
return (EIO); |
|
|
Line 577 ucompoll(devvp, events, p) |
|
Line 592 ucompoll(devvp, events, p) |
|
struct tty * |
struct tty * |
ucomtty(struct vnode *devvp) |
ucomtty(struct vnode *devvp) |
{ |
{ |
struct ucom_softc *sc = devvp->v_devcookie; |
struct ucom_softc *sc; |
struct tty *tp = sc->sc_tty; |
struct tty *tp; |
|
|
|
sc = vdev_privdata(devvp); |
|
tp = sc->sc_tty; |
|
|
return (tp); |
return (tp); |
} |
} |
|
|
ucomioctl(struct vnode *devvp, u_long cmd, caddr_t data, int flag, |
ucomioctl(struct vnode *devvp, u_long cmd, caddr_t data, int flag, |
struct proc *p) |
struct proc *p) |
{ |
{ |
struct ucom_softc *sc = devvp->v_devcookie; |
struct ucom_softc *sc; |
int error; |
int error; |
|
|
|
sc = vdev_privdata(devvp); |
|
|
sc->sc_refcnt++; |
sc->sc_refcnt++; |
error = ucom_do_ioctl(sc, cmd, data, flag, p); |
error = ucom_do_ioctl(sc, cmd, data, flag, p); |
if (--sc->sc_refcnt < 0) |
if (--sc->sc_refcnt < 0) |
Line 795 ucom_status_change(struct ucom_softc *sc |
|
Line 815 ucom_status_change(struct ucom_softc *sc |
|
Static int |
Static int |
ucomparam(struct tty *tp, struct termios *t) |
ucomparam(struct tty *tp, struct termios *t) |
{ |
{ |
struct ucom_softc *sc = tp->t_devvp->v_devcookie; |
struct ucom_softc *sc; |
int error; |
int error; |
|
|
|
sc = vdev_privdata(tp->t_devvp); |
|
|
if (sc->sc_dying) |
if (sc->sc_dying) |
return (EIO); |
return (EIO); |
|
|
|
|
Static void |
Static void |
ucomstart(struct tty *tp) |
ucomstart(struct tty *tp) |
{ |
{ |
struct ucom_softc *sc = tp->t_devvp->v_devcookie; |
struct ucom_softc *sc; |
usbd_status err; |
usbd_status err; |
int s; |
int s; |
u_char *data; |
u_char *data; |
int cnt; |
int cnt; |
|
|
|
sc = vdev_privdata(tp->t_devvp); |
|
|
if (sc->sc_dying) |
if (sc->sc_dying) |
return; |
return; |
|
|
Line 957 ucomstop(struct tty *tp, int flag) |
|
Line 981 ucomstop(struct tty *tp, int flag) |
|
{ |
{ |
DPRINTF(("ucomstop: flag=%d\n", flag)); |
DPRINTF(("ucomstop: flag=%d\n", flag)); |
#if 0 |
#if 0 |
/*struct ucom_softc *sc = tp->t_devvp->v_devcookie;*/ |
/*struct ucom_softc *sc;*/ |
int s; |
int s; |
|
|
|
sc = vdev_privdata(tp->t_devvp); |
|
|
s = spltty(); |
s = spltty(); |
if (ISSET(tp->t_state, TS_BUSY)) { |
if (ISSET(tp->t_state, TS_BUSY)) { |
DPRINTF(("ucomstop: XXX\n")); |
DPRINTF(("ucomstop: XXX\n")); |