diff options
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/ser-e7kpc.c | 44 |
2 files changed, 49 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 4c697fd..f788276 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,12 @@ +Tue Sep 17 12:09:00 1996 Dawn Perchik <dawn@critters.cygnus.com> + + * ser-e7kpc.c: Added wingdb support for target e7000pc. + +Tue Sep 17 10:56:52 1996 James G. Smith <jsmith@cygnus.co.uk> + + * 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 <jsmith@cygnus.co.uk> * remote-mips.c (mips_load): Ensure that the PC is explicitly diff --git a/gdb/ser-e7kpc.c b/gdb/ser-e7kpc.c index 9faf7dd..abe855b 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__ +#if defined(__GO32__) || defined(__WIN32__) +#if defined(__WIN32__) +//#define KERNEL +//#define STRICT +//#include <windows.h> +/* 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 <sys/dos.h> #include "defs.h" +#endif #include "serial.h" -#include <sys/dos.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 = |