From 5b59224e9137e8651626f74d14134b1c5bef5ba2 Mon Sep 17 00:00:00 2001 From: Dawn Perchik Date: Tue, 17 Sep 1996 10:16:30 +0000 Subject: [PATCH] * ser-e7kpc.c: Added wingdb support for target e7000pc. --- gdb/ChangeLog | 9 +++++++++ gdb/ser-e7kpc.c | 46 +++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4c697fd7f1..f788276301 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +Tue Sep 17 12:09:00 1996 Dawn Perchik + + * ser-e7kpc.c: Added wingdb support for target e7000pc. + +Tue Sep 17 10:56:52 1996 James G. Smith + + * remote-mips.c (pmon_wait): CAIRO PMON does not require forced + re-entry back into debug mode. + Mon Sep 16 14:32:58 1996 James G. Smith * remote-mips.c (mips_load): Ensure that the PC is explicitly diff --git a/gdb/ser-e7kpc.c b/gdb/ser-e7kpc.c index 9faf7ddca6..abe855bd7d 100644 --- a/gdb/ser-e7kpc.c +++ b/gdb/ser-e7kpc.c @@ -18,11 +18,21 @@ along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#ifdef __GO32__ -#include "defs.h" -#include "serial.h" +#if defined(__GO32__) || defined(__WIN32__) +#if defined(__WIN32__) +//#define KERNEL +//#define STRICT +//#include +/* we define the 32-bit calls which thunk to 16-bit dll calls + */ +#include "win-e7kpc.h" +/* msvc uses strnicmp instead */ +#define strncasecmp strnicmp +#else #include - +#include "defs.h" +#endif +#include "serial.h" static int e7000pc_open PARAMS ((serial_t scb, const char *name)); @@ -78,6 +88,23 @@ static unsigned long pon; static unsigned long irqtop; static unsigned long board_at; +#ifdef __WIN32__ +// These routines are normally part of the go32 dos extender. +// We redefine them here to be calls into their Windoze equivs. +static void dosmemget(int offset, int length, void *buffer); +static void dosmemput(const void *buffer, int length, int offset); + +void dosmemget(int offset, int length, void *buffer) +{ + win_mem_get(buffer, length, offset); +} +void dosmemput(const void *buffer, int length, int offset) +{ + win_mem_put (buffer, length, offset); +} + +#endif + #define SET_BYTE(x,y) { char _buf = y;dosmemput(&_buf,1, x);} #define SET_WORD(x,y) { short _buf = y;dosmemput(&_buf,2, x);} #define GET_BYTE(x) ( dosmemget(x,1,&bb), bb) @@ -276,7 +303,13 @@ e7000pc_open (scb, name) errno = ENOENT; return -1; } - +#ifdef __WIN32__ + if (win_load_e7kpc () != 0) + { + errno = ENOENT; + return -1; + } +#endif scb->fd = e7000pc_init (); if (!scb->fd) @@ -384,6 +417,9 @@ static void e7000pc_close (scb) serial_t scb; { +#ifdef __WIN32__ + win_unload_e7kpc (); +#endif } static struct serial_ops e7000pc_ops =