On Wed, Jan 16, 2008 at 06:30:04AM +0100, tgingold@xxxxxxx wrote:
> diff -r ca2828a46217 -r 0353ead264ba tools/console/daemon/io.c
> --- a/tools/console/daemon/io.c Wed Jan 16 06:21:50 2008 +0100
> +++ b/tools/console/daemon/io.c Wed Jan 16 06:25:43 2008 +0100
> @@ -278,8 +278,10 @@ static int openpty(int *amaster, int *as
> if (winp)
> ioctl(sfd, TIOCSWINSZ, winp);
>
> + if (termp)
> + tcsetattr(sfd, TCSAFLUSH, termp);
> +
This is wrong. openpty() only retrieves term settings, not sets it. You
must do the cfmakeraw after openpty().
Also, if you're re-introducing cfmakeraw() call, you need to include
this:
#ifdef __sun__
void cfmakeraw (struct termios *termios_p)
{
termios_p->c_iflag &=
~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON);
termios_p->c_oflag &= ~OPOST;
termios_p->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN);
termios_p->c_cflag &= ~(CSIZE|PARENB);
termios_p->c_cflag |= CS8;
termios_p->c_cc[VMIN] = 0;
termios_p->c_cc[VTIME] = 0;
}
#endif
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|