Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/winsup
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2002-07-22 18:30:30 +0400
committerChristopher Faylor <me@cgf.cx>2002-07-22 18:30:30 +0400
commit08e2551c20dbaa27fbe63e5c7afda736914f78ab (patch)
treeeb6cefcaf3b4ce9ddedeff3472359407bc478824 /winsup
parent780c42b43aa89a9f54c05c3c6b53e2c8b27b8bad (diff)
* fhandler_serial.cc: Fix formatting problems introduced by below changes.
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog23
-rw-r--r--winsup/cygwin/fhandler_serial.cc100
2 files changed, 60 insertions, 63 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 66f13c834..ad38342f5 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,17 +1,22 @@
+2002-07-22 Christopher Faylor <cgf@redhat.com>
+
+ * fhandler_serial.cc: Fix formatting problems introduced by below
+ changes.
+
2002-07-22 Jacek Trzcinski <jacek@certum.pl>
- * fhandler.h (class fhandler_serial): Add new members of
- the class - rts,dtr and method ioctl(). Variables rts and dtr
- important for Win 9x only.
- * fhandler_serial.cc (fhandler_serial::open): Add initial setting
- of dtr and rts. Important for Win 9x only.
- (fhandler_serial::ioctl): New function. Implements commands TIOCMGET,
+ * fhandler.h (class fhandler_serial): Add new members of the class -
+ rts,dtr and method ioctl(). Variables rts and dtr important for Win 9x
+ only.
+ * fhandler_serial.cc (fhandler_serial::open): Add initial setting of
+ dtr and rts. Important for Win 9x only.
+ (fhandler_serial::ioctl): New function. Implements commands TIOCMGET,
TIOCMSET and TIOCINQ.
(fhandler_serial::tcflush): Fixed found error.
- (fhandler_serial::tcsetattr): Add settings of rts and dtr. Important
+ (fhandler_serial::tcsetattr): Add settings of rts and dtr. Important
for Win 9x only.
- * termios.h: Add new defines as a support for ioctl() function
- on serial device.
+ * termios.h: Add new defines as a support for ioctl() function on
+ serial device.
2002-07-20 Christopher Faylor <cgf@redhat.com>
diff --git a/winsup/cygwin/fhandler_serial.cc b/winsup/cygwin/fhandler_serial.cc
index 648805150..0b6464178 100644
--- a/winsup/cygwin/fhandler_serial.cc
+++ b/winsup/cygwin/fhandler_serial.cc
@@ -118,7 +118,7 @@ fhandler_serial::raw_read (void *ptr, size_t ulen)
if (inq > ulen)
inq = ulen;
debug_printf ("inq %d", inq);
- if (ReadFile (get_handle(), ptr, min (inq, ulen), &n, &io_status))
+ if (ReadFile (get_handle (), ptr, min (inq, ulen), &n, &io_status))
/* Got something */;
else if (GetLastError () != ERROR_IO_PENDING)
goto err;
@@ -162,7 +162,7 @@ fhandler_serial::raw_write (const void *ptr, size_t len)
for (;;)
{
- if (WriteFile (get_handle(), ptr, len, &bytes_written, &write_status))
+ if (WriteFile (get_handle (), ptr, len, &bytes_written, &write_status))
break;
switch (GetLastError ())
@@ -181,13 +181,13 @@ fhandler_serial::raw_write (const void *ptr, size_t len)
break;
}
- ForceCloseHandle(write_status.hEvent);
+ ForceCloseHandle (write_status.hEvent);
return bytes_written;
err:
__seterrno ();
- ForceCloseHandle(write_status.hEvent);
+ ForceCloseHandle (write_status.hEvent);
return -1;
}
@@ -269,22 +269,22 @@ fhandler_serial::open (path_conv *, int flags, mode_t mode)
}
/* setting rts and dtr to known state so that ioctl() function with
- request TIOCMGET could return correct value of RTS and DTR lines.
+ request TIOCMGET could return correct value of RTS and DTR lines.
Important only for Win 9x systems */
-
- if (wincap.is_winnt() == false)
- {
- if (EscapeCommFunction (get_handle (), SETDTR) == 0)
- system_printf ("couldn't set initial state of DTR for %s, %E", get_name ());
- if (EscapeCommFunction (get_handle (), SETRTS) == 0)
- system_printf ("couldn't set initial state of RTS for %s, %E", get_name ());
-
- /* even though one of above functions fail I have to set rts and dtr
- variables to initial value. */
- rts = TIOCM_RTS;
- dtr = TIOCM_DTR;
- }
-
+
+ if (!wincap.is_winnt ())
+ {
+ if (EscapeCommFunction (get_handle (), SETDTR) == 0)
+ system_printf ("couldn't set initial state of DTR for %s, %E", get_name ());
+ if (EscapeCommFunction (get_handle (), SETRTS) == 0)
+ system_printf ("couldn't set initial state of RTS for %s, %E", get_name ());
+
+ /* even though one of above functions fail I have to set rts and dtr
+ variables to initial value. */
+ rts = TIOCM_RTS;
+ dtr = TIOCM_DTR;
+ }
+
SetCommMask (get_handle (), EV_RXCHAR);
set_open_status ();
syscall_printf ("%p = fhandler_serial::open (%s, %p, %p)",
@@ -341,7 +341,7 @@ fhandler_serial::tcflow (int action)
DWORD win32action = 0;
DCB dcb;
char xchar;
-
+
termios_printf ("action %d", action);
switch (action)
@@ -390,7 +390,7 @@ fhandler_serial::ioctl (unsigned int cmd, void *buffer)
bool result;
int modemStatus;
int request;
-
+
request = *(int *) buffer;
action = 0;
modemStatus = 0;
@@ -400,81 +400,73 @@ fhandler_serial::ioctl (unsigned int cmd, void *buffer)
{
case TIOCMGET:
if (GetCommModemStatus (get_handle (), &modemLines) == 0)
- return -1;
+ return -1;
if (modemLines & MS_CTS_ON)
- modemStatus |= TIOCM_CTS;
+ modemStatus |= TIOCM_CTS;
if (modemLines & MS_DSR_ON)
- modemStatus |= TIOCM_DSR;
+ modemStatus |= TIOCM_DSR;
if (modemLines & MS_RING_ON)
- modemStatus |= TIOCM_RI;
+ modemStatus |= TIOCM_RI;
if (modemLines & MS_RLSD_ON)
- modemStatus |= TIOCM_CD;
- if (wincap.is_winnt() == true)
- {
-
- /* here is Windows NT or Windows 2000 part */
+ modemStatus |= TIOCM_CD;
+ if (!wincap.is_winnt ())
+ modemStatus |= rts | dtr;
+ else
+ {
result = DeviceIoControl (get_handle (),
- 0x001B0078,
+ 0x001B0078,
NULL, 0, &mcr, 4, &cbReturned, 0);
- if (!result)
+ if (!result)
return -1;
- if (cbReturned != 4)
+ if (cbReturned != 4)
return -1;
- if (mcr & 2)
+ if (mcr & 2)
modemStatus |= TIOCM_RTS;
- if (mcr & 1)
+ if (mcr & 1)
modemStatus |= TIOCM_DTR;
-
- }
- else
- {
-
- /* here is Windows 9x part */
- modemStatus |= rts | dtr;
-
}
*(int *) buffer = modemStatus;
return 0;
case TIOCMSET:
if (request & TIOCM_RTS)
- {
+ {
if (EscapeCommFunction (get_handle (), SETRTS) == 0)
return -1;
- else
+ else
rts = TIOCM_RTS;
}
else
- {
+ {
if (EscapeCommFunction (get_handle (), CLRRTS) == 0)
return -1;
- else
+ else
rts = 0;
}
if (request & TIOCM_DTR)
- {
+ {
if (EscapeCommFunction (get_handle (), SETDTR) == 0)
return -1;
- else
+ else
dtr = TIOCM_DTR;
}
else
- {
+ {
if (EscapeCommFunction (get_handle (), CLRDTR) == 0)
return -1;
- else
+ else
dtr = 0;
}
return 0;
case TIOCINQ:
if (ev & CE_FRAME | ev & CE_IOE | ev & CE_OVERRUN |
- ev & CE_RXOVER | ev & CE_RXPARITY)
+ ev & CE_RXOVER | ev & CE_RXPARITY)
return -1;
*(int *) buffer = st.cbInQue;
return 0;
default:
return -1;
}
-}
+}
/* tcflush: POSIX 7.2.2.1 */
int
@@ -727,7 +719,7 @@ fhandler_serial::tcsetattr (int action, const struct termios *t)
EscapeCommFunction (get_handle (), SETDTR);
tmpDtr = TIOCM_DTR;
}
-
+
rts = tmpRts;
dtr = tmpDtr;