* Copyright (c) 1982, 1986, 1991 The Regents of the University of California.
* %sccs.include.redist.c%
* @(#)tty_tty.c 7.15 (Berkeley) %G%
* Indirect driver for controlling tty.
#define cttyvp(p) ((p)->p_flag&SCTTY ? (p)->p_session->s_ttyvp : NULL)
cttyopen(dev
, flag
, mode
, p
)
struct vnode
*ttyvp
= cttyvp(p
);
error
= VOP_ACCESS(ttyvp
,
(flag
&FREAD
? VREAD
: 0) | (flag
&FWRITE
? VWRITE
: 0), p
->p_ucred
, p
);
error
= VOP_OPEN(ttyvp
, flag
, NOCRED
, p
);
register struct vnode
*ttyvp
= cttyvp(uio
->uio_procp
);
error
= VOP_READ(ttyvp
, uio
, flag
, NOCRED
);
cttywrite(dev
, uio
, flag
)
register struct vnode
*ttyvp
= cttyvp(uio
->uio_procp
);
error
= VOP_WRITE(ttyvp
, uio
, flag
, NOCRED
);
cttyioctl(dev
, cmd
, addr
, flag
, p
)
struct vnode
*ttyvp
= cttyvp(p
);
return (VOP_IOCTL(ttyvp
, cmd
, addr
, flag
, NOCRED
, p
));
struct vnode
*ttyvp
= cttyvp(p
);
return (1); /* try operation to get EOF/failure */
return (VOP_SELECT(ttyvp
, flag
, FREAD
|FWRITE
, NOCRED
, p
));