* nlm/Makefile.in: Add rule for .S.o.
authorStu Grossman <grossman@cygnus>
Mon, 29 Aug 1994 21:47:40 +0000 (21:47 +0000)
committerStu Grossman <grossman@cygnus>
Mon, 29 Aug 1994 21:47:40 +0000 (21:47 +0000)
* nlm/aio.h:  Protect from multiple inclusions.
* nlm/alpha-io.S:  Remove everything we don't need.
* nlm/{alpha-patch.c, alpha-patch.h, alpha-uart.c, alpha-uart.h}:
Remove, no longer needed.
* nlm/alpha.c:  Merge in lots of stuff from previous files.
* nlm/alpha.h:  Don't #include alpha-patch.h.  Make
breakpoint_insn extern.
* Move stuff from alpha-patch.h into here.

* config/alpha/gdbserve.mt (TDEPFILES):  Get rid of alpha-uart.o.

gdb/config/alpha/gdbserve.mt
gdb/nlm/Makefile.in
gdb/nlm/aio.h
gdb/nlm/alpha-io.S
gdb/nlm/alpha-patch.c [deleted file]
gdb/nlm/alpha-patch.h [deleted file]
gdb/nlm/alpha-uart.c [deleted file]
gdb/nlm/alpha-uart.h [deleted file]
gdb/nlm/alpha.c
gdb/nlm/alpha.h

index 59333a217accab1339ba55097d4040d72a20aaf8..295e8ad21b26aa8a891101a851e372c9e0490c10 100644 (file)
@@ -1,3 +1,3 @@
 # Target: GDBSERVE.NLM running on a little-endian Alpha
-TDEPFILES= alpha.o alpha-io.o alpha-patch.o alpha-uart.o
+TDEPFILES= alpha.o alpha-io.o alpha-patch.o
 CPU_FILE= alpha
index 517fc0f101fafbbc30ba338dbd9b13c473089088..ea765b18ca4e665b5f20deeccd20de7c83635cbc 100644 (file)
@@ -196,6 +196,9 @@ TAGFILES = $(SOURCES) ${HFILES} ${ALLPARAM} ${POSSLIBS}
 .c.o:
        ${CC_FOR_TARGET} -c ${INTERNAL_CFLAGS} $<
 
+.S.o:
+       ${CC_FOR_TARGET} -c ${INTERNAL_CFLAGS} $<
+
 all: gdbserve.nlm
 
 # Traditionally "install" depends on "all".  But it may be useful
index 37bc28f9e1ad7e316e3cdc2eb83020a3406c32e3..7b007db798c39d0077174f9f8f685bbe2a679f55 100644 (file)
@@ -1,3 +1,5 @@
+#ifndef _AIO_H_
+#define _AIO_H_
 
 /*----------------------------------------------------------------------------*
  *                                                                           *
@@ -634,3 +636,4 @@ extern      int  AIOWriteStatus           ( int   portHandle,
                                        WORD  *state
                                      );
  
+#endif /* _AIO_H_ */
index 7bb5001696cae8ab74c4f4d1dc128b0f0bd04aa1..495caace7d320a308611f5858f4f6fd197432f7f 100644 (file)
  */
 
 
-/*#include "kxalpha.h"*/
 #include "alpha-regdef.h"
 
 #define LEAF_ENTRY(NAME) .text ; .align 4 ; .globl NAME ; .ent NAME, 0 ; NAME: ; .frame sp, 0, ra ; .prologue 0 ;
 
 
-#define PICIACKADR     0xfffffc0100000000
-#define EISABAD                0xfffffc0200000000
-#define EISABIO                0xfffffc0300000000
-#define EISA_SHIFT     7
-#define EISA_BYTE_ADJ  0x80
-#define EISA_WORD_ADJ  0x100
-#define EISA_LONG_ADJ  0x200
-#define HALF_USEC      75
-#define ONE_USEC       150
-
-
 LEAF_ENTRY(flush_i_cache)
-       call_pal 0x86                   // IMB
-       ret     zero, (ra)              // return
-       .end    outportb
-
-//++
-//
-// VOID
-// { outportX
-//     ULONG port
-//     ULONG data
-//    )
-// X variants are:
-//
-//     b - byte        8 bits
-//     w - word       16 bits
-//      t - tri-byte   24 bits
-//      l - long       32 bits
-//
-// 
-// Routine Description:
-//
-//     This function uses the 64-bit super-page to write data to a port
-//     of the EISA bus for JENSEN. Only AT (ISA) cycles are supported.
-//
-// Arguments:
-//
-//    port (a0) - port address on the EISA  to which to write data
-//    data (a1) - data to write to the port.
-//              
-//
-// Return Value:
-//
-//    None.
-//
-//--
-
-
-//+
-//     outportb
-//--
-       LEAF_ENTRY(outportb)
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,3,t0                 // get byte index from address
-       insbl   a1,t0,t5                // put byte in proper position
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       ldiq    t0,EISABIO              // get EISA IO base address
-       sll     t1, 7, a0               // shift 7 for EISA 
-       bis     t0,a0,t0                // t0 = address of EISA 
-       stl     t5, 0(t0)               // write data to port
-       mb                              // guarantee write ordering
-       ret     zero, (ra)              // return
-       .end    outportb
-
-
-//+
-//     outportw
-//--
-       LEAF_ENTRY(outportw)
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,3,t0                 // get byte index from address
-       inswl   a1,t0,t5                // put byte in proper position
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       ldiq    t0,EISABIO              // get EISA IO base address
-       or      t0,0x20,t0              // t0 = ffff fc03 0000 0020 - word
-       sll     t1, 7, a0               // shift 7 for EISA 
-       bis     t0,a0,t0                // t0 = address of EISA 
-       stl     t5, 0(t0)               // write data to port
-       mb                              // guarantee write ordering
-       ret     zero, (ra)              // return
-       .end    outportw
-
-
-//+
-//     outportl
-//--
-       LEAF_ENTRY(outportl)
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       ldiq    t0,EISABIO              // get EISA IO base address
-       or      t0,0x60,t0              // t0 = ffff fc03 0000 0060 - long
-       sll     t1, 7, a0               // shift 7 for EISA 
-       bis     t0,a0,t0                // t0 = address of EISA 
-       stl     a1, 0(t0)               // write data to port
-       mb                              // guarantee write ordering
-       ret     zero, (ra)              // return
-       .end    outportl
-
-
-
-//+
-//     vgastl
-//--
-       LEAF_ENTRY(vgastl)
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       sra     a0, 3, t0               // right shift addr by 3
-       and     t0, 3, t1               // and addr with 3      
-       s8addq  t1, zero, t2            // multiply by 8
-       sll     a1, t2, t3              // left shift data
-       sll     a0, 4, t4               // left shift addr by 4
-       lda     t0,0xfc00               // t0 = 0000 0000 0000 0c00
-       ldah    t0,-1(t0)               // t0 = ffff ffff ffff 0c00
-       sll     t0,32,t0                // t0 = ffff fc00 0000 0000
-       or      t0,t4,t4                // make io address
-       stl     t3, 0(t4)               // store data
-       mb                              // guarantee write ordering
-       ret     zero, (ra)              // return
-       .end    vgastl
-
-
-
-
-//++
-//
-// ULONG
-// inportX(
-//     ULONG port
-//    )
-//
-// X variants are:
-//
-//     b - byte        8 bits
-//     w - word       16 bits
-//      t - tri-byte   24 bits
-//      l - long       32 bits
-//
-// Routine Description:
-//
-//     This function uses the 64-bit super-page to read data from an EISA
-//     port for JENSEN.
-//
-// Arguments:
-//
-//    port (a0) - EISA port number.
-//
-// Return Value:
-//
-//    data (v0) - the data read and  only the low byte is valid
-//
-//--
-
-//+
-//     inportb
-//--
-       LEAF_ENTRY(inportb)
-
-       //
-       // generate super-page address of EISA, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       ldiq    t0,EISABIO              // get EISA IO base address
-       sll     t1, 7, t2               // shift 7 for EISA 
-       bis     t0,t2,t0                // t0 = address of EISA 
-       ldl     v0, 0(t0)               // get EISA IO byte
-       and     a0,0x3,t1               // setup word shift count
-       extbl   v0,t1,v0                // put into low byte
-       ret     zero, (ra)              // return 
-       .end    inportb
-
-
-//+
-//     inportw
-//--
-       LEAF_ENTRY(inportw)
-       //
-       // generate super-page address of vti, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       ldiq    t0,EISABIO              // get EISA IO base addr
-       or      t0,0x20,t0              // t0 = ffff fc03 0000 0020 - word
-       sll     t1, 7, t2               // shift 7 for EISA 
-       bis     t0,t2,t0                // t0 = address of EISA 
-       ldl     v0, 0(t0)               // load EISA word
-       and     a0,0x3,t1               // setup shift count
-       extwl   v0,t1,v0                // put into low word
-       ret     zero, (ra)              // return 
-       .end    inportw
-
-
-
-//+
-//     inportl
-//--
-       LEAF_ENTRY(inportl)
-       //
-       // generate super-page address of vti, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       ldiq    t0,EISABIO              // get EISA IO base address
-       or      t0,0x60,t0              // t0 = ffff fc03 0000 0060
-       sll     t1, 7, t2               // shift 7 for EISA 
-       bis     t0,t2,t0                // t0 = address of EISA 
-       ldl     v0, 0(t0)               // load EISA word
-       ret     zero, (ra)              // return 
-       .end    inportl
-
-
-//+
-//     vgaldl
-//--
-       LEAF_ENTRY(vgaldl)
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       sll     a0, 4, t5               // left shift address by 4
-       lda     t0,0xfc00               // t0 = 0000 0000 0000 fc00
-       ldah    t0,-1(t0)               // t0 = ffff ffff ffff fc00
-       sll     t0,32,t0                // t0 = ffff fc00 0000 0000
-       or      t0,t5,t0                // make io address
-       ldl     t4, 0(t0)               // load data
-       sra     a0, 3, t1               // right shift addr by 3
-       and     t1, 3, t2               // and addr with 3      
-       s8addq  t2, zero, t3            // multiply by 8
-       srl     t4, t3, v0              // right shift data
-       ret     zero, (ra)              // return
-       .end    vgaldl
-
-
-
-
-//+
-//     inIack
-//--
-       
-       LEAF_ENTRY(inIack)
-       
-       //      
-       //      get Iack from pic, need two to get the vector
-       //
-       ldiq    t0,PICIACKADR
-       ldl     v0,0(t0)                // load data
-       and     v0,0xff,v0              // make it a byte
-       ret     zero, (ra)              // return
-       .end    inIack
-
-
-
-
-
-       LEAF_ENTRY(outmemb)
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,3,t0                 // get byte index from address
-       insbl   a1,t0,t5                // put byte in proper position
-
-       and     a0,0x1ffffff,t1         // 25 bit mask  
-       ldiq    t0,EISABAD              // get EISA address
-
-       sll     t1, 7, a0               // shift 7 for EISA 
-       bis     t0,a0,t0                // t0 = address of EISA 
-       stl     t5, 0(t0)               // write data to port
-       ret     zero, (ra)              // return
-
-       .end    outmemb
-
-
-
-       LEAF_ENTRY(outmemw)
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,3,t0                 // get byte index from address
-       inswl   a1,t0,t5                // put byte in proper position
-
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       
-       ldiq    t0,EISABAD              // get EISA address
-       or      t0,0x20,t0              // t0 = ffff fc02 0000 0020 - word
-
-       sll     t1, 7, a0               // shift 7 for EISA 
-       bis     t0,a0,t0                // t0 = address of EISA 
-       stl     t5, 0(t0)               // write data to port
-       ret     zero, (ra)              // return
-
-       .end    outmemw
-
-
-
-
-       LEAF_ENTRY(outmeml)
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,0x1ffffff,t1         // 25 bit mask
-
-       ldiq    t0,EISABAD              // get EISA address
-       or      t0,0x60,t0              // t0 = ffff fc02 0000 0060 - long
-
-       sll     t1, 7, a0               // shift 7 for EISA 
-       bis     t0,a0,t0                // t0 = address of EISA 
-       stl     a1, 0(t0)               // write data to port
-       ret     zero, (ra)              // return
-
-       .end    outmeml
-
-
-
-       LEAF_ENTRY(outbuffb)
-
-       /*  Arguments:
-               a0      address of destination buffer (byte aligned).
-               a1      address of source buffer in memory (byte aligned)
-                       a2      Number of bytes to move (Count).        
-       */      
-               
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       beq     a2, donewb              // leave if nothing to do
-
-       ldiq    t0,EISABAD              // get EISA address
-
-       and     a0,3,t3                 // get byte index from dst address
-
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       sll     t1,EISA_SHIFT,t4        // shift 7 for EISA
-       bis     t0,t4,t0                // t0 = address of EISA 
-
-loopwb:
-       ldq_u   t1, 0(a1)               // get src data
-       subl    a2, 1, a2               // decrement count
-       extbl   t1, a1,t1               // extract byte
-       addl    a1, 1, a1               // point ot next src address
-       insbl   t1,t3,t1                // insert byte in proper place
-       stl     t1, 0(t0)               // write data to EISA memory
-       addq    t0,EISA_BYTE_ADJ, t0    // increment EISA memory pointer
-       addl    t3,1,t3                 // increment index
-       and     t3,3,t3                 // mask off overflow
-       bne     a2, loopwb
-donewb:
-       ret     zero, (ra)              
-
-       .end    outbuffb
-
-
-
-       LEAF_ENTRY(outbuffw)
-
-       /*  Arguments:
-               a0      address of destination buffer (word aligned), eisa.
-               a1      address of source buffer in memory (word aligned)
-                       a2      Number of words to move (Count).        
-       */      
-               
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       beq     a2, doneww              // leave if nothing to do
-
-       ldiq    t0,EISABAD              // get EISA address
-       or      t0,0x20,t0              // t0 = ffff fc02 0000 0020 - word
-
-       and     a0,3,t3                 // get word index from dst address
-
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       sll     t1,EISA_SHIFT,t4        // shift 7 for EISA
-       bis     t0,t4,t0                // t0 = address of EISA 
-
-loopww:
-       ldq_u   t1, 0(a1)               // get src data
-       subl    a2, 1, a2               // decrement count
-       extwl   t1, a1,t1               // extract word
-       addl    a1, 2, a1               // point ot next src address
-       inswl   t1,t3,t1                // insert in proper place
-       stl     t1, 0(t0)               // write data to EISA memory
-       addq    t0,EISA_WORD_ADJ, t0    // increment EISA memory pointer
-       addl    t3,2,t3                 // increment index
-       and     t3,3,t3                 // mask off overflow
-       bne     a2, loopww
-doneww:
-       ret     zero, (ra)              
-
-       .end    outbuffw
-
-
-
-
-
-       LEAF_ENTRY(outbuffl)
-
-       /*  Arguments:
-               a0      address of destination buffer (long aligned), eisa.
-               a1      address of source buffer in memory (long aligned)
-                       a2      Number of longs to move (Count).        
-       */      
-               
-       //
-       // generate super-page address of EISA base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       beq     a2, donewl              // leave if nothing to do
-
-       ldiq    t0,EISABAD              // get EISA address
-       or      t0,0x60,t0              // t0 = ffff fc02 0000 0060 - long
-
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       sll     t1,EISA_SHIFT,t4        // shift 7 for EISA
-       bis     t0,t4,t0                // t0 = address of EISA 
-
-loopwl:
-       ldl     t1, 0(a1)               // get src data
-       subl    a2, 1, a2               // decrement count
-       stl     t1, 0(t0)               // write data to EISA memory
-       addl    a1, 4, a1               // point ot next src address
-       addq    t0,EISA_LONG_ADJ, t0    // increment EISA memory pointer
-       bne     a2, loopwl
-donewl:
-       ret     zero, (ra)              
-
-       .end    outbuffw
-
-
-
-       LEAF_ENTRY(inmemb)
-
-       //
-       // generate super-page address of EISA, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,0x1ffffff,t1         // 25 bit mask
-
-       ldiq    t0,EISABAD              // get EISA address
-
-       sll     t1, 7, t2               // shift 7 for EISA 
-       bis     t0,t2,t0                // t0 = address of EISA 
-       ldl     v0, 0(t0)               // get EISA byte
-
-       and     a0,0x3,t1               // setup word shift count
-       extbl   v0,t1,v0                // put into low byte
-
-       ret     zero, (ra)              // return 
-
-       .end    inmemb
-
-
-
-
-       LEAF_ENTRY(inmemw)
-
-       //
-       // generate super-page address of EISA, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,0x1ffffff,t1         // 25 bit mask
-
-       ldiq    t0,EISABAD              // get EISA base addr
-       or      t0,0x20,t0              // t0 = ffff fc02 0000 0020 - word
-
-       sll     t1, 7, t2               // shift 7 for EISA 
-       bis     t0,t2,t0                // t0 = address of EISA 
-
-       ldl     v0, 0(t0)               // get EISA short
-
-       and     a0,0x3,t1               // setup byte shift count
-       extwl   v0,t1,v0                // put into low word
-
-       ret     zero, (ra)              // return 
-
-       .end    inmemw
-
-
-
-
-       LEAF_ENTRY(inmeml)
-
-       //
-       // generate super-page address of EISA, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       and     a0,0x1ffffff,t1         // 25 bit mask
-
-       ldiq    t0,EISABAD              // get EISA base address
-       or      t0,0x60,t0              // t0 = ffff fc02 0000 0060 - long
-
-       sll     t1, 7, t2               // shift 7 for EISA 
-       bis     t0,t2,t0                // t0 = address of EISA 
-
-       ldl     v0, 0(t0)               // get EISA 4 bytes
-       ret     zero, (ra)              // return 
-
-       .end    inmeml
+       call_pal 0x86                   /* IMB */
+       ret     zero, (ra)              /* return */
+       .end    flush_i_cache
 
 
 
+/* ++
+ *
+ * VOID
+ * outVti(
+ *     ULONG Port
+ *     ULONG Data
+ *    )
+ *
+ * Routine Description:
+ *
+ *     This Function Uses The 64-Bit Super-Page To Write Data To A Port
+ *     Of The On-Board VTI Combo Chip For JENSEN.
+ *
+ * Arguments:
+ *
+ *    Port (A0) - Port Number On VTI Chip To Which To Write Data
+ *    data (a1) - data to write to the port, only low byte is significant
+ *                 To The VTI
+ *
+ * Return Value:
+ *
+ *    None.
+ *
+ */
 
-       LEAF_ENTRY(inbuffb)
+       LEAF_ENTRY(outVti)
 
        /*
-       Arguments:
-               
-       a0      source buffer in eisa bus memory.
-        a1     destination buffer in memory.
-        a2      Number of bytes to move (Count).
-       */      
-
-       //
-       // generate super-page address of EISA, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       beq     a2, donerb              // leave if nothing to do
-
-       ldiq    t0,EISABAD              // get EISA base address
-
-       and     a0,3,t3                 // get byte index from src address
-
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       sll     t1, EISA_SHIFT, t4      // shift 7 for EISA 
-       bis     t0,t4,t0                // t0 = address of EISA 
-
-looprb:
-       ldl     t1, 0(t0)               // get EISA 4 bytes
-       subl    a2, 1, a2               // decrement byte count
-       extbl   t1, t3, t1              // extract byte
-       addq    t0, EISA_BYTE_ADJ, t0   // increment EISA address
-       stb     t1, 0(a1)               // assembler preserves the memory
-                                       // behind the newly stored byte
-       addl    a1, 1, a1               // increment memory pointer
-       addl    t3, 1, t3               // point to next byte in long
-       and     t3, 3, t3               // get new index                 
-       bne     a2, looprb
-donerb:
-       ret     zero, (ra)              // return 
-
-       .end    inbuffb
-
+        * generate super-page address of vti, base address
+        * N.B. - Upper Bits Must Be Sign Extension Of Bit 42
+        *   va<42:41> = 10 (binary) for super-page address
+        */
 
+       lda     t0, 0xc01c(zero)        /* t0 = 0000 0000 0000 c01c */
+       ldah    t0, -1(t0)              /* t0 = ffff ffff ffff c01c */
+       sll     t0, 28, t0              /* t0 = ffff fc01 c000 0000 */
 
 
-       LEAF_ENTRY(inbuffw)
        /*
-       Arguments:
-               
-       a0      source buffer in eisa bus memory.
-        a1     destination buffer in memory.
-        a2      Number of words to move (Count).
-       */      
+        * Shift In The Port Number To Generate The Port Address We
+        *      wish to access
+        * N.B. - Access Width Is Always Zero = Byte Access For VTI
+        */
 
+       sll     a0, 9, a0               /* a0 << 9 */
+       bis     t0, a0, t0              /* T0 = Address Of VTI Port */
 
-       //
-       // generate super-page address of EISA, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       beq     a2, donerw              // leave if nothing to do
 
-       ldiq    t0,EISABAD              // get EISA base address
-       or      t0,0x20,t0              // t0 = ffff fc02 0000 0020 - word
-
-
-       and     a0,3,t3                 // get byte index from src address
-
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       sll     t1, EISA_SHIFT, t4      // shift 7 for EISA 
-       bis     t0,t4,t0                // t0 = address of EISA 
-
-looprw:
-       ldl     t1, 0(t0)               // get EISA 4 bytes
-       subl    a2, 1, a2               // decrement word count
-       extwl   t1, t3, t1              // extract word
-       addq    t0, EISA_WORD_ADJ, t0   // increment EISA address
-       stw     t1, 0(a1)               // store in dst memory
-       addl    a1, 2, a1               // increment memory pointer
-       addl    t3, 2, t3               // point to next word in long
-       and     t3, 3, t3               // get new index                 
-       bne     a2, looprw
-donerw:
-       ret     zero, (ra)              // return 
-
-       .end    inbuffw
-
-
-
-       LEAF_ENTRY(inbuffl)
        /*
-       Arguments:
-               
-       a0      source buffer in eisa bus memory.
-        a1     destination buffer in memory.
-        a2      Number of longs to move (Count).
-       */      
-
-       //
-       // generate super-page address of EISA, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       beq     a2, donerl              // leave if nothing to do
-
-       ldiq    t0,EISABAD              // get EISA base address
-       or      t0,0x60,t0              // t0 = ffff fc02 0000 0060 - long
-
-       and     a0,0x1ffffff,t1         // 25 bit mask
-       sll     t1, EISA_SHIFT, t4      // shift 7 for EISA 
-       bis     t0,t4,t0                // t0 = address of EISA 
-
-looprl:
-       ldl     v0, 0(t0)               // get EISA 4 bytes
-       subl    a2, 1, a2               // decrement long count
-       stl     v0, 0(a1)               // store in dst memory
-       addl    a1, 4, a1               // increment memory pointer
-       addq    t0, EISA_LONG_ADJ, t0   // increment EISA address
-       bne     a2, looprl
-donerl:
-       ret     zero, (ra)              // return 
-
-       .end    inbuffl
-
-
-
-       LEAF_ENTRY(inctl)
-
-       //
-       // generate super-page address of EISA, base address
-       // upper bits must be sign extension of bit 42
-       // va<42:41> = 10 (binary) for super-page address
-       //
-       lda     t0,0xfc01               // t0 = 0000 0000 0000 fc01
-       ldah    t0,-1(t0)               // t0 = ffff ffff ffff fc01
-       sll     t0,32,t0                // t0 = ffff fc01 0000 0000
-       bis     t0,0xe0000000,t0        // t0 = ffff fc01 e000 0000
-       
-       ldl     v0, 0(t0)               // get EISA byte
-       and     v0,0xff,v0
-
-       ret     zero, (ra)              // return 
-
-       .end    inctl
-
-
-
-
-//++
-//
-// VOID
-// outVti(
-//     ULONG port
-//     ULONG data
-//    )
-//
-// Routine Description:
-//
-//     This function uses the 64-bit super-page to write data to a port
-//     of the on-board VTI combo chip for JENSEN.
-//
-// Arguments:
-//
-//    port (a0) - port number on VTI chip to which to write data
-//    data (a1) - data to write to the port, only low byte is significant
-//                 to the VTI
-//
-// Return Value:
-//
-//    None.
-//
-//--
-
-       LEAF_ENTRY(outVti)
-
-       //
-       // generate super-page address of vti, base address
-       // N.B. - upper bits must be sign extension of bit 42
-       //   va<42:41> = 10 (binary) for super-page address
-       //
-
-       lda     t0, 0xc01c(zero)        // t0 = 0000 0000 0000 c01c
-       ldah    t0, -1(t0)              // t0 = ffff ffff ffff c01c
-       sll     t0, 28, t0              // t0 = ffff fc01 c000 0000
-
-
-       //
-       // Shift in the port number to generate the port address we
-       //      wish to access
-       // N.B. - access width is always zero = byte access for VTI
-       //
-
-       sll     a0, 9, a0               // a0 << 9
-       bis     t0, a0, t0              // t0 = address of VTI port
+        * Do The Port Write, Guarantee That Subsequent Writes (And Reads)
+        *   are ordered with respect to this write and return to caller
+        */
 
+       stl     a1, 0(t0)               /* write data to port */
+       mb                              /* guarantee write ordering */
 
-       //
-       // Do the port write, guarantee that subsequent writes (and reads)
-       //   are ordered with respect to this write and return to caller
-       //
-
-       stl     a1, 0(t0)               // write data to port
-       mb                              // guarantee write ordering
-
-       ret     zero, (ra)              // return
+       ret     zero, (ra)              /* return */
 
        .end    outVti
 
 
 
-//++
-//
-// ULONG
-// inVti(
-//     ULONG port
-//    )
-//
-// Routine Description:
-//
-//     This function uses the 64-bit super-page to read data from a port
-//     of the on-board VTI combo chip for JENSEN.
-//
-// Arguments:
-//
-//    port (a0) - port number on VTI chip to which to write data
-//
-// Return Value:
-//
-//    data (v0) - the data read from the VTI chip, only the low byte will
-//                     be valid
-//
-//--
+/*
+ *
+ * ULONG
+ * inVti(
+ *     ULONG Port
+ *    )
+ *
+ * Routine Description:
+ *
+ *     This Function Uses The 64-Bit Super-Page To Read Data From A Port
+ *     Of The On-Board VTI Combo Chip For JENSEN.
+ *
+ * Arguments:
+ *
+ *    Port (A0) - Port Number On VTI Chip To Which To Write Data
+ *
+ * Return Value:
+ *
+ *    Data (V0) - The Data Read From The VTI Chip, Only The Low Byte Will
+ *                     be valid
+ *
+ */
 
        LEAF_ENTRY(inVti)
 
-       //
-       // generate super-page address of vti, base address
-       // N.B. - upper bits must be sign extension of bit 42
-       //   va<42:41> = 10 (binary) for super-page address
-       //
+       /*
+        * generate super-page address of vti, base address
+        * N.B. - Upper Bits Must Be Sign Extension Of Bit 42
+        *   va<42:41> = 10 (binary) for super-page address
+        */
 
-       lda     t0, 0xc01c(zero)        // t0 = 0000 0000 0000 c01c
-       ldah    t0, -1(t0)              // t0 = ffff ffff ffff c01c
-       sll     t0, 28, t0              // t0 = ffff fc01 c000 0000
+       lda     t0, 0xc01c(zero)        /* t0 = 0000 0000 0000 c01c */
+       ldah    t0, -1(t0)              /* t0 = ffff ffff ffff c01c */
+       sll     t0, 28, t0              /* t0 = ffff fc01 c000 0000 */
 
 
-       //
-       // Shift in the port number to generate the port address we
-       //      wish to access
-       // N.B. - access width for VTI is always 0 = byte access
-       //
+       /*
+        * Shift In The Port Number To Generate The Port Address We
+        *      wish to access
+        * N.B. - Access Width For VTI Is Always 0 = Byte Access
+        */
 
-       sll     a0, 9, a0               // a0 << 9
-       bis     t0, a0, t0              // t0 = address of VTI port
+       sll     a0, 9, a0               /* a0 << 9 */
+       bis     t0, a0, t0              /* T0 = Address Of VTI Port */
 
 
-       //
-       // Do the super-page i/o access and return data to caller
-       //
+       /*
+        * Do The Super-Page I/O Access And Return Data To Caller
+        */
 
-       ldl     v0, 0(t0)               // read data from port
+       ldl     v0, 0(t0)               /* read data from port */
        and     v0, 0xff, v0
 
-       ret     zero, (ra)              // return 
+       ret     zero, (ra)              /* return  */
 
        .end    inVti
-
-
-
-LEAF_ENTRY(delay_us)
-       bis     zero, ONE_USEC, t1
-        rpcc    t0                     /* RCC T0, read cycle counter   */
-
-loop0:  rpcc    t2                     /* RCC T2, read cycle counter   */
-        subl    t2, t0, t2             /* check for wrapping           */
-        bge     t2, over0                      /* check, and see if negative   */
-
-       ornot   t0, zero, t4            /* calculate the offset         */
-       zap     t4, 0xf0, t4
-       cmplt   t4, t1, t2
-       beq     t2, done0
-       subl    t1, t4, t1              /* adjust the counter           */
-       and     zero, t0, t0            /* set t0 to zero               */
-
-over0:  cmplt   t2, t1, t2             /* compare these for usec timer */
-        bne     t2, loop0              /* stay in...                   */
-done0:  ret     zero, (ra)
-        .end    delay_us
-
-
-
-LEAF_ENTRY(delay_500ns)
-       bis     zero, HALF_USEC, t1
-        rpcc    t0                     /* RCC T0, read cycle counter   */
-
-loop1:         rpcc    t2                      /* RCC T2, read cycle counter   */
-        subl    t2, t0, t2             /* check for wrapping           */
-        bge     t2, over1                      /* check, and see if negative   */
-
-       ornot   t0, zero, t4            /* calculate the offset         */
-       zap     t4, 0xf0, t4
-       cmplt   t4, t1, t2
-       beq     t2, done1
-       subl    t1, t4, t1              /* adjust the counter           */
-       and     zero, t0, t0            /* set t0 to zero               */
-
-over1: cmplt   t2, t1, t2              /* compare these for usec timer */
-        bne     t2, loop1              /* stay in...                   */
-done1:  ret     zero, (ra)
-        .end    delay_500ns
-
-
-
diff --git a/gdb/nlm/alpha-patch.c b/gdb/nlm/alpha-patch.c
deleted file mode 100644 (file)
index 7128c3c..0000000
+++ /dev/null
@@ -1,243 +0,0 @@
-#include <nwtypes.h>
-#include "alpha-patch.h"
-#include <errno.h>
-#include <stdio.h>
-
-#define CONST const
-
-/* This file provides stubs and equivalent interfaces for all functions that
-   the debugger stub needs, but aren't yet implemented. */
-
-int
-AIOReadData (int portHandle, char  *buffer, LONG length, LONG *numberBytesRead)
-{
-  ULONG c;
-
-  while (1)
-    {
-      c = com_interrupt ();
-      if ((c & ~0377) == COM1)
-       break;
-    }
-
-  *buffer = c;
-  *numberBytesRead = 1;
-
-  return AIO_SUCCESS;
-}
-
-int
-AIOWriteData (int portHandle, char *buffer, LONG length,
-             LONG *numberBytesWritten)
-       
-{
-  *numberBytesWritten = length;
-
-  while (length-- > 0)
-    uart_putchar (COM1, *buffer++);
-
-  return AIO_SUCCESS;
-}
-
-int
-AIOAcquirePort (int *hardwareType, int *boardNumber, int *portNumber,
-               int *portHandle)
-{
-  return AIO_SUCCESS;
-}
-
-int
-AIOConfigurePort (int portHandle, BYTE bitRate,        BYTE dataBits, BYTE stopBits,
-                 BYTE parityMode, BYTE flowCtrlMode)
-{
-  uart_init_line (1, 9600);
-
-  return AIO_SUCCESS;
-}
-
-int
-AIOGetPortConfiguration (int portHandle, AIOPORTCONFIG *pPortConfig,
-                            AIODVRCONFIG *pDvrConfig)
-{
-  fprintf (stderr, "AIOGetPortConfiguration stubbed out\n");
-  exit (1);
-}
-
-int
-AIOReleasePort (int portHandle)
-{
-  return AIO_SUCCESS;
-}
-       
-int
-AIOSetExternalControl (int portHandle, int requestType, int requestValue)
-{
-  return AIO_SUCCESS;
-}
-
-int
-AIOGetExternalStatus (int portHandle, LONG *extStatus, LONG *chgdExtStatus)
-{
-  fprintf (stderr, "AIOGetExternalStatus stubbed out\n");
-  exit (1);
-}
-
-void
-StopBell ()
-{
-}
-
-int
-Breakpoint (int __arg)
-{
-  fprintf (stderr, "Breakpoint() stubbed out\n");
-  exit (1);
-}
-
-/*
- * strtol : convert a string to long.
- *
- * Andy Wilson, 2-Oct-89.
- */
-
-/* FIXME: It'd be nice to configure around these, but the include files are too
-   painful.  These macros should at least be more portable than hardwired hex
-   constants. */
-
-#define        ULONG_MAX       ((unsigned long)(~0L))          /* 0xFFFFFFFF */
-#define        LONG_MAX        ((long)(ULONG_MAX >> 1))        /* 0x7FFFFFFF */
-#define        LONG_MIN        ((long)(~LONG_MAX))             /* 0x80000000 */
-
-extern int errno;
-
-long
-strtol(s, ptr, base)
-     CONST char *s; char **ptr; int base;
-{
-  extern unsigned long  strtoul();
-  int minus=0;
-  unsigned long tmp;
-  CONST char *start=s, *eptr;
-
-  if (s==NULL)
-    {
-      errno = ERANGE;
-      if (!ptr)
-       *ptr = (char *)start;
-      return 0L;
-    }
-  while (isspace(*s))
-       s++;
-  if (*s == '-') {
-       s++;
-       minus = 1;
-      }
-  else if (*s == '+')
-    s++;
-
-  /*
-   * let strtoul do the hard work.
-   */
-  tmp = strtoul(s, &eptr, base);
-  if (ptr != NULL)
-    *ptr = (char *)((eptr==s) ? (char *)start : eptr);
-  if (tmp > (minus ? - (unsigned long) LONG_MIN : (unsigned long) LONG_MAX))
-    {
-      errno = ERANGE;
-      return (minus ? LONG_MIN : LONG_MAX);
-    }
-  return (minus ? (long) -tmp : (long) tmp);
-}
-
-/*
- * strtol : convert a string to long.
- *
- * Andy Wilson, 2-Oct-89.
- */
-
-#ifndef ULONG_MAX
-#define        ULONG_MAX       ((unsigned long)(~0L))          /* 0xFFFFFFFF */
-#endif
-
-extern int errno;
-
-unsigned long
-strtoul(s, ptr, base)
-     CONST char *s; char **ptr; int base;
-{
-  unsigned long total = 0;
-  unsigned digit;
-  CONST char *start=s;
-  int did_conversion=0;
-  int overflow = 0;
-  int negate = 0;
-  unsigned long maxdiv, maxrem;
-
-  if (s==NULL)
-    {
-      errno = ERANGE;
-      if (!ptr)
-       *ptr = (char *)start;
-      return 0L;
-    }
-
-  while (isspace(*s))
-    s++;
-  if (*s == '+')
-    s++;
-  else if (*s == '-')
-    s++, negate = 1;
-  if (base==0 || base==16) /*  the 'base==16' is for handling 0x */
-    {
-      int tmp;
-
-      /*
-       * try to infer base from the string
-       */
-      if (*s != '0')
-        tmp = 10;      /* doesn't start with 0 - assume decimal */
-      else if (s[1] == 'X' || s[1] == 'x')
-       tmp = 16, s += 2; /* starts with 0x or 0X - hence hex */
-      else
-       tmp = 8;        /* starts with 0 - hence octal */
-      if (base==0)
-       base = (int)tmp;
-    }
-
-  maxdiv = ULONG_MAX / base;
-  maxrem = ULONG_MAX % base;
-
-  while ((digit = *s) != '\0')
-    {
-      if (digit >= '0' && digit < ('0'+base))
-       digit -= '0';
-      else
-       if (base > 10)
-         {
-           if (digit >= 'a' && digit < ('a'+(base-10)))
-             digit = digit - 'a' + 10;
-           else if (digit >= 'A' && digit < ('A'+(base-10)))
-             digit = digit - 'A' + 10;
-           else
-             break;
-         }
-       else
-         break;
-      did_conversion = 1;
-      if (total > maxdiv
-         || (total == maxdiv && digit > maxrem))
-       overflow = 1;
-      total = (total * base) + digit;
-      s++;
-    }
-  if (overflow)
-    {
-      errno = ERANGE;
-      if (ptr != NULL)
-       *ptr = (char *)s;
-      return (ULONG_MAX);
-    }
-  if (ptr != NULL)
-    *ptr = (char *) ((did_conversion) ? (char *)s : (char *)start);
-  return negate ? -total : total;
-}
diff --git a/gdb/nlm/alpha-patch.h b/gdb/nlm/alpha-patch.h
deleted file mode 100644 (file)
index 4452f09..0000000
+++ /dev/null
@@ -1,651 +0,0 @@
-/* This contains defs for the stubs defined in alpha-patch.c.  Many of these
-   defs are ripped off of other files.  */
-
-#include "altdebug.h"          /* Get StackFrame structure */
-
-/* -=-=-= aio.h -=-=-= */
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *     NetWare 386 Developer's Asynchronous I/O (AIO) Runtime library        *
- *                                                                           *
- *     This include file defines the constants and prototypes required       *
- *     to use the AIO application interface.                                 *
- *                                                                           *
- *     (c) Copyright.  1991 Novell, Inc.   All rights reserved.              *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-typedef unsigned long DWORD;
-
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Predefined hardware types for use with the AIOAcquirePort function.     *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-#define AIO_COMX_TYPE            (1)
-#define AIO_ARTIC_TYPE           (2)
-#define AIO_WNIM_TYPE            (3)
-
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Function completion code status values.                                *
- *                                                                           *
- *    Note that all error statuses are negative values.                              *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-#define AIO_SUCCESS              (0)
-#define AIO_BAD_HANDLE           (-1)
-#define AIO_FAILURE              (-2)
-#define AIO_FUNC_NOT_SUPPORTED   (-3)
-#define AIO_INVALID_PARAMETER    (-5)
-#define AIO_PORT_NOT_AVAILABLE   (-6)
-#define AIO_QUALIFIED_SUCCESS    (-7)
-#define AIO_NO_MORE_PORTS        (-8)
-#define AIO_TYPE_NUMBER_INVALID          (-10)
-#define AIO_BOARD_NUMBER_INVALID  (-11)
-#define AIO_PORT_NUMBER_INVALID          (-12)
-#define AIO_RESOURCE_TAG_INVALID  (-13)
-#define AIO_DATA_PRESENT         (-14)
-#define AIO_BAD_REQUEST_TYPE     (-15)
-#define AIO_PORT_GONE            (-20)
-#define AIO_RTAG_INVALID         (-21)
-
-
-/* This is only for non-CLIB application */
-
-#define ASYNCIOSignature  0x4E595341   /* 'NYSA' */
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOSetExternalControl function.           *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-#define AIO_EXTERNAL_CONTROL     (1)  
-#define AIO_EXTCTRL_DTR                    (1)
-#define AIO_EXTCTRL_RTS                    (2)
-
-
-#define AIO_BREAK_CONTROL        (2)
-#define AIO_SET_BREAK_OFF          (0)
-#define AIO_SET_BREAK_ON           (1)
-
-
-#define AIO_FLOW_CONTROL         (3)
-#define AIO_SOFTWARE_FLOW_CONTROL_OFF  (0)
-#define AIO_SOFTWARE_FLOW_CONTROL_ON   (1)
-#define AIO_HARDWARE_FLOW_CONTROL_OFF  (0)
-#define AIO_HARDWARE_FLOW_CONTROL_ON   (2)
-
-
-#define AIO_FLOW_CONTROL_CHARACTERS (4)         
-
-#define AIO_SET_DEADMAN_TIMER    (5)  
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOGetExternalStatus function.            *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-#define AIO_EXTSTA_RI        (0x00000001)
-#define AIO_EXTSTA_DCD       (0x00000008)
-#define AIO_EXTSTA_DSR       (0x00000010)
-#define AIO_EXTSTA_CTS       (0x00000020)
-#define AIO_EXTSTA_BREAK      (0x00000080)
-
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOFlushBuffers function.                 *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-#define AIO_FLUSH_WRITE_BUFFER   (0x0001)
-#define AIO_FLUSH_READ_BUFFER    (0x0002)
-
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOReadStatus function.                   *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-#define AIO_RECEIVE_ACTIVE   (0)
-#define AIO_RECEIVE_FULL     (1)
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOWriteStatus function.                  *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-#define AIO_TRANSMIT_IDLE     (0)
-#define AIO_TRANSMIT_ACTIVE   (1)
-#define AIO_TRANSMIT_XOFFED   (2)
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOAcquirePort function.                  *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-#define AIO_HARDWARE_TYPE_WILDCARD  (-1)
-#define AIO_BOARD_NUMBER_WILDCARD   (-1)
-#define AIO_PORT_NUMBER_WILDCARD    (-1)
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOConfigurePort function.                *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-/* BitRate */
-                         
-#define AIO_BAUD_50      (0)
-#define AIO_BAUD_75      (1)
-#define AIO_BAUD_110     (2)
-#define AIO_BAUD_134p5   (3)
-#define AIO_BAUD_150     (4)
-#define AIO_BAUD_300     (5)
-#define AIO_BAUD_600     (6)
-#define AIO_BAUD_1200    (7)
-#define AIO_BAUD_1800    (8)
-#define AIO_BAUD_2000    (9)
-#define AIO_BAUD_2400    (10)
-#define AIO_BAUD_3600    (11)
-#define AIO_BAUD_4800    (12)
-#define AIO_BAUD_7200    (13)
-#define AIO_BAUD_9600    (14)
-#define AIO_BAUD_19200   (15)
-#define AIO_BAUD_38400   (16)
-#define AIO_BAUD_57600   (17)
-#define AIO_BAUD_115200          (18)
-                         
-/* DataBits */
-
-#define AIO_DATA_BITS_5          (0)
-#define AIO_DATA_BITS_6          (1)
-#define AIO_DATA_BITS_7          (2)
-#define AIO_DATA_BITS_8          (3)
-
-/* StopBits */
-                            
-#define AIO_STOP_BITS_1          (0)
-#define AIO_STOP_BITS_1p5 (1)
-#define AIO_STOP_BITS_2          (2)
-                           
-/* Parity */
-
-#define AIO_PARITY_NONE          (0)
-#define AIO_PARITY_ODD   (1)
-#define AIO_PARITY_EVEN          (2)
-#define AIO_PARITY_MARK          (3)
-#define AIO_PARITY_SPACE  (4)
-
-/* FlowControl */
-                                     
-#define AIO_SOFTWARE_FLOWCONTROL_OFF  (0)
-#define AIO_SOFTWARE_FLOWCONTROL_ON   (1)
-#define AIO_HARDWARE_FLOWCONTROL_OFF  (0)
-#define AIO_HARDWARE_FLOWCONTROL_ON   (2)
-
-#define AIO_DROPOUT_VALUE   (0xFF)
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with AIOPORTCAPABILITIES structure.                *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-                             
-typedef struct
-  {                          
-  WORD   returnLength;       /*  byte length of capabilities data */
-  BYTE   majorVersion;
-  BYTE   minorVersion;
-  LONG   notSupportedMask;
-  BYTE   minBitRate;         /*  minimum bit rate index supported */
-  BYTE   maxBitRate;         /*  maximum bit rate index supported */
-  BYTE   minDataBits;        /*  minimum data bits per char index supported */
-  BYTE   maxDataBits;        /*  maximum data bits per char index supported */
-  BYTE   minStopBits;        /*  minimum stop bits per char index supported */
-  BYTE   maxStopBits;        /*  maximum stop bits per char index supported */
-  BYTE   minParityMode;      /*  minimum parity mode index supported */
-  BYTE   maxParityMode;      /*  maximum parity mode index supported */
-  BYTE   minFlowCtrlMode;    /*  minimum flow control mode index supported */
-  BYTE   maxFlowCtrlMode;    /*  maximum flow control mode index supported */
-  LONG   miscCapabilities;   /*  miscellaneous capability flags */
-  LONG   minReadBufferSize;  /*  minimum length of receive buffer */
-  LONG   maxReadBufferSize;  /*  maximum length of receive buffer */
-  LONG   minWriteBufferSize; /*  minimum length of transmit buffer */
-  LONG   maxWriteBufferSize; /*  maximum length of transmit buffer */
-  WORD   minDeadmanTime;     /*  minimum deadman time (seconds) */
-  WORD   maxDeadmanTime;     /*  maximum deadman time (seconds) */
-  } AIOPORTCAPABILITIES;
-
-#define AIO_PORT_NS_MINBITRATE          (0x80000000)
-#define AIO_PORT_NS_MAXBITRATE          (0x40000000)
-#define AIO_PORT_NS_MINDATABITS                 (0x20000000)
-#define AIO_PORT_NS_MAXDATABITS                 (0x10000000)
-#define AIO_PORT_NS_MINSTOPBITS                 (0x08000000)
-#define AIO_PORT_NS_MAXSTOPBITS                 (0x04000000)
-#define AIO_PORT_NS_MINPARITYMODE       (0x02000000)
-#define AIO_PORT_NS_MAXPARITYMODE       (0x01000000)
-#define AIO_PORT_NS_MINFLOWCTRLMODE     (0x00800000)
-#define AIO_PORT_NS_MAXFLOWCTRLMODE     (0x00400000)
-#define AIO_PORT_NS_MISCCAPABILITIES    (0x00200000)
-#define AIO_PORT_NS_MINREADBUFFERSIZE   (0x00100000)
-#define AIO_PORT_NS_MAXREADBUFFERSIZE   (0x00080000)
-#define AIO_PORT_NS_MINWRITEBUFFERSIZE  (0x00040000)
-#define AIO_PORT_NS_MAXWRITEBUFFERSIZE  (0x00020000)
-#define AIO_PORT_NS_MINDEADMANTIME      (0x00010000)
-#define AIO_PORT_NS_MAXDEADMANTIME      (0x00008000) 
-
-#define AIO_PORT_CAPS_NOT_SUPPORTED (0x00007FFF)
-#define AIO_PORT_CAPS_MAJOR_VERSION  (1)
-#define AIO_PORT_CAPS_MINOR_VERSION  (0)
-
-#define AIO_CAP_OUTPUT_BREAK   (0x00000002)
-#define AIO_CAP_FLOWCTRLCHARS  (0x00000004)
-#define AIO_CAP_PROGRAMMABLE   (0x00000008)
-#define AIO_CAP_INPUT          (0x00000010)
-#define AIO_CAP_OUTPUT         (0x00000020)
-
-
-typedef struct 
-  {
-  WORD   returnLength;       /*  byte length of driver capabilities structure */
-  BYTE   byteData[2];
-  } AIODVRCAPABILITIES;
-
-#define AIO_NO_STRUCT_DATA_RETURNED   (2)
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOGetPortsRollCall function.             *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-typedef struct
-  {
-  WORD   returnLength;       /*  byte length of port info data */
-  BYTE   majorVersion;
-  BYTE   minorVersion;
-  LONG   notSupportedMask;
-  int    hardwareType;       /*  value used with AIOAcquirePort   */  
-  int    boardNumber;        /*    "                              */
-  int    portNumber;         /*    "                              */
-  WORD   availability;       /*  availability of port for acquire */
-  LONG   externalStatus;     /*  current external status value for port */
-  LONG   chgdExternalStatus; /*  changed external status value for port  */
-  } AIOPORTINFO;
-
-#define AIO_INFO_NS_HARDWARETYPE        (0x80000000)
-#define AIO_INFO_NS_BOARDNUMBER                 (0x40000000)
-#define AIO_INFO_NS_PORTNUMBER          (0x20000000)
-#define AIO_INFO_NS_AVAILABILITY        (0x10000000)
-#define AIO_INFO_NS_EXTERNALSTATUS      (0x08000000)
-#define AIO_INFO_NS_CHGDEXTERNALSTATUS  (0x04000000)
-
-#define AIO_PORT_INFO_NOT_SUPPORTED (0x03FFFFFF)
-#define AIO_PORT_INFO_MAJOR_VERSION   (1)
-#define AIO_PORT_INFO_MINOR_VERSION   (0)
-
-#define AIO_AVAILABLE_FOR_ACQUIRE   (0)
-#define AIO_ALREADY_ACQUIRED       (1)
-#define AIO_UNAVAILABLE                    (0xFF)
-
-#define AIO_INITIAL      (0)
-#define AIO_SUCCESSOR    (1)    
-
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOGetPortConfiguration function.         *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-typedef struct
-  {
-  WORD   returnLength;       /*  byte length of port configuration data */
-  BYTE   majorVersion;
-  BYTE   minorVersion;
-  LONG   notSupportedMask;
-  int    hardwareType;       /*  value used with AIOAcquirePort     */
-  int    boardNumber;        /*    "  */
-  int    portNumber;         /*    " */
-  BYTE   bitRate;            /*  Bits per second index */
-  BYTE   dataBits;           /*  Bits per character index */
-  BYTE   stopBits;           /*  Stop bits per char index */
-  BYTE   parityMode;         /*  Generated parity index */
-  BYTE   flowCtrlMode;       /*  Flow control mode */
-  BYTE   breakMode;          /*  Break control mode */
-  LONG   readSize;           /*  Receive buffer size */
-  LONG   writeSize;          /*  Transmit buffer size */
-  BYTE   transmitXon;   
-  BYTE   transmitXoff;  
-  BYTE   receiveXon;    
-  BYTE   receiveXoff;
-  WORD   externalControl;    /*  set with AIO_EXTERNAL_CONTROL */
-
-  } AIOPORTCONFIG;
-
-#define AIO_CONFIG_NS_HARDWARETYPE        (0x80000000)
-#define AIO_CONFIG_NS_BOARDNUMBER         (0x40000000)
-#define AIO_CONFIG_NS_PORTNUMBER          (0x20000000)
-#define AIO_CONFIG_NS_BITRATE             (0x10000000)
-#define AIO_CONFIG_NS_DATABITS            (0x08000000)
-#define AIO_CONFIG_NS_STOPBITS            (0x04000000)
-#define AIO_CONFIG_NS_PARITYMODE          (0x02000000)
-#define AIO_CONFIG_NS_FLOWCTRLMODE        (0x01000000)
-#define AIO_CONFIG_NS_BREAKMODE                   (0x00800000)
-#define AIO_CONFIG_NS_READSIZE            (0x00400000)
-#define AIO_CONFIG_NS_WRITESIZE                   (0x00200000)
-#define AIO_CONFIG_NS_TRANSMITXON         (0x00100000)
-#define AIO_CONFIG_NS_TRANSMITXOFF        (0x00080000)
-#define AIO_CONFIG_NS_RECEIVEXON          (0x00040000)
-#define AIO_CONFIG_NS_RECEIVEXOFF         (0x00020000)
-#define AIO_CONFIG_NS_EXTERNALCONTROL     (0x00010000)
-
-#define AIO_PORT_CONFIG_NOT_SUPPORTED (0x0007FFFF)
-#define AIO_PORT_CONFIG_MAJOR_VERSION  (1)
-#define AIO_PORT_CONFIG_MINOR_VERSION  (0)
-
-#define AIO_EXTCTRL_DTR_ENABLE         (1)
-#define AIO_EXTCTRL_DTR_DISABLE                (0)
-#define AIO_EXTCTRL_RTS_ENABLE         (2)
-#define AIO_EXTCTRL_RTS_DISABLE                (0)
-
-#define AIO_BREAK_MODE_OFF          (0)
-#define AIO_BREAK_MODE_ON           (1)
-
-typedef struct 
-  {
-  WORD   returnLength;       /*  byte length of driver config structure */
-  BYTE   byteData[2];
-  } AIODVRCONFIG;
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with the AIOGetStatistics function.                *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-typedef struct 
-  {
-  WORD   returnLength;       /*  byte length of port statistics structure */
-  BYTE   majorVersion;
-  BYTE   minorVersion;
-  LONG   notSupportedMask;
-  LONG   receiveBytes;       /*  total number of bytes received on port */
-  LONG   transmitBytes;      /*  total number of bytes transmitted from port */
-  LONG   parityErrors;       /*  number of receive parity errors  */
-  LONG   framingErrors;      /*  number of receive framing errors */
-  LONG   overrunSoftware;    /*  number of software overruns (occurrences) */
-  LONG   overrunHardware;    /*  number of hardware overruns (occurrences) */
-  } AIOPORTSTATISTICS;
-
-#define AIO_STATS_NS_RECEIVEBYTES        (0x80000000)
-#define AIO_STATS_NS_TRANSMITBYTES       (0x40000000)
-#define AIO_STATS_NS_PARITYERRORS        (0x20000000)
-#define AIO_STATS_NS_FRAMINGERRORS       (0x10000000)
-#define AIO_STATS_NS_OVERRUNSOFTWARE     (0x08000000)
-#define AIO_STATS_NS_OVERRUNHARDWARE     (0x04000000)
-
-#define AIO_PORT_STATS_NOT_SUPPORTED  (0x03FFFFFF)
-#define AIO_PORT_STATS_MAJOR_VERSION  (1)
-#define AIO_PORT_STATS_MINOR_VERSION  (0)
-
-typedef struct 
-  {
-  WORD   returnLength;       /*  byte length of driver statistics structure */
-  BYTE   byteData[2];
-  } AIODVRSTATISTICS;
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with AIOGetDriverList function.                    *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-typedef struct
-  {
-  int    hardwareType;
-  int    ports;
-  char   name[128];
-  } AIODRIVERLISTENTRY;
-
-typedef struct
-  {
-  WORD               returnLength;
-  AIODRIVERLISTENTRY  driver[1];
-  } AIODRIVERLIST;
-
-#define AIO_DRIVER_LIST_GET_FIRST   (-1)
-
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with AIOGetBoardList function.                     *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-typedef struct
-  {
-  int    boardNumber;
-  int    ports;
-  char   name[128];
-  } AIOBOARDLISTENTRY;
-
-typedef struct
-  {
-  WORD              returnLength;
-  AIOBOARDLISTENTRY  board[1];
-  } AIOBOARDLIST;
-
-#define AIO_BOARD_LIST_GET_FIRST    (-1)
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with AIOSetControlData function.                   *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-typedef struct 
-  {
-  WORD   returnLength;       /*  byte length of control data structure */
-  BYTE   byteData[2];
-  } AIOCONTROLDATA;
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definitions for use with AIOGetFirstPortInfo and AIOGetNextPortInfo     *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-typedef struct
-  {
-  int    typeMask;
-  int    boardMask;
-  int    portMask;
-  int    reserved[6];
-  } AIOPORTSEARCH;
-
-       /* reserved index values */
-
-#define SEARCH_TYPE_INDEX     0
-#define SEARCH_BOARD_INDEX    1
-#define SEARCH_PORT_INDEX     2
-
-
-/*----------------------------------------------------------------------------*
- *                                                                           *
- *    Definition of AIO functions.                                           *
- *                                                                           *
- *----------------------------------------------------------------------------*/
-
-extern int  AIOAcquirePort           ( int   *hardwareType,
-                                       int   *boardNumber,
-                                       int   *portNumber,
-                                       int   *portHandle
-                                     );
-
-extern int  AIOAcquirePortWithRTag   ( int   *hardwareType,
-                                       int   *boardNumber,       
-                                       int   *portNumber,        
-                                       int   *portHandle,        
-                                       LONG   RTag
-                                     );
-
-extern int  AIOConfigurePort         ( int   portHandle,
-                                       BYTE  bitRate,
-                                       BYTE  dataBits,
-                                       BYTE  stopBits,
-                                       BYTE  parityMode,
-                                       BYTE  flowCtrlMode
-                                     );
-       
-extern int  AIOFlushBuffers          ( int   portHandle,
-                                       WORD  flushFlag
-                                     );
-       
-extern int AIOGetBoardList( int                    hardwareType,
-                           int             boardIndex,
-                           AIOBOARDLIST   *pBoardList );
-
-extern int  AIOGetDriverList         ( int   lastHardwareType,
-                                       AIODRIVERLIST *pDriverList
-                                     );
-       
-extern int  AIOGetExternalStatus     ( int   portHandle,
-                                       LONG  *extStatus,
-                                       LONG  *chgdExtStatus
-                                     );
-
-extern int   AIOGetFirstPortInfo      ( int                hardwareType,
-                                       int                 boardNumber,    
-                                       int                 portNumber,    
-                                       AIOPORTSEARCH       *portSearchP,    
-                                       AIOPORTINFO         *portInfoP,    
-                                       AIOPORTCAPABILITIES *capabilitiesP,   
-                                       AIODVRCAPABILITIES  *dvrCapabilitiesP,
-                                       char                *NLMModuleNameP );
-
-extern int   AIOGetNextPortInfo              ( AIOPORTSEARCH       *portSearchP,       
-                                       AIOPORTINFO         *portInfoP,       
-                                       AIOPORTCAPABILITIES *capabilitiesP,   
-                                       AIODVRCAPABILITIES  *dvrCapabilitiesP,
-                                       char                *NLMModuleNameP );
-       
-extern int  AIOGetPortCapability     ( int                 portHandle,
-                                       AIOPORTCAPABILITIES *pCapabilities,
-                                       AIODVRCAPABILITIES  *pDvrCapabilities
-                                     );
-
-extern int  AIOGetPortConfiguration  ( int                 portHandle,
-                                       AIOPORTCONFIG       *pPortConfig,
-                                       AIODVRCONFIG        *pDvrConfig
-                                     );
-
-extern int  AIOGetPortStatus         ( int   portHandle,
-                                       LONG  *writeCount,
-                                       WORD  *writeState,
-                                       LONG  *readCount,
-                                       WORD  *readState,
-                                       LONG  *extStatus,
-                                       LONG  *chgdExtStatus
-                                     );
-       
-extern int  AIOGetReadBufferSize     ( int   portHandle,
-                                       LONG  *readSize
-                                     );
-       
-extern int  AIOGetPortStatistics     ( int   portHandle,
-                                       AIOPORTSTATISTICS   *pPortStatistics,
-                                       AIODVRSTATISTICS    *pDvrStatistics
-                                     );
-
-extern int   AIOGetFirstPortStatistics( int                hardwareType,
-                                       int                 boardNumber,    
-                                       int                 portNumber,    
-                                       AIOPORTSEARCH       *portSearchP,    
-                                       AIOPORTSTATISTICS   *pPortStatistics,
-                                       AIODVRSTATISTICS    *pDvrStatistics
-                                     );
-
-extern int   AIOGetNextPortStatistics ( AIOPORTSEARCH      *portSearchP,       
-                                       AIOPORTSTATISTICS   *pPortStatistics,
-                                       AIODVRSTATISTICS    *pDvrStatistics
-                                     );
-
-extern int  AIOGetWriteBufferSize    ( int   portHandle,
-                                       LONG  *writeSize
-                                     );
-       
-extern int  AIOReadData              ( int   portHandle,
-                                       char  *buffer,
-                                       LONG  length,
-                                       LONG  *numberBytesRead
-                                     );
-       
-extern int  AIOReadStatus            ( int   portHandle, 
-                                       LONG  *count,
-                                       WORD  *state
-                                     );
-       
-extern int  AIOReleasePort           ( int   portHandle );
-       
-extern int  AIOSetControlData        ( int   portHandle,
-                                       int   requestType,
-                                       AIOCONTROLDATA *requestStructValue
-                                     );
-
-extern int  AIOSetExternalControl    ( int   portHandle,
-                                       int   requestType,
-                                       int   requestValue
-                                     );
-       
-extern int  AIOSetFlowControl        ( int   portHandle,
-                                       int   flowCtrlMode
-                                     );
-       
-extern int  AIOSetFlowControlCharacters( int   portHandle,
-                                       BYTE  transmitXon,
-                                       BYTE  transmitXoff,
-                                       BYTE  receiveXon,
-                                       BYTE  receiveXoff
-                                     );
-       
-extern int  AIOSetReadBufferSize     ( int    portHandle,
-                                       LONG   bufferSize
-                                     );
-      
-extern int  AIOSetWriteBufferSize    ( int    portHandle,
-                                       LONG   bufferSize
-                                     );
-
-extern int  AIOWriteData             ( int   portHandle,
-                                       char  *buffer,
-                                       LONG  length,
-                                       LONG  *numberBytesWritten
-                                     );
-       
-extern int  AIOWriteStatus           ( int   portHandle,
-                                       LONG  *count,
-                                       WORD  *state
-                                     );
-/* -=-=-= Random stuff -=-=-=-= */
-
-#define isspace(C) (C == '\n' || C == '\r' || C == ' ' || C == '\t')
-int Breakpoint (int __arg);
-
-#define ULONG unsigned long
-
-#define COM1 0x8000
-#define COM2 0x9000
diff --git a/gdb/nlm/alpha-uart.c b/gdb/nlm/alpha-uart.c
deleted file mode 100755 (executable)
index 00c33e0..0000000
+++ /dev/null
@@ -1,179 +0,0 @@
-/*
- * Copyright (C) 1993, 1994 by
- * Digital Equipment Corporation, Maynard, Massachusetts.
- * All rights reserved.
- *
- * This software is furnished under a license and may be used and copied
- * only  in  accordance  of  the  terms  of  such  license  and with the
- * inclusion of the above copyright notice. This software or  any  other
- * copies thereof may not be provided or otherwise made available to any
- * other person.  No title to and  ownership of the  software is  hereby
- * transferred.
- *
- * The information in this software is  subject to change without notice
- * and  should  not  be  construed  as a commitment by Digital Equipment
- * Corporation.
- *
- * Digital assumes no responsibility for the use  or  reliability of its
- * software on equipment which is not supplied by Digital.
- *
- */
-
-
-
-/*$Id$*/
-
-#include "nwtypes.h"
-#include "alpha-uart.h"
-/*#include "alphansi.h"*/
-#include "alpha-patch.h"
-#include <stdio.h>
-
-ULONG com_interrupt()
-{
-  if (inVti(com1Lsr) & 1)
-    return COM1 | inVti (com1Rbr);
-
-  return 0;
-}
-
-void 
-  putcLpt(int c)
-{
-  int i, s;
-  while(!((s = inVti(lptSr)) & 0x80))
-    ;
-
-  for(i=0;i<lptDly;++i)
-    ;
-
-  outVti(lptDr,    c);
-  for(i=0;i<lptDly;++i)
-    ;
-
-  outVti(lptCr,   lptnInit|lptSTB|lptAFD);
-  for(i=0;i<lptDly;++i)
-    ;
-  outVti(lptCr,   lptnInit|lptAFD);
-  for(i=0;i<lptDly;++i)
-    ;
-
-  s = inVti(lptSr);
-}
-
-
-
-void  
-  uart_putchar(int port, char c)
-{ 
-  int lsr, thr;
-  switch(port)
-  {
-  case COM1:
-    lsr = com1Lsr;
-    thr = com1Thr;
-    break;
-  case COM2:
-    lsr = com2Lsr;
-    thr = com2Thr;
-    break;    
-#if 0
-  case LPT:
-    putcLpt(c);
-    return;
-  case VGA:
-    vga_putc(c);
-    return;
-#endif
-  default:
-    return;   
-  }
-  
-  while ((inVti(lsr) & 0x20) == 0);
-  outVti(thr,c);
-  if (c == '\n') uart_putchar(port, '\r');
-}
-
-
-
-int uart_init_line(int line, int baud)
-{
-  int i;
-  int baudconst;
-
-  switch (baud)
-    {
-    case 57600: baudconst = 2; break;
-    case 38400: baudconst = 3; break;
-    case 19200: baudconst = 6; break;
-    case 9600: baudconst = 12; break;
-    case 4800: baudconst = 24; break;
-    case 2400: baudconst = 48; break;
-    case 1200: baudconst = 96; break;
-    case 300: baudconst = 384; break;
-    case 150: baudconst = 768; break;
-    default: baudconst = 12; break;
-    }
-
-  if (line == 1)
-    { 
-      outVti(com1Lcr, 0x87);
-      outVti(com1Dlm,    0);
-      outVti(com1Dll,   baudconst);
-      outVti(com1Lcr, 0x07);
-      outVti(com1Mcr, 0x0F);
-      com1_disable_int();
-    }
-
-  else if (line == 2)
-    {
-      outVti(com2Lcr, 0x87);
-      outVti(com2Dlm,    0);
-      outVti(com2Dll,   baudconst);
-      outVti(com2Lcr, 0x07);
-      outVti(com2Mcr, 0x0F);
-    }
-  fprintf (stderr, "com1Ier = 0x%x\n", inVti(com1Ier));
-  fprintf (stderr, "com1Lcr = 0x%x\n", inVti(com1Lcr));
-  fprintf (stderr, "com1Dlm = 0x%x\n", inVti(com1Dlm));
-  fprintf (stderr, "com1Dll = 0x%x\n", inVti(com1Dll));
-  fprintf (stderr, "com1Lcr = 0x%x\n", inVti(com1Lcr));
-  fprintf (stderr, "com1Mcr = 0x%x\n", inVti(com1Mcr));
-}
-
-
-
-int  
-  uart_init()
-{ 
-  uart_init_line(1, 19200);
-}
-
-
-
-com1_enable_int()
-{
-  outVti(com1Ier, 0x01);
-}
-
-
-
-com1_disable_int()
-{
-  outVti(com1Ier, 0x0);
-}
-
-
-
-com2_enable_int()
-{
-  outVti(com2Ier, 0x01);
-}
-
-
-
-com2_disable_int()
-{
-  outVti(com2Ier, 0x0);
-}
diff --git a/gdb/nlm/alpha-uart.h b/gdb/nlm/alpha-uart.h
deleted file mode 100755 (executable)
index 77f5f05..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 1993, 1994 by
- * Digital Equipment Corporation, Maynard, Massachusetts.
- * All rights reserved.
- *
- * This software is furnished under a license and may be used and copied
- * only  in  accordance  of  the  terms  of  such  license  and with the
- * inclusion of the above copyright notice. This software or  any  other
- * copies thereof may not be provided or otherwise made available to any
- * other person.  No title to and  ownership of the  software is  hereby
- * transferred.
- *
- * The information in this software is  subject to change without notice
- * and  should  not  be  construed  as a commitment by Digital Equipment
- * Corporation.
- *
- * Digital assumes no responsibility for the use  or  reliability of its
- * software on equipment which is not supplied by Digital.
- *
- */
-
-
-#define com1Rbr        0x3f8           /* Receiver Buffer - Read       */
-#define com1Thr        0x3f8           /* Transmitter Holding - Write  */
-#define com1Ier        0x3f9           /* Interrupt Enable             */
-#define com1Iir        0x3fa           /* Interrupt Identification     */
-#define com1Lcr        0x3fb           /* Line Control                 */
-#define com1Mcr        0x3fc           /* Modem Control                */
-#define com1Lsr        0x3fd           /* Line Status                  */
-#define com1Msr        0x3fe           /* Modem Status                 */
-#define com1Scr        0x3ff           /* Scratch                      */
-#define com1Dll        0x3f8           /* Divisor Latch - lsb          */
-#define com1Dlm        0x3f9           /* Divisor Latch - msb          */
-
-#define com2Rbr        0x2f8           /* Receiver Buffer - Read       */
-#define com2Thr        0x2f8           /* Transmitter Holding - Write  */
-#define com2Ier        0x2f9           /* Interrupt Enable             */
-#define com2Iir        0x2fa           /* Interrupt Identification     */
-#define com2Lcr        0x2fb           /* Line Control                 */
-#define com2Mcr        0x2fc           /* Modem Control                */
-#define com2Lsr        0x2fd           /* Line Status                  */
-#define com2Msr        0x2fe           /* Modem Status                 */
-#define com2Scr        0x2ff           /* Scratch                      */
-#define com2Dll        0x2f8           /* Divisor Latch - lsb          */
-#define com2Dlm        0x2f9           /* Divisor Latch - msb          */
-
-#define        lptDr   0x3bc
-#define        lptSr   0x3bd
-#define        lptCr   0x3be
-
-#define        lptSTB  0x01
-#define        lptAFD  0x02
-#define        lptnInit 0x04
-#define        lptSlct 0x08
-#define        lptIrq  0x10
-#define        lptDir  0x20
-
-#define        lptDly  100000
-
index 62547cb586b4545eef47e46ac2c8501e8d0c14d1..ab6bd90149685246ac4646bf147dd8f300c4d57e 100644 (file)
@@ -1,5 +1,21 @@
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <time.h>
+#include <errno.h>
+#include <nwdfs.h>
+#include <nwconio.h>
+#include <nwadv.h>
+#include <nwdbgapi.h>
+#include <nwthread.h>
+#include <aio.h>
+
 #include "alpha.h"
 
+extern char *mem2hex (void *mem, char *buf, int count, int may_fault);
+extern char *hex2mem (char *buf, void *mem, int count, int may_fault);
+extern int computeSignal (int exceptionVector);
+
 /* Get the registers out of the frame information.  */
 
 void
@@ -150,3 +166,307 @@ do_status (ptr, frame)
 
   *ptr = '\000';
 }
+
+/* This section provides stubs and equivalent interfaces for all functions that
+   the debugger stub needs, but aren't yet implemented (such as the AIO nlm). */
+
+#include <nwtypes.h>
+#include <errno.h>
+#include <stdio.h>
+#include <aio.h>
+
+#define CONST const
+
+#define com1Rbr        0x3f8           /* Receiver Buffer - Read       */
+#define com1Thr        0x3f8           /* Transmitter Holding - Write  */
+#define com1Ier        0x3f9           /* Interrupt Enable             */
+#define com1Iir        0x3fa           /* Interrupt Identification     */
+#define com1Lcr        0x3fb           /* Line Control                 */
+#define com1Mcr        0x3fc           /* Modem Control                */
+#define com1Lsr        0x3fd           /* Line Status                  */
+#define com1Msr        0x3fe           /* Modem Status                 */
+#define com1Scr        0x3ff           /* Scratch                      */
+#define com1Dll        0x3f8           /* Divisor Latch - lsb          */
+#define com1Dlm        0x3f9           /* Divisor Latch - msb          */
+
+#define com2Rbr        0x2f8           /* Receiver Buffer - Read       */
+#define com2Thr        0x2f8           /* Transmitter Holding - Write  */
+#define com2Ier        0x2f9           /* Interrupt Enable             */
+#define com2Iir        0x2fa           /* Interrupt Identification     */
+#define com2Lcr        0x2fb           /* Line Control                 */
+#define com2Mcr        0x2fc           /* Modem Control                */
+#define com2Lsr        0x2fd           /* Line Status                  */
+#define com2Msr        0x2fe           /* Modem Status                 */
+#define com2Scr        0x2ff           /* Scratch                      */
+#define com2Dll        0x2f8           /* Divisor Latch - lsb          */
+#define com2Dlm        0x2f9           /* Divisor Latch - msb          */
+
+#define COM1 0x8000
+#define COM2 0x9000
+
+static ULONG
+uart_getchar (void)
+{
+  while ((inVti(com1Lsr) & 1) == 0);
+
+  return inVti (com1Rbr);
+}
+
+static void  
+uart_putchar (char c)
+{ 
+  while ((inVti(com1Lsr) & 0x20) == 0);
+
+  outVti (com1Thr,c);
+}
+
+static int
+uart_init (int baud)
+{
+  int i;
+  int baudconst;
+
+  baudconst = 115200 / baud;
+
+  outVti (com1Lcr, 0x87);
+  outVti (com1Dlm, 0);
+  outVti (com1Dll, baudconst);
+  outVti (com1Lcr, 0x07);
+  outVti (com1Mcr, 0x0F);
+  outVti (com1Ier, 0x0);
+}
+
+int
+AIOReadData (int portHandle, char  *buffer, LONG length, LONG *numberBytesRead)
+{
+  ULONG c;
+
+  while (1)
+    {
+      c = uart_getchar ();
+      if ((c & ~0377) == COM1)
+       break;
+    }
+
+  *buffer = c;
+  *numberBytesRead = 1;
+
+  return AIO_SUCCESS;
+}
+
+int
+AIOWriteData (int portHandle, char *buffer, LONG length,
+             LONG *numberBytesWritten)
+       
+{
+  *numberBytesWritten = length;
+
+  while (length-- > 0)
+    uart_putchar (*buffer++);
+
+  return AIO_SUCCESS;
+}
+
+int
+AIOAcquirePort (int *hardwareType, int *boardNumber, int *portNumber,
+               int *portHandle)
+{
+  return AIO_SUCCESS;
+}
+
+int
+AIOConfigurePort (int portHandle, BYTE bitRate,        BYTE dataBits, BYTE stopBits,
+                 BYTE parityMode, BYTE flowCtrlMode)
+{
+  uart_init (9600);
+
+  return AIO_SUCCESS;
+}
+
+int
+AIOGetPortConfiguration (int portHandle, AIOPORTCONFIG *pPortConfig,
+                            AIODVRCONFIG *pDvrConfig)
+{
+  fprintf (stderr, "AIOGetPortConfiguration stubbed out\n");
+  exit (1);
+}
+
+int
+AIOReleasePort (int portHandle)
+{
+  return AIO_SUCCESS;
+}
+       
+int
+AIOSetExternalControl (int portHandle, int requestType, int requestValue)
+{
+  return AIO_SUCCESS;
+}
+
+int
+AIOGetExternalStatus (int portHandle, LONG *extStatus, LONG *chgdExtStatus)
+{
+  fprintf (stderr, "AIOGetExternalStatus stubbed out\n");
+  exit (1);
+}
+
+void
+StopBell ()
+{
+}
+
+int
+Breakpoint (int __arg)
+{
+  fprintf (stderr, "Breakpoint() stubbed out\n");
+  exit (1);
+}
+
+/*
+ * strtol : convert a string to long.
+ *
+ * Andy Wilson, 2-Oct-89.
+ */
+
+/* FIXME: It'd be nice to configure around these, but the include files are too
+   painful.  These macros should at least be more portable than hardwired hex
+   constants. */
+
+#define        ULONG_MAX       ((unsigned long)(~0L))          /* 0xFFFFFFFF */
+#define        LONG_MAX        ((long)(ULONG_MAX >> 1))        /* 0x7FFFFFFF */
+#define        LONG_MIN        ((long)(~LONG_MAX))             /* 0x80000000 */
+
+extern int errno;
+
+long
+strtol(s, ptr, base)
+     CONST char *s; char **ptr; int base;
+{
+  extern unsigned long  strtoul();
+  int minus=0;
+  unsigned long tmp;
+  CONST char *start=s;
+  char *eptr;
+
+  if (s==NULL)
+    {
+      errno = ERANGE;
+      if (!ptr)
+       *ptr = (char *)start;
+      return 0L;
+    }
+  while (isspace(*s))
+       s++;
+  if (*s == '-') {
+       s++;
+       minus = 1;
+      }
+  else if (*s == '+')
+    s++;
+
+  /*
+   * let strtoul do the hard work.
+   */
+  tmp = strtoul(s, &eptr, base);
+  if (ptr != NULL)
+    *ptr = (char *)((eptr==s) ? (char *)start : eptr);
+  if (tmp > (minus ? - (unsigned long) LONG_MIN : (unsigned long) LONG_MAX))
+    {
+      errno = ERANGE;
+      return (minus ? LONG_MIN : LONG_MAX);
+    }
+  return (minus ? (long) -tmp : (long) tmp);
+}
+
+/*
+ * strtol : convert a string to long.
+ *
+ * Andy Wilson, 2-Oct-89.
+ */
+
+#ifndef ULONG_MAX
+#define        ULONG_MAX       ((unsigned long)(~0L))          /* 0xFFFFFFFF */
+#endif
+
+extern int errno;
+
+unsigned long
+strtoul(s, ptr, base)
+     CONST char *s; char **ptr; int base;
+{
+  unsigned long total = 0;
+  unsigned digit;
+  CONST char *start=s;
+  int did_conversion=0;
+  int overflow = 0;
+  int negate = 0;
+  unsigned long maxdiv, maxrem;
+
+  if (s==NULL)
+    {
+      errno = ERANGE;
+      if (!ptr)
+       *ptr = (char *)start;
+      return 0L;
+    }
+
+  while (isspace(*s))
+    s++;
+  if (*s == '+')
+    s++;
+  else if (*s == '-')
+    s++, negate = 1;
+  if (base==0 || base==16) /*  the 'base==16' is for handling 0x */
+    {
+      int tmp;
+
+      /*
+       * try to infer base from the string
+       */
+      if (*s != '0')
+        tmp = 10;      /* doesn't start with 0 - assume decimal */
+      else if (s[1] == 'X' || s[1] == 'x')
+       tmp = 16, s += 2; /* starts with 0x or 0X - hence hex */
+      else
+       tmp = 8;        /* starts with 0 - hence octal */
+      if (base==0)
+       base = (int)tmp;
+    }
+
+  maxdiv = ULONG_MAX / base;
+  maxrem = ULONG_MAX % base;
+
+  while ((digit = *s) != '\0')
+    {
+      if (digit >= '0' && digit < ('0'+base))
+       digit -= '0';
+      else
+       if (base > 10)
+         {
+           if (digit >= 'a' && digit < ('a'+(base-10)))
+             digit = digit - 'a' + 10;
+           else if (digit >= 'A' && digit < ('A'+(base-10)))
+             digit = digit - 'A' + 10;
+           else
+             break;
+         }
+       else
+         break;
+      did_conversion = 1;
+      if (total > maxdiv
+         || (total == maxdiv && digit > maxrem))
+       overflow = 1;
+      total = (total * base) + digit;
+      s++;
+    }
+  if (overflow)
+    {
+      errno = ERANGE;
+      if (ptr != NULL)
+       *ptr = (char *)s;
+      return (ULONG_MAX);
+    }
+  if (ptr != NULL)
+    *ptr = (char *) ((did_conversion) ? (char *)s : (char *)start);
+  return negate ? -total : total;
+}
index 8fc7ab17e5b1c45d19abb25502ee4884f30a7465..440faff954308b466218e052c6f08a065861992a 100644 (file)
@@ -1,5 +1,3 @@
-#include "alpha-patch.h"
-
 /* Register values.  All of these values *MUST* agree with tm.h */
 #define RA_REGNUM 26           /* Contains return address value */
 #define SP_REGNUM 30           /* Contains address of top of stack */
 #define ExceptionPC ExceptionRegs[SF_REG_PC].lo
 #define DECR_PC_AFTER_BREAK 0  /* NT's Palcode gets this right! */
 #define BREAKPOINT {0x80, 0, 0, 0} /* call_pal bpt */
-unsigned char breakpoint_insn;
+extern unsigned char breakpoint_insn[];
 #define BREAKPOINT_SIZE 4
 
 /*#define flush_i_cache() asm("call_pal 0x86")*/
 
+/* Temporary defs until DEC gets their netware includes straightened out */
+
+#include "altdebug.h"          /* Get StackFrame structure */
+
+#define isspace(C) (C == '\n' || C == '\r' || C == ' ' || C == '\t')
+int Breakpoint (int __arg);
+
+typedef unsigned long ULONG;