Module: wine Branch: master Commit: a24f10b51173432fc2ce65c5c40f01f9a25c7243 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a24f10b51173432fc2ce65c5c4...
Author: Wolfgang Walter wine@stwm.de Date: Sat Dec 20 16:56:22 2008 +0100
ntdll: Fix set_XOff and set_XOn.
---
dlls/ntdll/serial.c | 30 ++++++++---------------------- 1 files changed, 8 insertions(+), 22 deletions(-)
diff --git a/dlls/ntdll/serial.c b/dlls/ntdll/serial.c index 95be78d..e174c12 100644 --- a/dlls/ntdll/serial.c +++ b/dlls/ntdll/serial.c @@ -800,39 +800,25 @@ static NTSTATUS set_wait_mask(HANDLE hDevice, DWORD mask) return status; }
+/* + * does not change IXOFF but simulates that IXOFF has been received: + */ static NTSTATUS set_XOff(int fd) { - struct termios port; - - if (tcgetattr(fd,&port) == -1) - { - FIXME("tcgetattr on fd %d failed (%s)!\n", fd, strerror(errno)); - return FILE_GetNtStatus(); - - - } - port.c_iflag |= IXOFF; - if (tcsetattr(fd, TCSADRAIN, &port) == -1) + if (tcflow(fd, TCOOFF)) { - FIXME("tcsetattr on fd %d failed (%s)!\n", fd, strerror(errno)); return FILE_GetNtStatus(); } return STATUS_SUCCESS; }
+/* + * does not change IXON but simulates that IXON has been received: + */ static NTSTATUS set_XOn(int fd) { - struct termios port; - - if (tcgetattr(fd,&port) == -1) - { - FIXME("tcgetattr on fd %d failed (%s)!\n", fd, strerror(errno)); - return FILE_GetNtStatus(); - } - port.c_iflag |= IXON; - if (tcsetattr(fd, TCSADRAIN, &port) == -1) + if (tcflow(fd, TCOON)) { - FIXME("tcsetattr on fd %d failed (%s)!\n", fd, strerror(errno)); return FILE_GetNtStatus(); } return STATUS_SUCCESS;