Author: dgorbachev Date: Thu Nov 17 15:37:47 2011 New Revision: 54405
URL: http://svn.reactos.org/svn/reactos?rev=54405&view=rev Log: [SERIAL] Pretend that functions IOCTL_SERIAL_{GET,SET}_{CHARS,HANDFLOW} are implemented. It allows PuTTY to set baud rate.
Modified: trunk/reactos/drivers/serial/serial/devctrl.c
Modified: trunk/reactos/drivers/serial/serial/devctrl.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/serial/serial/devct... ============================================================================== --- trunk/reactos/drivers/serial/serial/devctrl.c [iso-8859-1] (original) +++ trunk/reactos/drivers/serial/serial/devctrl.c [iso-8859-1] Thu Nov 17 15:37:47 2011 @@ -374,8 +374,24 @@ case IOCTL_SERIAL_GET_CHARS: { /* FIXME */ + PSERIAL_CHARS pSerialChars; ERR_(SERIAL, "IOCTL_SERIAL_GET_CHARS not implemented.\n"); - Status = STATUS_NOT_IMPLEMENTED; + if (LengthOut < sizeof(SERIAL_CHARS)) + Status = STATUS_BUFFER_TOO_SMALL; + else if (BufferOut == NULL) + Status = STATUS_INVALID_PARAMETER; + else + { + pSerialChars = (PSERIAL_CHARS)BufferOut; + pSerialChars->EofChar = 0; + pSerialChars->ErrorChar = 0; + pSerialChars->BreakChar = 0; + pSerialChars->EventChar = 0; + pSerialChars->XonChar = 0; + pSerialChars->XoffChar = 0; + Information = sizeof(SERIAL_CHARS); + Status = STATUS_SUCCESS; + } break; } case IOCTL_SERIAL_GET_COMMSTATUS: @@ -414,8 +430,22 @@ case IOCTL_SERIAL_GET_HANDFLOW: { /* FIXME */ + PSERIAL_HANDFLOW pSerialHandflow; ERR_(SERIAL, "IOCTL_SERIAL_GET_HANDFLOW not implemented.\n"); - Status = STATUS_NOT_IMPLEMENTED; + if (LengthOut < sizeof(SERIAL_HANDFLOW)) + Status = STATUS_BUFFER_TOO_SMALL; + else if (BufferOut == NULL) + Status = STATUS_INVALID_PARAMETER; + else + { + pSerialHandflow = (PSERIAL_HANDFLOW)BufferOut; + pSerialHandflow->ControlHandShake = 0; + pSerialHandflow->FlowReplace = 0; + pSerialHandflow->XonLimit = 0; + pSerialHandflow->XoffLimit = 0; + Information = sizeof(SERIAL_HANDFLOW); + Status = STATUS_SUCCESS; + } break; } case IOCTL_SERIAL_GET_LINE_CONTROL: @@ -623,7 +653,7 @@ { /* FIXME */ ERR_(SERIAL, "IOCTL_SERIAL_SET_CHARS not implemented.\n"); - Status = STATUS_NOT_IMPLEMENTED; + Status = STATUS_SUCCESS; break; } case IOCTL_SERIAL_SET_DTR: @@ -665,7 +695,7 @@ { /* FIXME */ ERR_(SERIAL, "IOCTL_SERIAL_SET_HANDFLOW not implemented.\n"); - Status = STATUS_NOT_IMPLEMENTED; + Status = STATUS_SUCCESS; break; } case IOCTL_SERIAL_SET_LINE_CONTROL: