diff options
author | Dawn Perchik <dawn@cygnus> | 1996-09-17 10:16:30 +0000 |
---|---|---|
committer | Dawn Perchik <dawn@cygnus> | 1996-09-17 10:16:30 +0000 |
commit | 5b59224e9137e8651626f74d14134b1c5bef5ba2 (patch) | |
tree | 6b83aa134b5b661f974d7546e65c39ad68372ce9 /gdb/ser-e7kpc.c | |
parent | 3733d1095f6d398f467781d27f12a25895e10908 (diff) | |
download | gdb-5b59224e9137e8651626f74d14134b1c5bef5ba2.zip gdb-5b59224e9137e8651626f74d14134b1c5bef5ba2.tar.gz gdb-5b59224e9137e8651626f74d14134b1c5bef5ba2.tar.bz2 |
* ser-e7kpc.c: Added wingdb support for target e7000pc.
Diffstat (limited to 'gdb/ser-e7kpc.c')
-rw-r--r-- | gdb/ser-e7kpc.c | 44 |
1 files changed, 40 insertions, 4 deletions
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 = |