#include <sys/param.h>
#include <sys/systm.h>
#include <sys/conf.h>
#include <sys/ioctl.h>
#include <sys/tty.h>
#include <sys/proc.h>
#include <sys/uio.h>
struct tty cons;
struct tty *constty;
int
cnopen(dev, flag, devtype, pp)
dev_t dev;
int flag, devtype;
struct proc *pp;
{
dev_t device;
if (constty)
device = constty->t_dev;
else
device = cons.t_dev;
return ((*cdevsw[major(device)].d_open)(device, flag, devtype, pp));
}
int
cnclose(dev, flag, mode, pp)
dev_t dev;
int flag, mode;
struct proc *pp;
{
dev_t device;
if (constty)
device = constty->t_dev;
else
device = cons.t_dev;
return ((*cdevsw[major(device)].d_close)(device, flag, mode, pp));
}
int
cnread(dev, uio, ioflag)
dev_t dev;
struct uio *uio;
int ioflag;
{
dev_t device;
if (constty)
device = constty->t_dev;
else
device = cons.t_dev;
return ((*cdevsw[major(device)].d_read)(device, uio, ioflag));
}
int
cnwrite(dev, uio, ioflag)
dev_t dev;
struct uio *uio;
int ioflag;
{
dev_t device;
if (constty)
device = constty->t_dev;
else
device = cons.t_dev;
return ((*cdevsw[major(device)].d_write)(device, uio, ioflag));
}
int
cnioctl(dev, cmd, addr, flag, p)
dev_t dev;
int cmd;
caddr_t addr;
int flag;
struct proc *p;
{
dev_t device;
if (constty)
device = constty->t_dev;
else
device = cons.t_dev;
if (cmd == TIOCCONS && constty) {
int error = suser(p->p_ucred, (u_short *) NULL);
if (error)
return (error);
constty = NULL;
return (0);
}
return ((*cdevsw[major(device)].d_ioctl)(device, cmd, addr, flag, p));
}
int
cnselect(dev, flag, wql, p)
dev_t dev;
int flag;
void * wql;
struct proc *p;
{
dev_t device;
if (constty)
device = constty->t_dev;
else
device = cons.t_dev;
return ((*cdevsw[major(device)].d_select)(device, flag, wql, p));
}
#if 0
int
cngetc()
{
dev_t device;
if (constty)
device = constty->t_dev;
else
device = cons.t_dev;
return ((*cdevsw[major(device)].d_getc)(device));
}
int
cnputc(c)
char c;
{
dev_t device;
if (constty)
device = constty->t_dev;
else
device = cons.t_dev;
return ((*cdevsw[major(device)].d_putc)(device, c));
}
#endif
#if NCPUS > 1
slave_cnenable()
{
}
#endif NCPUS > 1
#if 0
void
kprintf( const char *format, ...)
{
}
#endif
int
alert(
int width,
int height,
const char *title,
const char *msg,
int p1,
int p2,
int p3,
int p4,
int p5,
int p6,
int p7,
int p8)
{
char smsg[200];
sprintf(smsg, msg, p1, p2, p3, p4, p5, p6, p7, p8);
#if FIXME
#else
printf("%s\n",smsg);
#endif
return 0;
}
int
alert_done()
{
return 0;
}