diff options
author | Keith Seitz <keiths@cygnus> | 1998-09-25 19:04:46 +0000 |
---|---|---|
committer | Keith Seitz <keiths@cygnus> | 1998-09-25 19:04:46 +0000 |
commit | 69da960729726894f3323027b23de8901f09e856 (patch) | |
tree | 647741a49ecff15ea195d9f316102b6618083b36 /gdb/rdi-share | |
parent | 1af37f6bde766785b703ebd52378f3109fd85483 (diff) | |
download | gdb-69da960729726894f3323027b23de8901f09e856.zip gdb-69da960729726894f3323027b23de8901f09e856.tar.gz gdb-69da960729726894f3323027b23de8901f09e856.tar.bz2 |
Merge with armelf980813:
* rdi-share/unixcomm.c: If using cygwin32, also use the SERPORT and
PARPORT defines for win32.
(Unix_MatchValidSerialDevice): For cygwin32, valid serial port names
start with "com", not "/dev/tty".
(Unix_OpenSerial): Do not use O_NONBLOCK on cygwin32.
* rdi-share/devsw.c (DevSW_Close): Free the device's state (SwitcherState)
so that the device may be reopened.
* remote-rdi.c (mywritec): Send all output through gdb's *_unfiltered
functions, ignoring non-ASCII chars, so that non-tty UI's can snarf
the output from fputs_hook.
(mywrite): Ditto.
(arm_rdi_open): Set inferior_pid.
(arm_rdi_detach): Pop the target off the target stack so that
users can attach and detach multiple times.
(arm_rdi_close): Close the opened device and reset inferior_pid, too.
Diffstat (limited to 'gdb/rdi-share')
-rw-r--r-- | gdb/rdi-share/devsw.c | 4 | ||||
-rw-r--r-- | gdb/rdi-share/unixcomm.c | 13 |
2 files changed, 14 insertions, 3 deletions
diff --git a/gdb/rdi-share/devsw.c b/gdb/rdi-share/devsw.c index 590b812..7fa142b 100644 --- a/gdb/rdi-share/devsw.c +++ b/gdb/rdi-share/devsw.c @@ -265,6 +265,10 @@ AdpErrs DevSW_Close(const DeviceDescr *device, const DevChanID type) pk = Adp_removeFromQueue(&(ds->ds_readqueue[type]))) DevSW_FreePacket(pk); + /* Free memory */ + free ((char *) device->SwitcherState); + device->SwitcherState = 0x0; + /* that's all */ return adp_ok; } diff --git a/gdb/rdi-share/unixcomm.c b/gdb/rdi-share/unixcomm.c index 7cb55e6..400d1fd 100644 --- a/gdb/rdi-share/unixcomm.c +++ b/gdb/rdi-share/unixcomm.c @@ -88,11 +88,14 @@ #define PARPORT2 "/dev/par1" #endif -#ifdef _WIN32 +#define SERIAL_PREFIX "/dev/tty" +#if defined(_WIN32) || defined (__CYGWIN32__) #define SERPORT1 "com1" #define SERPORT2 "com2" #define PARPORT1 "lpt1" #define PARPORT2 "lpt2" +#undef SERIAL_PREFIX +#define SERIAL_PREFIX "com" #endif /* @@ -121,7 +124,11 @@ extern const char *Unix_MatchValidSerialDevice(const char *name) */ /* Accept /dev/tty* where * is limited */ - if (strlen(name) == strlen(SERPORT1) && strncmp(name, "/dev/tty", 8) == 0) return name; + if (strlen(name) == strlen(SERPORT1) + && strncmp(name, SERIAL_PREFIX, strlen (SERIAL_PREFIX)) == 0) + { + return name; + } /* Accept "1" or "2" or "S" - S is equivalent to "1" */ if (strcmp(name, "1") == 0 || @@ -224,7 +231,7 @@ extern int Unix_IsSerialInUse(void) extern int Unix_OpenSerial(const char *name) { -#if defined(BSD) +#if defined(BSD) || defined(__CYGWIN32__) serpfd = open(name, O_RDWR); #else serpfd = open(name, O_RDWR | O_NONBLOCK); |