import gdb-1999-07-07 post reformat

This commit is contained in:
Jason Molenda 1999-07-07 20:19:36 +00:00
parent 3a4b77d8be
commit c5aa993b1f
643 changed files with 69889 additions and 65773 deletions

View file

@ -1,21 +1,22 @@
/* Remote serial interface using Hitachi E7000 PC ISA card in a PC
Copyright 1994, 1999 Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
#if defined __GO32__ || defined _WIN32
#include "defs.h"
@ -57,26 +58,26 @@ static int e7000pc_set_tty_state PARAMS ((serial_t scb, serial_ttystate state));
#define OFF_READY 0x300c
#define OFF_PON 0x300e
#define IDLE 0x0000
#define CMD_CI 0x4349
#define CMD_CO 0x434f
#define CMD_LO 0x4c4f
#define CMD_LS 0x4c53
#define CMD_SV 0x5356
#define CMD_SS 0x5353
#define CMD_OK 0x4f4b
#define CMD_ER 0x4552
#define CMD_NF 0x4e46
#define CMD_AB 0x4142
#define CMD_ED 0x4544
#define CMD_CE 0x4345
#define IDLE 0x0000
#define CMD_CI 0x4349
#define CMD_CO 0x434f
#define CMD_LO 0x4c4f
#define CMD_LS 0x4c53
#define CMD_SV 0x5356
#define CMD_SS 0x5353
#define CMD_OK 0x4f4b
#define CMD_ER 0x4552
#define CMD_NF 0x4e46
#define CMD_AB 0x4142
#define CMD_ED 0x4544
#define CMD_CE 0x4345
static unsigned long fa;
static unsigned long irqtod;
static unsigned long ready;
static unsigned long fb;
static unsigned long cpd ;
static unsigned long cdp ;
static unsigned long cpd;
static unsigned long cdp;
static unsigned long ready;
static unsigned long pon;
static unsigned long irqtop;
@ -101,16 +102,31 @@ static unsigned short sb;
#define dosmemput(FROM, LEN, TO) memcpy ((void *)(TO), (void *)(FROM), (LEN))
#endif
static struct sw
static struct sw
{
int sw;
int addr;
}
sigs[] =
{
int sw;
int addr;
} sigs[] = {
{0x14, 0xd0000},
{0x15, 0xd4000},
{0x16, 0xd8000},
{0x17, 0xdc000},
0};
{
0x14, 0xd0000
}
,
{
0x15, 0xd4000
}
,
{
0x16, 0xd8000
}
,
{
0x17, 0xdc000
}
,
0
};
#ifdef _MSC_VER
/* Get the base of the data segment. This is needed to calculate the offset
@ -126,29 +142,29 @@ get_ds_base (void)
unsigned long dsbase;
__asm
{
mov dsval,ds
}
{
mov dsval, ds
}
dsbase = 0;
GetThreadSelectorEntry (GetCurrentThread(), dsval, &ldt);
GetThreadSelectorEntry (GetCurrentThread (), dsval, &ldt);
dsbase = ldt.HighWord.Bits.BaseHi << 24 | ldt.HighWord.Bits.BaseMid << 16
| ldt.BaseLow;
| ldt.BaseLow;
return dsbase;
}
#else /* !_MSC_VER */
#define get_ds_base() 0
#endif /* _MSC_VER */
#endif /* _MSC_VER */
static int
e7000pc_init ()
{
int try;
unsigned long dsbase;
dsbase = get_ds_base ();
/* Look around in memory for the board's signature */
@ -161,25 +177,25 @@ e7000pc_init ()
fb = board_at + OFF_FB;
cpd = board_at + OFF_CPD;
cdp = board_at + OFF_CDP;
ready =board_at + OFF_READY;
pon = board_at + OFF_PON;
ready = board_at + OFF_READY;
pon = board_at + OFF_PON;
irqtop = board_at + OFF_IRQTOP;
irqtod = board_at + OFF_IRQTOD;
val = GET_WORD (ready);
if (val == (0xaaa0 | sigs[try].sw))
if (val == (0xaaa0 | sigs[try].sw))
{
if (GET_WORD (pon) & 0xf)
{
SET_WORD (fa, 0);
SET_WORD (fb, 0);
SET_WORD (irqtop, 1); /* Disable interrupts from e7000 */
SET_WORD (irqtop, 1); /* Disable interrupts from e7000 */
SET_WORD (ready, 1);
printf_filtered ("\nConnected to the E7000PC at address 0x%x\n",
printf_filtered ("\nConnected to the E7000PC at address 0x%x\n",
sigs[try].addr);
return 1;
return 1;
}
error ("The E7000 PC board is working, but the E7000 is turned off.\n");
return 0;
@ -200,14 +216,14 @@ static int pbuf_index;
/* Return next byte from cdp. If no more, then return -1. */
static int
static int
e7000_get (void)
{
static char pbuf[1000];
char tmp[1000];
int x;
if (pbuf_index < pbuf_size)
if (pbuf_index < pbuf_size)
{
x = pbuf[pbuf_index++];
}
@ -219,17 +235,17 @@ e7000_get (void)
dosmemget (cdp + 8, pbuf_size + 1, tmp);
/* Tell the E7000 we've eaten */
SET_WORD (fb, 0);
SET_WORD (fb, 0);
/* Swap it around */
for (i = 0; i < pbuf_size; i++)
for (i = 0; i < pbuf_size; i++)
{
pbuf[i] = tmp[i^1];
pbuf[i] = tmp[i ^ 1];
}
pbuf_index = 0;
x = pbuf[pbuf_index++];
x = pbuf[pbuf_index++];
}
else
{
else
{
x = -1;
}
return x;
@ -255,16 +271,16 @@ dosasync_read (fd, buf, len, timeout)
then = now + timeout;
while (i < len)
{
int ch = e7000_get();
int ch = e7000_get ();
/* While there's room in the buffer, and we've already
read the stuff in, suck it over */
if (ch != -1)
read the stuff in, suck it over */
if (ch != -1)
{
buf[i++] = ch;
while (i < len && pbuf_index < pbuf_size )
while (i < len && pbuf_index < pbuf_size)
{
ch = e7000_get();
ch = e7000_get ();
if (ch == -1)
break;
buf[i++] = ch;
@ -291,26 +307,26 @@ dosasync_write (fd, buf, len)
int len;
{
int i;
char dummy[1000];
char dummy[1000];
/* Construct copy locally */
((short *)dummy)[0] = CMD_CI;
((short *)dummy)[1] = len;
((short *)dummy)[2] = 0;
((short *)dummy)[3] = 0;
for (i = 0; i < len ; i++)
((short *) dummy)[0] = CMD_CI;
((short *) dummy)[1] = len;
((short *) dummy)[2] = 0;
((short *) dummy)[3] = 0;
for (i = 0; i < len; i++)
{
dummy[(8 + i) ^ 1] = buf[i];
}
/* Wait for the card to get ready */
while (GET_WORD (fa) & 1) ;
while (GET_WORD (fa) & 1);
/* Blast onto the ISA card */
dosmemput (dummy, 8 + len + 1, cpd);
dosmemput (dummy, 8 + len + 1, cpd);
SET_WORD (fa, 1);
SET_WORD (irqtod, 1); /* Interrupt the E7000 */
SET_WORD (irqtod, 1); /* Interrupt the E7000 */
return len;
}
@ -355,18 +371,20 @@ e7000pc_readchar (scb, timeout)
{
char buf;
top:
top:
if (dosasync_read (scb->fd, &buf, 1, timeout))
{
if (buf == 0) goto top;
if (buf == 0)
goto top;
return buf;
}
else
return SERIAL_TIMEOUT;
}
struct e7000pc_ttystate {
struct e7000pc_ttystate
{
int dummy;
};