X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibposix.so_src%2Ftermios.c;h=d3aaefac8f5f063c69d662ce43deaa50f901787f;hb=98bd9c0c8985c50c42231c116a4e18fedd47761e;hp=32fa9e16b282ab21f04021e91de5ad57a231ad71;hpb=45ff232a1db704623e0c4baed011d12cbd44b06e;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libposix.so_src/termios.c b/Usermode/Libraries/libposix.so_src/termios.c index 32fa9e16..d3aaefac 100644 --- a/Usermode/Libraries/libposix.so_src/termios.c +++ b/Usermode/Libraries/libposix.so_src/termios.c @@ -12,6 +12,11 @@ #include // === CODE === +speed_t cfgetospeed(const struct termios *termios_p) +{ + return termios_p->c_oflag & CBAUD; +} + int tcgetattr(int fd, struct termios *termios_p) { if( fd == -1 ) { @@ -59,6 +64,8 @@ int tcsetattr(int fd, int optional_actions, const struct termios *termios_p) errno = EINVAL; return -1; } + _SysDebug("*termios_p = {%x,%x,%x,%x}", + termios_p->c_iflag, termios_p->c_oflag, termios_p->c_cflag, termios_p->c_lflag); // Double-check `fd` describes a terminal if( _SysIOCtl(fd, DRV_IOCTL_TYPE, NULL) != DRV_TYPE_TERMINAL ) { @@ -73,8 +80,7 @@ int tcsetattr(int fd, int optional_actions, const struct termios *termios_p) if(termios_p->c_lflag & ECHO) mode.InputMode |= PTYIMODE_ECHO; - _SysDebug("*termios_p = {%x,%x,%x,%x}", - termios_p->c_iflag, termios_p->c_oflag, termios_p->c_cflag, termios_p->c_lflag); + _SysIOCtl(fd, PTY_IOCTL_SETMODE, &mode); return 0; }