Interdata732/usr/sys/sys.c

Compare this file to the similar file:
Show the results in this format:

#
/*
 */

/*
 *	indirect driver for controlling tty.
 */
#include "param.h"
#include "conf.h"
#include "user.h"
#include "tty.h"
#include "proc.h"

syopen(dev, flag)
{
	register *tp;
	extern int consdev;	/* device number of 'console' tty */

	if(tp = syttyp())
	(*cdevsw[tp->t_dev.d_major].d_open)(tp->t_dev, flag);
/***/	else {
		/***
		 *** if no 'controlling tty', use 'console' as default
		 ***/
/***/		u.u_error = 0;
/***/		(*cdevsw[consdev.d_major].d_open)(consdev, flag);
/***/	}
}

syread(dev)
{
	register *tp;

	if(tp = syttyp())
	(*cdevsw[tp->t_dev.d_major].d_read)(tp->t_dev);
}

sywrite(dev)
{
	register *tp;

	if(tp = syttyp())
	(*cdevsw[tp->t_dev.d_major].d_write)(tp->t_dev);
}

sysgtty(dev, flag)
{
	register *tp;

	if(tp = syttyp())
	(*cdevsw[tp->t_dev.d_major].d_sgtty)(tp->t_dev, flag);
}

syttyp()
{
	register tp;

	tp = u.u_procp->p_ttyp;
	if(tp == NULL)
		u.u_error = ENXIO;
	return(tp);
}