Zap more a29k stragglers.
authorAndrew Cagney <cagney@redhat.com>
Fri, 31 May 2002 01:45:16 +0000 (01:45 +0000)
committerAndrew Cagney <cagney@redhat.com>
Fri, 31 May 2002 01:45:16 +0000 (01:45 +0000)
14 files changed:
gdb/29k-share/README [deleted file]
gdb/29k-share/udi/udi2go32.c [deleted file]
gdb/29k-share/udi/udiids.h [deleted file]
gdb/29k-share/udi/udip2soc.c [deleted file]
gdb/29k-share/udi/udiphcfg.h [deleted file]
gdb/29k-share/udi/udiphunix.h [deleted file]
gdb/29k-share/udi/udiproc.h [deleted file]
gdb/29k-share/udi/udipt29k.h [deleted file]
gdb/29k-share/udi/udiptcfg.h [deleted file]
gdb/29k-share/udi/udisoc.h [deleted file]
gdb/29k-share/udi/udr.c [deleted file]
gdb/29k-share/udi_soc [deleted file]
gdb/ChangeLog
gdb/remote-vx29k.c [deleted file]

diff --git a/gdb/29k-share/README b/gdb/29k-share/README
deleted file mode 100644 (file)
index 5e19715..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-The files in this directory are shared with other debuggers and
-debug interfaces that use Advanced Micro Devices' UDI (universal debug
-interface) protocol.  The protocol provides a common interface among
-debuggers, logic analyzers, emulators, and embedded systems that use
-AMD 29000 family processors.
-
-Do not change these files without coordinating with Advanced Micro
-Devices, Embedded Processor Division, 5204 E. Ben White Blvd, Austin, TX 78741.
-Maybe postmaster@cayman.amd.com can direct you to the current maintainers.
diff --git a/gdb/29k-share/udi/udi2go32.c b/gdb/29k-share/udi/udi2go32.c
deleted file mode 100644 (file)
index 63d98ae..0000000
+++ /dev/null
@@ -1,607 +0,0 @@
-/*
-
-Interface from UDI calls in 32-bit mode to go32 in 16-bit mode. 
-Communication is done through a single interrupt vector, which passes
-data through two linear buffers. 
-
-Call:
-       AH  = 0xfe
-       AL  = UDI function number
-       ECX = IN length
-       ESI = pointer to IN buffer
-       EDI = pointer to OUT buffer
-
-Return:
-       EAX = return value of UDI function
-
-Vector:
-       0x21
-
-*/
-#ifdef __GO32__
-
-#include <stdlib.h>
-#include "udiproc.h"
-#include "udisoc.h"
-
-char dfe_errmsg[500];
-
-static char in_buffer[4096];
-static char out_buffer[4096];
-static char *in_ptr;
-static char *out_ptr;
-
-#define IN_INIT()              in_ptr = in_buffer
-#define IN_VAL(t,v)            *((t *)in_ptr)++ = v
-#define IN_DATA(ptr, cnt)      memcpy(in_ptr, ptr, cnt), in_ptr += cnt
-
-#define OUT_INIT()             out_ptr = out_buffer
-#define OUT_VAL(t)             (*((t *)out_ptr)++)
-#define OUT_DATA(ptr, cnt)     memcpy(ptr, out_ptr, cnt), out_ptr += cnt
-
-static int DO_CALL(int function)
-{
-  asm("pushl %esi");
-  asm("pushl %edi");
-  asm("movb %0, %%al" : : "g" (function));
-  asm("movl _in_ptr, %ecx");
-  asm("movl $_in_buffer, %esi");
-  asm("subl %esi, %ecx");
-  asm("movl $_out_buffer, %edi");
-  asm("movb $0xfe, %ah");
-  asm("int $0x21");
-  asm("popl %edi");
-  asm("popl %esi");
-}
-
-/*----------------------------------------------------------------------*/
-
-#ifdef TEST_UDI
-int main()
-{
-  int r;
-  long p2;
-  short p1;
-  IN_INIT();
-  IN_VAL(long, 11111111);
-  IN_VAL(short, 2222);
-  IN_DATA("Hello, world\n", 17);
-
-  r = DO_CALL(42);
-
-  OUT_INIT();
-  p1 = OUT_VAL(short);
-  p2 = OUT_VAL(long);
-  printf("main: p1=%d p2=%d rv=%d\n", p1, p2, r);
-  return r;
-}
-#endif
-
-/*----------------------------------------------------------------------*/
-
-unsupported(char *s)
-{
-  printf("unsupported UDI host call %s\n", s);
-  abort();
-}
-
-UDIError UDIConnect (
-  char         *Configuration,         /* In */
-  UDISessionId *Session                /* Out */
-  )
-{
-  int r;
-  out_buffer[0] = 0; /* DJ - test */
-  IN_INIT();
-  IN_DATA(Configuration, strlen(Configuration)+1);
-  
-  r = DO_CALL(UDIConnect_c);
-
-  OUT_INIT();  
-  *Session = OUT_VAL(UDISessionId);
-  return r;
-}
-
-UDIError UDIDisconnect (
-  UDISessionId Session,                /* In */
-  UDIBool      Terminate               /* In */
-  )
-{
-  int r;
-  IN_INIT();
-  IN_VAL(UDISessionId, Session);
-  IN_VAL(UDIBool, Terminate);
-  
-  return DO_CALL(UDIDisconnect_c);
-}
-
-UDIError UDISetCurrentConnection (
-  UDISessionId Session                 /* In */
-  )
-{
-  IN_INIT();
-  IN_VAL(UDISessionId, Session);
-  
-  return DO_CALL(UDISetCurrentConnection_c);
-}
-
-UDIError UDICapabilities (
-  UDIUInt32    *TIPId,                 /* Out */
-  UDIUInt32    *TargetId,              /* Out */
-  UDIUInt32    DFEId,                  /* In */
-  UDIUInt32    DFE,                    /* In */
-  UDIUInt32    *TIP,                   /* Out */
-  UDIUInt32    *DFEIPCId,              /* Out */
-  UDIUInt32    *TIPIPCId,              /* Out */
-  char         *TIPString              /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  IN_VAL(UDIUInt32, DFEId);
-  IN_VAL(UDIUInt32, DFE);
-  r = DO_CALL(UDICapabilities_c);
-  OUT_INIT();
-  *TIPId = OUT_VAL(UDIUInt32);
-  *TargetId = OUT_VAL(UDIUInt32);
-  *TIP = OUT_VAL(UDIUInt32);
-  *DFEIPCId = OUT_VAL(UDIUInt32);
-  *TIPIPCId = OUT_VAL(UDIUInt32);
-  strcpy(TIPString, out_ptr);
-  return r;
-}
-
-UDIError UDIEnumerateTIPs (
-  UDIInt       (*UDIETCallback)        /* In */
-    ( char *Configuration )    /* In to callback() */
-  )
-{
-  UDIETCallback("montip.exe");
-}
-
-UDIError UDIGetErrorMsg (
-  UDIError     ErrorCode,              /* In */
-  UDISizeT     MsgSize,                /* In */
-  char         *Msg,                   /* Out */
-  UDISizeT     *CountDone              /* Out */
-  )
-{
-  int r;
-  if (MsgSize > 4000)
-    MsgSize = 4000;
-  IN_INIT();
-  IN_VAL(UDIError, ErrorCode);
-  IN_VAL(UDISizeT, MsgSize);
-  
-  r = DO_CALL(UDIGetErrorMsg_c);
-  
-  OUT_INIT();
-  *CountDone = OUT_VAL(UDISizeT);
-  OUT_DATA(Msg, *CountDone);
-  return r;
-}
-
-UDIError UDIGetTargetConfig (
-  UDIMemoryRange KnownMemory[],                /* Out */
-  UDIInt       *NumberOfRanges,        /* In/Out */
-  UDIUInt32    ChipVersions[],         /* Out */
-  UDIInt       *NumberOfChips          /* In/Out */
-  )
-{
-  int r, i;
-  int nr = *NumberOfRanges;
-  int nc = *NumberOfChips;
-  IN_INIT();
-  IN_VAL(UDIInt, *NumberOfRanges);
-  IN_VAL(UDIInt, *NumberOfChips);
-  r = DO_CALL(UDIGetTargetConfig_c);
-  if (r == UDIErrorIncomplete)
-    return r;
-  OUT_INIT();
-  *NumberOfRanges = OUT_VAL(UDIInt);
-  *NumberOfChips = OUT_VAL(UDIInt);
-  for (i=0; i<nr; i++)
-  {
-    KnownMemory[i].Space = OUT_VAL(short);
-    KnownMemory[i].Offset = OUT_VAL(CPUOffset);
-    KnownMemory[i].Size = OUT_VAL(CPUSizeT);
-  }
-  for (i=0; i<nc; i++)
-  {
-    ChipVersions[i] = OUT_VAL(UDIUInt32);
-  }
-  return r;
-}
-
-UDIError UDICreateProcess (
-  UDIPId       *PId                    /* Out */
-  )
-{
-  int r = DO_CALL(UDICreateProcess_c);
-
-  OUT_INIT();
-  *PId = OUT_VAL(UDIPId);
-
-  return r;
-}
-
-UDIError UDISetCurrentProcess (
-  UDIPId       PId                     /* In */
-  )
-{
-  IN_INIT();
-  IN_VAL(UDIPId, PId);
-
-  return DO_CALL(UDISetCurrentProcess_c);
-}
-
-UDIError UDIDestroyProcess (
-  UDIPId       PId                     /* In */
-  )
-{
-  IN_INIT();
-  IN_VAL(UDIPId, PId);
-
-  return DO_CALL(UDIDestroyProcess_c);
-}
-
-UDIError UDIInitializeProcess (
-  UDIMemoryRange ProcessMemory[],      /* In */
-  UDIInt       NumberOfRanges,         /* In */
-  UDIResource  EntryPoint,             /* In */
-  CPUSizeT     StackSizes[],           /* In */
-  UDIInt       NumberOfStacks,         /* In */
-  char         *ArgString              /* In */
-  )
-{
-  int i, r;
-  IN_INIT();
-  IN_VAL(UDIInt, NumberOfRanges);
-  for (i=0; i<NumberOfRanges; i++)
-  {
-    IN_VAL(short, ProcessMemory[i].Space);
-    IN_VAL(CPUOffset, ProcessMemory[i].Offset);
-    IN_VAL(CPUSizeT, ProcessMemory[i].Size);
-  }
-  IN_VAL(short, EntryPoint.Space);
-  IN_VAL(CPUOffset, EntryPoint.Offset);
-  IN_VAL(UDIInt, NumberOfStacks);
-  for (i=0; i<NumberOfStacks; i++)
-    IN_VAL(CPUSizeT, StackSizes[i]);
-  IN_DATA(ArgString, strlen(ArgString)+1);
-
-  return DO_CALL(UDIInitializeProcess_c);
-}
-
-UDIError UDIRead (
-  UDIResource  From,                   /* In */
-  UDIHostMemPtr        To,                     /* Out */
-  UDICount     Count,                  /* In */
-  UDISizeT     Size,                   /* In */
-  UDICount     *CountDone,             /* Out */
-  UDIBool      HostEndian              /* In */
-  )
-{
-  int cleft = Count, cthis, dthis;
-  int cdone = 0, r, bsize=2048/Size;
-  
-  while (cleft)
-  {
-    cthis = (cleft<bsize) ? cleft : bsize;
-    IN_INIT();
-    IN_VAL(short, From.Space);
-    IN_VAL(CPUOffset, From.Offset);
-    IN_VAL(UDICount, cthis);
-    IN_VAL(UDISizeT, Size);
-    IN_VAL(UDIBool, HostEndian);
-
-    r = DO_CALL(UDIRead_c);
-
-    OUT_INIT();
-    dthis = OUT_VAL(UDICount);
-    OUT_DATA(To, dthis*Size);
-    cdone += dthis;
-    To += dthis*Size;
-
-    if (r != UDINoError)
-    {
-      *CountDone = cdone;
-      return r;
-    }
-    cleft -= cthis;
-  }
-  *CountDone = cdone;
-  return UDINoError;
-}
-
-UDIError UDIWrite (
-  UDIHostMemPtr        From,                   /* In */
-  UDIResource  To,                     /* In */
-  UDICount     Count,                  /* In */
-  UDISizeT     Size,                   /* In */
-  UDICount     *CountDone,             /* Out */
-  UDIBool      HostEndian              /* In */
-  )
-{
-  int cleft = Count, cthis, dthis;
-  int cdone = 0, r, bsize=2048/Size;
-  
-  while (cleft)
-  {
-    cthis = (cleft<bsize) ? cleft : bsize;
-    IN_INIT();
-    IN_VAL(short, To.Space);
-    IN_VAL(CPUOffset, To.Offset);
-    IN_VAL(UDICount, cthis);
-    IN_VAL(UDISizeT, Size);
-    IN_VAL(UDIBool, HostEndian);
-    IN_DATA(From, cthis*Size);
-    From += cthis*Size;
-    
-    r = DO_CALL(UDIWrite_c);
-
-    OUT_INIT();
-    cdone += OUT_VAL(UDICount);
-
-    if (r != UDINoError)
-    {
-      *CountDone = cdone;
-      return r;
-    }
-    cleft -= cthis;
-  }
-  *CountDone = cdone;
-  return UDINoError;
-}
-
-UDIError UDICopy (
-  UDIResource  From,                   /* In */
-  UDIResource  To,                     /* In */
-  UDICount     Count,                  /* In */
-  UDISizeT     Size,                   /* In */
-  UDICount     *CountDone,             /* Out */
-  UDIBool      Direction               /* In */
-  )
-{
-  int r;
-  IN_INIT();
-  IN_VAL(short, From.Space);
-  IN_VAL(CPUOffset, From.Offset);
-  IN_VAL(short, To.Space);
-  IN_VAL(CPUOffset, To.Offset);
-  IN_VAL(UDICount, Count);
-  IN_VAL(UDISizeT, Size);
-  IN_VAL(UDIBool, Direction);
-  
-  r = DO_CALL(UDICopy_c);
-  
-  OUT_INIT();
-  *CountDone = OUT_VAL(UDICount);
-  
-  return r;
-}
-
-UDIError UDIExecute (
-  void
-  )
-{
-  return DO_CALL(UDIExecute_c);
-}
-
-UDIError UDIStep (
-  UDIUInt32    Steps,                  /* In */
-  UDIStepType   StepType,              /* In */
-  UDIRange      Range                  /* In */
-  )
-{
-  IN_INIT();
-  IN_VAL(UDIUInt32, Steps);
-  IN_VAL(UDIStepType, StepType);
-  IN_VAL(UDIRange, Range);
-  
-  return DO_CALL(UDIStep_c);
-}
-
-UDIVoid UDIStop (
-  void
-  )
-{
-  DO_CALL(UDIStop_c);
-}
-
-UDIError UDIWait (
-  UDIInt32     MaxTime,                /* In */
-  UDIPId       *PId,                   /* Out */
-  UDIUInt32    *StopReason             /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  IN_VAL(UDIInt32, MaxTime);
-  r = DO_CALL(UDIWait_c);
-  OUT_INIT();
-  *PId = OUT_VAL(UDIPId);
-  *StopReason = OUT_VAL(UDIUInt32);
-  return r;
-}
-
-UDIError UDISetBreakpoint (
-  UDIResource  Addr,                   /* In */
-  UDIInt32     PassCount,              /* In */
-  UDIBreakType Type,                   /* In */
-  UDIBreakId   *BreakId                /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  IN_VAL(short, Addr.Space);
-  IN_VAL(CPUOffset, Addr.Offset);
-  IN_VAL(UDIInt32, PassCount);
-  IN_VAL(UDIBreakType, Type);
-  
-  r = DO_CALL(UDISetBreakpoint_c);
-  
-  OUT_INIT();
-  *BreakId = OUT_VAL(UDIBreakId);
-  return r;
-}
-
-UDIError UDIQueryBreakpoint (
-  UDIBreakId   BreakId,                /* In */
-  UDIResource  *Addr,                  /* Out */
-  UDIInt32     *PassCount,             /* Out */
-  UDIBreakType *Type,                  /* Out */
-  UDIInt32     *CurrentCount           /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  IN_VAL(UDIBreakId, BreakId);
-  
-  r = DO_CALL(UDIQueryBreakpoint_c);
-  
-  OUT_INIT();
-  Addr->Space = OUT_VAL(short);
-  Addr->Offset = OUT_VAL(CPUOffset);
-  *PassCount = OUT_VAL(UDIInt32);
-  *Type = OUT_VAL(UDIBreakType);
-  *CurrentCount = OUT_VAL(UDIInt32);
-  
-  return r;
-}
-
-UDIError UDIClearBreakpoint (
-  UDIBreakId   BreakId                 /* In */
-  )
-{
-  IN_INIT();
-  IN_VAL(UDIBreakId, BreakId);
-  
-  return DO_CALL(UDIClearBreakpoint_c);
-}
-
-UDIError UDIGetStdout (
-  UDIHostMemPtr        Buf,                    /* Out */
-  UDISizeT     BufSize,                /* In */
-  UDISizeT     *CountDone              /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  if (BufSize > 4000)
-    BufSize = 4000;
-  IN_VAL(UDISizeT,BufSize);
-  r = DO_CALL(UDIGetStdout_c);
-  OUT_INIT();
-  *CountDone = OUT_VAL(UDISizeT);
-  if (*CountDone <= BufSize)
-    OUT_DATA(Buf, *CountDone);
-  return r;
-}
-
-UDIError UDIGetStderr (
-  UDIHostMemPtr        Buf,                    /* Out */
-  UDISizeT     BufSize,                /* In */
-  UDISizeT     *CountDone              /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  if (BufSize > 4000)
-    BufSize = 4000;
-  IN_VAL(UDISizeT,BufSize);
-  r = DO_CALL(UDIGetStderr_c);
-  OUT_INIT();
-  *CountDone = OUT_VAL(UDISizeT);
-  OUT_DATA(Buf, *CountDone);
-  return r;
-}
-
-UDIError UDIPutStdin (
-  UDIHostMemPtr        Buf,                    /* In */
-  UDISizeT     Count,                  /* In */
-  UDISizeT     *CountDone              /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  if (Count > 4000)
-    Count = 4000;
-  IN_VAL(UDISizeT,Count);
-  IN_DATA(Buf, Count);
-  r = DO_CALL(UDIPutStdin_c);
-  OUT_INIT();
-  *CountDone = OUT_VAL(UDISizeT);
-  return r;
-}
-
-UDIError UDIStdinMode (
-  UDIMode      *Mode                   /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  r = DO_CALL(UDIStdinMode_c);
-  OUT_INIT();
-  *Mode = OUT_VAL(UDIMode);
-  return r;
-}
-
-UDIError UDIPutTrans (
-  UDIHostMemPtr        Buf,                    /* In */
-  UDISizeT     Count,                  /* In */
-  UDISizeT     *CountDone              /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  if (Count > 4000)
-    Count = 4000;
-  IN_VAL(UDISizeT,Count);
-  IN_DATA(Buf, Count);
-  r = DO_CALL(UDIPutTrans_c);
-  OUT_INIT();
-  *CountDone = OUT_VAL(UDISizeT);
-  return r;
-}
-
-UDIError UDIGetTrans (
-  UDIHostMemPtr        Buf,                    /* Out */
-  UDISizeT     BufSize,                /* In */
-  UDISizeT     *CountDone              /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  if (BufSize > 4000)
-    BufSize = 4000;
-  IN_VAL(UDISizeT,BufSize);
-  r = DO_CALL(UDIGetTrans_c);
-  OUT_INIT();
-  *CountDone = OUT_VAL(UDISizeT);
-  OUT_DATA(Buf, *CountDone);
-  return r;
-}
-
-UDIError UDITransMode (
-  UDIMode      *Mode                   /* Out */
-  )
-{
-  int r;
-  IN_INIT();
-  r = DO_CALL(UDITransMode_c);
-  OUT_INIT();
-  *Mode = OUT_VAL(UDIMode);
-  return r;
-}
-
-#define DFEIPCIdCompany 0x0001 /* Company ID AMD */
-#define DFEIPCIdProduct 0x1    /* Product ID 0 */
-#define DFEIPCIdVersion 0x125  /* 1.2.5 */
-
-unsigned UDIGetDFEIPCId ()
-{
-    return((((UDIUInt32)DFEIPCIdCompany) << 16) |(DFEIPCIdProduct << 12) | DFEIPCIdVersion);
-}
-
-#endif /* __GO32__ */
diff --git a/gdb/29k-share/udi/udiids.h b/gdb/29k-share/udi/udiids.h
deleted file mode 100644 (file)
index 5f805e4..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/* This file contains the DFE and TIP IDs to be used by AMD products for
-   the UDICapabilities call.
-   
-   Copyright 1993 Free Software Foundation, Inc.
-   
-   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 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.  */
-
-       /* Company Codes -- AMD assigns these */
-#define UDICompanyCode_AMD 1
-
-       /* Build a UDIID given a CompanyProdCode and 3 version pieces */
-#define UDIID(CompanyProdCode, v1,v2,v3) ((((CompanyProdCode) & 0xfffff)<<12)+\
-                                 (((v1)&0xf)<<8) + (((v2)&0xf)<<4) + ((v3)&0xf)) 
-
-
-       /* Extract a CompanyProdCode or a Version from a UDIID */
-#define UDIID_CompanyProdCode(id) (((id)>>12) & 0xfffff)
-#define UDIID_Version(id) ((id)&0xfff)
-
-
-#define UDIAMDProduct(ProdCode) ((UDICompanyCode_AMD<<4) + (ProdCode&0xf))
-
-       /* AMD DFE Product Codes */
-#define UDIProductCode_Mondfe UDIAMDProduct(0)
-#define UDIProductCode_XRAY   UDIAMDProduct(1)
-#define UDIProductCode_TIPTester  UDIAMDProduct(2)
-
-       /* AMD TIP Product Codes (need not be distinct from DFE Product Codes) */
-#define UDIProductCode_Montip UDIAMDProduct(0)
-#define UDIProductCode_Isstip UDIAMDProduct(1)
-
-
-#define UDILatestVersion 0x120 /* UDI 1.2.0, can be used in DFE and TIP desired UDI params */
-
diff --git a/gdb/29k-share/udi/udip2soc.c b/gdb/29k-share/udi/udip2soc.c
deleted file mode 100644 (file)
index c8af3fe..0000000
+++ /dev/null
@@ -1,1250 +0,0 @@
-/* Copyright 1993, 1998 Free Software Foundation, Inc.
-   
-   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 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.  */
-
-static         char udip2soc_c[]="@(#)udip2soc.c       2.11  Daniel Mann";
-static  char udip2soc_c_AMD[]="@(#)udip2soc.c  2.8, AMD";
-/* 
-*       This module converts UDI Procedural calls into
-*      UDI socket messages for UNIX. 
-*      It is used by DFE client processes
-********************************************************************** HISTORY
-*/
-/* This is all unneeded on DOS machines.  */
-#ifndef __GO32__
-
-#include <stdio.h>
-#include <string.h>
-
-/* Before sys/file.h for Unixware.  */
-#include <sys/types.h>
-
-#include <sys/file.h>
-
-/* This used to say sys/fcntl.h, but the only systems I know of that
-   require that are old (pre-4.3, at least) BSD systems, which we
-   probably don't need to worry about.  */
-#include <fcntl.h>
-
-#include <sys/wait.h>
-#include <sys/time.h>
-#include <sys/resource.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <netdb.h>
-#include <signal.h>
-#include <sys/errno.h>
-#include "udiproc.h"
-#include "udisoc.h"
-
-extern int             errno;
-extern int             sys_nerr;
-extern int             udr_errno;
-extern char*           getenv();
-
-/* local type decs. and macro defs. not in a .h  file ************* MACRO/TYPE
-*/
-#define                version_c 0x121         /* DFE-IPC version id */
-#define                TRUE -1
-#define                FALSE 0
-#define                PORT_NUM 7000
-#define                MAX_SESSIONS 5          /* maximum DFE-TIP connections */
-#define                SOC_BUF_SIZE 4* 1024    /* size of socket comms buffer */
-#define                SBUF_SIZE 500           /* size of string buffer */
-#define                ERRMSG_SIZE 500         /* size of error message buffer */
-
-typedef struct connection_str          /* record of connect session */
-{
-    int                in_use;
-    char       connect_id[20];         /* connection identifier */
-    char       domain_string[20];      /* dommaing for conection */
-    char       tip_string[30];         /* TIP host name for AF_INET */
-    char       tip_exe[80];            /* TIP exe name */
-    int                dfe_sd;                 /* associated DFE socket */
-    int                tip_pid;                /* pid of TIP process */
-    struct sockaddr_in dfe_sockaddr;
-    struct sockaddr_in tip_sockaddr_in;
-    struct sockaddr    tip_sockaddr;
-} connection_t;
-
-typedef struct session_str
-{
-    int                  in_use;
-    connection_t* soc_con_p;           /* associated connection */
-    UDISessionId  tip_id;              /* associated TIP session ID */
-} session_t;
-
-/* global dec/defs. which are not in a .h   file ************* EXPORT DEC/DEFS
-*/
-UDIError       dfe_errno;
-char   dfe_errmsg[ERRMSG_SIZE];/* error string */
-
-/* local dec/defs. which are not in a .h   file *************** LOCAL DEC/DEFS
-*/
-LOCAL connection_t     soc_con[MAX_SESSIONS];  
-LOCAL session_t        session[MAX_SESSIONS];  
-LOCAL UDR      udr;
-LOCAL UDR*     udrs = &udr;            /* UDR for current session */
-LOCAL int      current;                /* int-id for current session */
-LOCAL char     sbuf[SBUF_SIZE];        /* String handler buffer */
-LOCAL char     config_file[80];        /* path/name for config file */
-
-/***************************************************************** UDI_CONNECT
-* Establish a new FDE to TIP conection. The file "./udi_soc" or
-* "/etc/udi_soc" may be examined to obtain the conection information
-* if the "Config" parameter is not a completd "line entry".
-*
-* NOTE: the Session string must not start whith white-space characters.
-* Format of string is:
-* <session>   <domain> <soc_name|host_name> <tip_exe|port> <pass to UDIconnect>
-* soc2cayman  AF_INET            cayman      7000           <not supported>
-* soc2tip     AF_UNIX   astring              tip.exe        ...
-*/
-UDIError
-UDIConnect(Config, Session)
-     char *Config;             /* in  -- identification string */
-     UDISessionId *Session;    /* out -- session ID */
-{
-    UDIInt32   service_id = UDIConnect_c;
-    int                domain;
-    int                cnt=0;
-    int                rcnt, pos, params_pos=0;
-    char       *tip_main_string;
-    char       *env_p;
-    struct hostent     *tip_info_p;
-    FILE       *fd;
-#if 0
-    FILE       *f_p;
-#endif
-    UDIUInt32  TIPIPCId;
-    UDIUInt32  DFEIPCId;
-
-#if 0 /* This is crap.  It assumes that udi_soc is executable! */
-    sprintf(sbuf, "which udi_soc");
-    f_p = popen(sbuf, "r");
-    if(f_p)
-    {   while( (sbuf[cnt++]=getc(f_p)) != EOF);
-       sbuf[cnt-2]=0;
-    }
-    pclose(f_p);
-#endif
-
-    for (rcnt=0;
-        rcnt < MAX_SESSIONS && session[rcnt].in_use;
-        rcnt++);
-
-    if (rcnt >= MAX_SESSIONS)
-      {
-       sprintf(dfe_errmsg, "DFE-ipc ERROR: Too many sessions already open");
-       return UDIErrorIPCLimitation;
-      }
-
-    /* One connection can be multiplexed between several sessions. */
-
-    for (cnt=0;
-        cnt < MAX_SESSIONS && soc_con[cnt].in_use;
-        cnt++);
-
-    if (cnt >= MAX_SESSIONS)
-      {
-        sprintf(dfe_errmsg,
-               "DFE-ipc ERROR: Too many connections already open");
-        return UDIErrorIPCLimitation;
-      }
-
-    *Session = rcnt;
-    session[rcnt].soc_con_p = &soc_con[cnt];
-
-    if (strchr(Config, ' '))           /* test if file entry given */
-      {
-        soc_con[cnt].in_use = TRUE;
-        sscanf(Config, "%s %s %s %s %n",
-              soc_con[cnt].connect_id,
-              soc_con[cnt].domain_string,
-              soc_con[cnt].tip_string,
-              soc_con[cnt].tip_exe,
-              &params_pos);
-       tip_main_string = Config + params_pos;
-      }
-    else                               /* here if need to read udi_soc file */
-      {
-       strcpy(config_file, "udi_soc");
-       env_p = getenv("UDICONF");
-       if (env_p)
-         strcpy(config_file, env_p);
-
-       fd = fopen(config_file, "r");
-
-       if (!fd)
-         {
-           sprintf(dfe_errmsg, "UDIConnect, can't open udi_soc file:\n%s ",
-                   strerror(errno));
-           dfe_errno = UDIErrorCantOpenConfigFile;
-           goto tip_failure;
-         }
-
-       while (1)
-         {
-           if (fscanf(fd, "%s %s %s %s %[^\n]\n",
-                      soc_con[cnt].connect_id,
-                      soc_con[cnt].domain_string,
-                      soc_con[cnt].tip_string,
-                      soc_con[cnt].tip_exe,
-                      sbuf) == EOF)
-             break;
-
-           if (strcmp(Config, soc_con[cnt].connect_id) != 0)
-             continue;
-
-           soc_con[cnt].in_use = TRUE; /* here if entry found */
-
-           tip_main_string = sbuf;
-           break;
-         }
-
-       fclose(fd);
-       if (!soc_con[cnt].in_use)
-         {
-           sprintf(dfe_errmsg,
-                   "UDIConnect, can't find `%s' entry in udi_soc file",
-                   Config);
-           dfe_errno = UDIErrorNoSuchConfiguration;
-           goto tip_failure;
-         }
-      }
-/*----------------------------------------------------------- SELECT DOMAIN */
-    if (strcmp(soc_con[cnt].domain_string, "AF_UNIX") == 0)
-      domain = AF_UNIX;
-    else if (strcmp(soc_con[cnt].domain_string, "AF_INET") == 0)
-      domain = AF_INET;
-    else
-      {
-       sprintf(dfe_errmsg, "DFE-ipc ERROR: socket address family not known");
-       dfe_errno = UDIErrorBadConfigFileEntry;
-       goto tip_failure;
-      }
-
-/*---------------------------------------------------- MULTIPLEXED SOCKET ? */
-/* If the requested session requires communication with
-   a TIP which already has a socket connection established,
-   then we do not create a new socket but multiplex the
-   existing one. A TIP is said to use the same socket if
-   socket-name/host-name and the domain are the same.
- */
-    for (rcnt=0; rcnt < MAX_SESSIONS; rcnt++)
-      {
-       if (soc_con[rcnt].in_use
-           && rcnt != cnt
-           && strcmp(soc_con[cnt].domain_string,
-                     soc_con[rcnt].domain_string) == 0
-           && strcmp(soc_con[cnt].tip_string,
-                     soc_con[rcnt].tip_string) == 0)
-         {
-           session[*Session].soc_con_p = &soc_con[rcnt];
-           soc_con[cnt].in_use = FALSE;        /* don't need new connect */
-           goto tip_connect; 
-       }
-      }
-/*------------------------------------------------------------------ SOCKET */
-    soc_con[cnt].dfe_sd = socket(domain, SOCK_STREAM, 0);
-    if (soc_con[cnt].dfe_sd == -1)
-      {
-       sprintf(dfe_errmsg, "DFE-ipc ERROR, socket() call failed %s ",
-               strerror (errno));
-       dfe_errno = UDIErrorUnknownError;
-       goto tip_failure;
-      }
-
-/*--------------------------------------------------------- AF_UNIX CONNECT */
-    if (domain == AF_UNIX)
-      {
-       if (strcmp(soc_con[cnt].tip_string, "*") == 0)
-         {
-           for (pos = 0; pos < 20; pos++)
-             {
-               int f;
-
-               sprintf(soc_con[cnt].tip_string,"/tmp/U%d", getpid() + pos);
-               f = open(soc_con[cnt].tip_string, O_CREAT);
-               if (f == -1)
-                 continue;
-
-               close(f);
-               unlink(soc_con[cnt].tip_string);
-               break;
-             }
-
-           if (pos >= 20)
-             {
-               sprintf(dfe_errmsg,
-                       "DFE-ipc ERROR, can't create random socket name");
-               dfe_errno = UDIErrorCantConnect;
-               goto tip_failure;
-             }
-         }
-
-        soc_con[cnt].tip_sockaddr.sa_family = domain;
-        memcpy(soc_con[cnt].tip_sockaddr.sa_data,
-             soc_con[cnt].tip_string,
-             sizeof(soc_con[cnt].tip_sockaddr.sa_data));
-       if (connect(soc_con[cnt].dfe_sd,
-                   &soc_con[cnt].tip_sockaddr,
-                   sizeof(soc_con[cnt].tip_sockaddr)))
-         { /* if connect() fails assume TIP not yet started */
-/*------------------------------------------------------------ AF_UNIX EXEC */
-           int pid;
-           int statusp;
-           char *arg0;
-
-           arg0 = strrchr(soc_con[cnt].tip_exe,'/');
-
-           if (arg0)
-             arg0++;
-           else
-             arg0 = soc_con[cnt].tip_exe;
-    
-           pid = vfork();
-
-           if (pid == 0)       /* Child */
-             {
-               execlp(soc_con[cnt].tip_exe,
-                      arg0,
-                      soc_con[cnt].domain_string,
-                      soc_con[cnt].tip_string,
-                      NULL);
-               _exit(1);
-             }
-
-            if (waitpid(pid, &statusp, WNOHANG))
-             {
-               sprintf(dfe_errmsg, "DFE-ipc ERROR: can't exec the TIP");
-               dfe_errno = UDIErrorCantStartTIP;
-               goto tip_failure;
-             }
-
-           pos = 3;
-           for (pos = 3; pos > 0; pos--)
-             {
-               if (!connect(soc_con[cnt].dfe_sd, 
-                            &soc_con[cnt].tip_sockaddr,
-                            sizeof(soc_con[cnt].tip_sockaddr)))
-                 break;
-               sleep(1);
-             }
-
-           if (pos == 0)
-             {
-               sprintf(dfe_errmsg, "DFE-ipc ERROR, connect() call failed: %s",
-                       strerror (errno));
-               dfe_errno = UDIErrorCantConnect;
-               goto tip_failure;
-             }
-         }
-      }
-/*--------------------------------------------------------- AF_INET CONNECT */
-    else if (domain == AF_INET)
-      {
-       fprintf(stderr,
-               "DFE-ipc WARNING, need to have first started remote TIP");
-
-       soc_con[cnt].tip_sockaddr_in.sin_family = domain;
-       soc_con[cnt].tip_sockaddr_in.sin_addr.s_addr =
-           inet_addr(soc_con[cnt].tip_string);
-       if (soc_con[cnt].tip_sockaddr_in.sin_addr.s_addr == -1)
-         {
-           tip_info_p = gethostbyname(soc_con[cnt].tip_string);
-           if (tip_info_p == NULL)
-             {
-               sprintf(dfe_errmsg,"DFE-ipc ERROR, No such host %s",
-                       soc_con[cnt].tip_string);
-               dfe_errno = UDIErrorNoSuchConnection;
-               goto tip_failure;
-             }
-           memcpy((char *)&soc_con[cnt].tip_sockaddr_in.sin_addr,
-                 tip_info_p->h_addr,
-                 tip_info_p->h_length);
-         }
-       soc_con[cnt].tip_sockaddr_in.sin_port
-         = htons(atoi(soc_con[cnt].tip_exe));
-
-       if (connect(soc_con[cnt].dfe_sd,
-                   (struct sockaddr *) &soc_con[cnt].tip_sockaddr_in,
-                   sizeof(soc_con[cnt].tip_sockaddr_in)))
-         {
-           sprintf(dfe_errmsg, "DFE-ipc ERROR, connect() call failed %s ",
-                   strerror (errno));
-           dfe_errno = UDIErrorCantConnect;
-           goto tip_failure;
-         }
-      }
-/*------------------------------------------------------------- TIP CONNECT */
-    if (cnt == 0) udr_create(udrs, soc_con[cnt].dfe_sd, SOC_BUF_SIZE);
-
-tip_connect:
-    current = cnt;
-    session[*Session].in_use = TRUE;   /* session id is now in use */
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-
-    DFEIPCId = (company_c << 16) + (product_c << 12) + version_c;
-    udr_UDIUInt32(udrs, &DFEIPCId);
-
-    udr_string(udrs, tip_main_string);
-
-    udr_sendnow(udrs);
-
-    udrs->udr_op = UDR_DECODE;         /* recv all "out" parameters */
-    udr_UDIUInt32(udrs, &TIPIPCId);
-    if ((TIPIPCId & 0xfff) < version_c)
-      sprintf(dfe_errmsg, "DFE-ipc: Obsolete TIP Specified");
-
-    udr_UDIInt32(udrs, &soc_con[cnt].tip_pid);
-
-    udr_UDISessionId(udrs, &session[*Session].tip_id);
-
-    udr_UDIError(udrs, &dfe_errno);
-    if (dfe_errno > 0) UDIKill(*Session, 0);
-
-    return dfe_errno;
-
-tip_failure:
-
-    soc_con[cnt].in_use = FALSE;
-    session[*Session].in_use = FALSE;
-/* XXX - Should also close dfe_sd, but not sure what to do if muxed */
-    return dfe_errno;
-}
-
-/************************************************************** UDI_Disconnect
-* UDIDisconnect() should be called before exiting the
-* DFE to ensure proper shut down of the TIP.
-*/
-UDIError UDIDisconnect(Session,  Terminate)
-UDISessionId   Session;
-UDIBool                Terminate;
-{
-    int        cnt;
-    UDIInt32   service_id = UDIDisconnect_c;
-    if(Session < 0 || Session > MAX_SESSIONS)
-    {
-       sprintf(dfe_errmsg," SessionId not valid (%d)", Session);
-       return UDIErrorNoSuchConfiguration;
-    }
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDISessionId(udrs, &session[Session].tip_id);
-    udr_UDIBool(udrs, &Terminate);
-    udr_sendnow(udrs);
-
-    session[Session].in_use = FALSE;   /* session id is now free */
-    for (cnt=0; cnt < MAX_SESSIONS; cnt++)
-        if(session[cnt].in_use
-       && session[cnt].soc_con_p == session[Session].soc_con_p
-               ) break;
-    if(cnt >= MAX_SESSIONS)    /* test if socket not multiplexed */
-        if(shutdown(session[Session].soc_con_p->dfe_sd, 2))
-        {
-           sprintf(dfe_errmsg, "DFE-ipc WARNING: socket shutdown failed");
-           return UDIErrorIPCInternal;
-        }
-       else
-         session[Session].soc_con_p->in_use = 0;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/******************************************************************** UDI_KILL
-* UDIKill() is used to send a signal to the TIP.
-* This is a private IPC call.
-*/
-UDIError UDIKill(Session,  Signal)
-UDISessionId   Session;
-UDIInt32       Signal;
-{
-    int        cnt;
-    UDIInt32   service_id = UDIKill_c;
-    if(Session < 0 || Session > MAX_SESSIONS)
-    {
-       sprintf(dfe_errmsg," SessionId not valid (%d)", Session);
-       return UDIErrorNoSuchConfiguration;
-    }
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDISessionId(udrs, &session[Session].tip_id);
-    udr_UDIInt32(udrs, &Signal);
-    udr_sendnow(udrs);
-
-    session[Session].in_use = FALSE;   /* session id is now free */
-    for (cnt=0; cnt < MAX_SESSIONS; cnt++)
-        if(session[cnt].in_use
-       && session[cnt].soc_con_p == session[Session].soc_con_p
-               ) break;
-    if(cnt < MAX_SESSIONS)     /* test if socket not multiplexed */
-        if(shutdown(session[Session].soc_con_p->dfe_sd, 2))
-        {
-           sprintf(dfe_errmsg, "DFE-ipc WARNING: socket shutdown failed");
-           return UDIErrorIPCInternal;
-        }
-       else
-         session[Session].soc_con_p->in_use = 0;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/************************************************** UDI_Set_Current_Connection
-* If you are connected to multiple TIPs, you can change
-* TIPs using UDISetCurrentConnection().
-*/
-UDIError UDISetCurrentConnection(Session)
-UDISessionId   Session;
-{
-    UDIInt32   service_id = UDISetCurrentConnection_c;
-
-    if(Session < 0 || Session > MAX_SESSIONS)
-       return UDIErrorNoSuchConfiguration;
-    if(!session[Session].in_use)               /* test if not in use yet */
-       return UDIErrorNoSuchConnection;
-
-    current = Session;
-    /* change socket or multiplex the same socket  */
-    udrs->sd = session[Session].soc_con_p->dfe_sd;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDISessionId(udrs, &session[Session].tip_id);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/************************************************************ UDI_Capabilities
-* The DFE uses UDICapabilities() to both inform the TIP
-* of what services the DFE offers and to inquire of the
-* TIP what services the TIP offers.
-*/
-UDIError UDICapabilities(TIPId, TargetId, DFEId, DFE, TIP, DFEIPCId,
-               TIPIPCId, TIPString)
-UDIUInt32      *TIPId;         /* out */
-UDIUInt32      *TargetId;      /* out */
-UDIUInt32      DFEId;          /* in */
-UDIUInt32      DFE;            /* in */
-UDIUInt32      *TIP;           /* out */
-UDIUInt32      *DFEIPCId;      /* out */
-UDIUInt32      *TIPIPCId;      /* out */
-char           *TIPString;     /* out */
-{
-    UDIInt32   service_id = UDICapabilities_c;
-    int                size;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIInt32(udrs, &DFEId);
-    udr_UDIInt32(udrs, &DFE);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" paramters */
-    udr_UDIInt32(udrs, TIPId);
-    udr_UDIInt32(udrs, TargetId);
-    udr_UDIInt32(udrs, TIP);
-    udr_UDIInt32(udrs, DFEIPCId);
-    *DFEIPCId = (company_c << 16) + (product_c << 12) + version_c;
-    udr_UDIInt32(udrs, TIPIPCId);
-    udr_string(udrs, sbuf);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    size = strlen(sbuf);
-    if(size +1 > 80) return -1;                /* test if sufficient space */
-    strcpy(TIPString, sbuf);
-    return dfe_errno;
-}
-
-/********************************************************** UDI_Enumerate_TIPs
-* Used by the DFE to enquire about available TIP
-* connections.
-*/
-UDIError UDIEnumerateTIPs(UDIETCallback)
-  int (*UDIETCallback)();              /* In -- function to callback */
-{
-    FILE       *fp;
-
-    fp = fopen(config_file, "r");
-    if(fp == NULL)
-       return UDIErrorCantOpenConfigFile;
-    while(fgets( sbuf, SBUF_SIZE, fp))
-       if(UDIETCallback( sbuf) == UDITerminateEnumeration)
-           break;
-    fclose( fp);
-    return UDINoError;                 /* return success */
-}
-
-/*********************************************************** UDI_GET_ERROR_MSG
-* Some errors are target specific. They are indicated
-* by a negative error return value. The DFE uses
-* UDIGetErrorMsg() to get the descriptive text for
-* the error message which can then  be  displayed  to
-* the user.
-*/
-UDIError UDIGetErrorMsg(error_code, msg_len, msg, CountDone)
-UDIError       error_code;             /* In */
-UDISizeT       msg_len;                /* In  -- allowed message space */
-char*          msg;                    /* Out -- length of message*/
-UDISizeT       *CountDone;             /* Out -- number of characters */
-{
-    UDIInt32   service_id = UDIGetErrorMsg_c;
-    int                size;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIError(udrs, &error_code);
-    udr_UDISizeT(udrs, &msg_len);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_string(udrs, sbuf);
-    udr_UDISizeT(udrs, CountDone);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    size = strlen(sbuf);
-    if(size +1 > msg_len) return -1;   /* test if sufficient space */
-    strcpy(msg, sbuf);
-    return dfe_errno;
-}
-
-/******************************************************* UDI_GET_TARGET_CONFIG
-* UDIGetTargetConfig() gets information about the target.
-*/
-UDIError UDIGetTargetConfig(KnownMemory, NumberOfRanges, ChipVersions,
-               NumberOfChips)
-UDIMemoryRange KnownMemory[];          /* Out */
-UDIInt         *NumberOfRanges;        /* In and Out */
-UDIUInt32      ChipVersions[];         /* Out */
-UDIInt         *NumberOfChips;         /* In and Out */
-{
-    UDIInt32   service_id = UDIGetTargetConfig_c;
-    int                cnt;
-    int                MaxOfRanges = *NumberOfRanges;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIInt(udrs, NumberOfRanges);
-    udr_UDIInt(udrs, NumberOfChips);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" paramters */
-    for(cnt=1; cnt <= MaxOfRanges; cnt++)
-       udr_UDIMemoryRange(udrs, &KnownMemory[cnt-1]);
-    udr_UDIInt(udrs, NumberOfRanges);
-    udr_UDIInt(udrs, NumberOfChips);
-    for(cnt=1; cnt <= *NumberOfChips; cnt++)
-       udr_UDIUInt32(udrs, &ChipVersions[cnt -1]);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/********************************************************** UDI_CREATE_PRCOESS
-* UDICreateProcess() tells the  target  OS  that  a
-* process is to be created and gets a PID back unless
-* there is some error.
-*/
-UDIError UDICreateProcess(pid)
-UDIPId *pid;   /* out */
-{
-    UDIInt32   service_id = UDICreateProcess_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIPId(udrs, pid);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/***************************************************** UDI_Set_Current_Process
-* UDISetCurrentProcess  uses   a   pid   supplied   by
-* UDICreateProcess  and  sets it as the default for all
-* udi calls until a new one is set.  A user of  a
-*/
-UDIError UDISetCurrentProcess (pid)
-UDIPId pid;                    /* In */
-{
-    UDIInt32   service_id = UDISetCurrentProcess_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIPId(udrs, &pid);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/****************************************************** UDI_INITIALISE_PROCESS
-* UDIInitializeProcess() prepare process for
-* execution. (Reset processor if process os processor).
-*/
-UDIError UDIInitializeProcess( ProcessMemory, NumberOfRanges, EntryPoint,
-               StackSizes, NumberOfStacks, ArgString)
-UDIMemoryRange ProcessMemory[];        /* In */
-UDIInt         NumberOfRanges;         /* In */
-UDIResource    EntryPoint;             /* In */
-CPUSizeT       *StackSizes;            /* In */
-UDIInt         NumberOfStacks;         /* In */
-char           *ArgString;             /* In */
-{
-    UDIInt32   service_id = UDIInitializeProcess_c;
-    int                cnt;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIInt(udrs, &NumberOfRanges);
-    for(cnt = 0; cnt < NumberOfRanges; cnt++)
-       udr_UDIMemoryRange(udrs, &ProcessMemory[cnt] );
-    udr_UDIResource(udrs, &EntryPoint);
-    udr_UDIInt(udrs, &NumberOfStacks);
-    for(cnt = 0; cnt < NumberOfStacks; cnt++)
-       udr_CPUSizeT(udrs, &StackSizes[cnt]);
-    udr_string(udrs, ArgString);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/********************************************************* UDI_DESTROY_PROCESS
-* UDIDestroyProcess() frees a process resource
-* previously created by UDICreateProcess().
-*/
-UDIError UDIDestroyProcess(pid)
-UDIPId   pid;  /* in */
-{
-    UDIInt32   service_id = UDIDestroyProcess_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIPId(udrs, &pid);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/****************************************************************** UDI_READ
-* UDIRead() reads a block of objects from  a  target
-* address space  to host space.
-*/
-
-UDIError UDIRead (from, to, count, size, count_done, host_endian)
-UDIResource    from;           /* in - source address on target */
-UDIHostMemPtr  to;             /* out - destination address on host */
-UDICount       count;          /* in -- count of objects to be transferred */
-UDISizeT       size;           /* in -- size of each object */
-UDICount       *count_done;    /* out - count actually transferred */
-UDIBool                host_endian;    /* in -- flag for endian information */
-{
-    UDIInt32   service_id = UDIRead_c;
-    int                byte_count;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIResource(udrs, &from);
-    udr_UDICount(udrs, &count);
-    udr_UDISizeT(udrs, &size);
-    udr_UDIBool(udrs, &host_endian);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" paramters */
-    udr_UDICount(udrs, count_done);
-    byte_count = (*count_done) * size;
-    if(*count_done > 0 && *count_done <= count)
-        udr_bytes(udrs, to, byte_count);
-    if(udr_errno) return udr_errno;
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/****************************************************************** UDI_WRITE
-* UDIWrite() writes a block  of  objects  from  host
-* space  to  a  target  address+space.
-*/
-UDIError UDIWrite( from, to, count, size, count_done, host_endian )
-UDIHostMemPtr  from;           /* in -- source address on host */
-UDIResource    to;             /* in -- destination address on target */
-UDICount       count;          /* in -- count of objects to be transferred */
-UDISizeT       size;           /* in -- size of each object */
-UDICount       *count_done;    /* out - count actually transferred */
-UDIBool                host_endian;    /* in -- flag for endian information */
-{
-    UDIInt32   service_id = UDIWrite_c;
-    int                byte_count = count * size;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIResource(udrs, &to);
-    udr_UDICount(udrs, &count);
-    udr_UDISizeT(udrs, &size);
-    udr_UDIBool(udrs, &host_endian);
-    udr_bytes(udrs, from, byte_count);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" paramters */
-    udr_UDICount(udrs, count_done);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/******************************************************************** UDI_COPY
-* UDICopy() copies a block of objects from one  target
-* get  address/space to another target address/space.
-*/
-UDIError UDICopy(from, to, count, size, count_done, direction )
-UDIResource    from;           /* in -- destination address on target */
-UDIResource    to;             /* in -- source address on target */
-UDICount       count;          /* in -- count of objects to be transferred */
-UDISizeT       size;           /* in -- size of each object */
-UDICount       *count_done;    /* out - count actually transferred */
-UDIBool                direction;      /* in -- high-to-low or reverse */
-{
-    UDIInt32   service_id = UDICopy_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIResource(udrs, &from);
-    udr_UDIResource(udrs, &to);
-    udr_UDICount(udrs, &count);
-    udr_UDISizeT(udrs, &size);
-    udr_UDIBool(udrs, &direction);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDICount(udrs, count_done);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/***************************************************************** UDI_EXECUTE
-* UDIExecute() continues execution  of  the  default
-* process from the current PC.
-*/
-UDIError UDIExecute()
-{
-    UDIInt32   service_id = UDIExecute_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/******************************************************************** UDI_STEP
-* UDIStep()  specifies  a  number  of  "instruction"
-* steps  to  make.
-*/
-UDIError UDIStep(steps, steptype, range)
-UDIUInt32      steps;          /* in -- number of steps */
-UDIStepType    steptype;       /* in -- type of stepping to be done */
-UDIRange       range;          /* in -- range if StepInRange is TRUE */
-{
-    UDIInt32   service_id = UDIStep_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIInt32(udrs, &steps);
-    udr_UDIStepType(udrs, &steptype);
-    udr_UDIRange(udrs, &range);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/******************************************************************** UDI_STOP
-* UDIStop() stops the default process
-*/
-UDIVoid UDIStop()
-{
-    if (strcmp(session[current].soc_con_p->domain_string, "AF_UNIX") == 0)
-      kill(session[current].soc_con_p->tip_pid, SIGINT);
-    else
-      udr_signal(udrs);
-
-/* XXX - should clean up session[] and soc_con[] structs here as well... */
-
-    return;
-}
-
-/******************************************************************** UDI_WAIT
-* UDIWait() returns the state of the target  procesor.
-*/
-UDIError UDIWait(maxtime, pid, stop_reason)
-UDIInt32   maxtime;        /* in -- maximum time to wait for completion */
-UDIPId     *pid;           /* out -- pid of process which stopped if any */
-UDIUInt32  *stop_reason;   /* out -- PC where process stopped */
-{
-    UDIInt32   service_id = UDIWait_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIInt32(udrs, &maxtime);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIPId(udrs, pid);
-    udr_UDIUInt32(udrs, stop_reason);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/********************************************************** UDI_SET_BREAKPOINT
-* UDISetBreakpoint() sets a breakpoint  at  an  adress
-* and  uses  the  passcount  to state how many
-* times that instruction should  be  hit  before  the
-* break  occurs.
-*/
-UDIError UDISetBreakpoint (addr, passcount, type, break_id)
-UDIResource    addr;           /* in -- where breakpoint gets set */
-UDIInt32       passcount;      /* in -- passcount for breakpoint  */
-UDIBreakType   type;           /* in -- breakpoint type */
-UDIBreakId     *break_id;      /* out - assigned break id */
-{
-    UDIInt32   service_id = UDISetBreakpoint_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIResource(udrs, &addr);
-    udr_UDIInt32(udrs, &passcount);
-    udr_UDIBreakType(udrs, &type);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIBreakId(udrs, break_id);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/******************************************************** UDI_QUERY_BREAKPOINT
-*/
-UDIError UDIQueryBreakpoint (break_id, addr, passcount, type, current_count)
-UDIBreakId     break_id;       /* in -- assigned break id */
-UDIResource    *addr;          /* out - where breakpoint was set */
-UDIInt32       *passcount;     /* out - trigger passcount for breakpoint  */
-UDIBreakType   *type;          /* out - breakpoint type */
-UDIInt32       *current_count; /* out - current count for breakpoint  */
-{
-    UDIInt32   service_id = UDIQueryBreakpoint_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIBreakId(udrs, &break_id);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIResource(udrs, addr);
-    udr_UDIInt32(udrs, passcount);
-    udr_UDIBreakType(udrs, type);
-    udr_UDIInt32(udrs, current_count);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/******************************************************** UDI_CLEAR_BREAKPOINT
-* UDIClearBreakpoint() is used to  clear  a  breakpoint.
-*/
-UDIError UDIClearBreakpoint (break_id)
-UDIBreakId     break_id;       /* in -- assigned break id */
-{
-    UDIInt32   service_id = UDIClearBreakpoint_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIBreakId(udrs, &break_id);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/************************************************************** UDI_GET_STDOUT
-* UDIGetStdout()  is  called   when   a   call   to
-* UDIWait() indicates there is STD output data ready. 
-*/
-UDIError UDIGetStdout(buf, bufsize, count_done)
-UDIHostMemPtr  buf;            /* out -- buffer to be filled */
-UDISizeT       bufsize;        /* in  -- buffer size in bytes */
-UDISizeT       *count_done;    /* out -- number of bytes written to buf */
-{
-    UDIInt32   service_id = UDIGetStdout_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDISizeT(udrs, &bufsize);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDISizeT(udrs, count_done);
-    udr_bytes(udrs, buf, *count_done);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/************************************************************** UDI_GET_STDERR
-* UDIGetStderr()  is  called   when   a   call   to
-* UDIWait() indicates there is STDERR output data ready
-*/
-UDIError UDIGetStderr(buf, bufsize, count_done)
-UDIHostMemPtr  buf;            /* out -- buffer to be filled */
-UDISizeT       bufsize;        /* in  -- buffer size in bytes */
-UDISizeT       *count_done;    /* out -- number of bytes written to buf */
-{
-    UDIInt32   service_id = UDIGetStderr_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDISizeT(udrs, &bufsize);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDISizeT(udrs, count_done);
-    udr_bytes(udrs, buf, *count_done);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/*************************************************************** UDI_PUT_STDIN
-* UDIPutStdin() is called whenever the DFE wants to
-* deliver an input character to the TIP.
-*/
-UDIError UDIPutStdin (buf, count, count_done)
-UDIHostMemPtr  buf;            /* in -- buffer to be filled */
-UDISizeT       count;          /* in -- buffer size in bytes */
-UDISizeT       *count_done;    /* out - number of bytes written to buf */
-{
-    UDIInt32   service_id = UDIPutStdin_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDISizeT(udrs, &count);
-    udr_bytes(udrs, buf, count);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDISizeT(udrs, count_done);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/************************************************************** UDI_STDIN_MODE
-* UDIStdinMode() is used to change the mode that chazcters
-* are fetched from the user.
-*/
-UDIError       UDIStdinMode(mode)
-UDIMode                *mode;          /* out - */
-{
-    UDIInt32   service_id = UDIStdinMode_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIMode(udrs, mode);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/*************************************************************** UDI_PUT_TRANS
-* UDIPutTrans() is used to feed input to  the  passthru  mode.
-*/
-UDIError       UDIPutTrans (buf, count, count_done)
-UDIHostMemPtr  buf;            /* in -- buffer address containing input data */
-UDISizeT       count;          /* in -- number of bytes in buf */
-UDISizeT       *count_done;    /* out-- number of bytes transfered */
-{
-    UDIInt32   service_id = UDIPutTrans_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDISizeT(udrs, &count);
-    udr_bytes(udrs, buf, count);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDISizeT(udrs, count_done);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/*************************************************************** UDI_GET_TRANS
-* UDIGetTrans() is used to get output lines from the
-* passthru mode.
-*/
-UDIError       UDIGetTrans (buf, bufsize, count_done)
-UDIHostMemPtr  buf;            /* out -- buffer to be filled */
-UDISizeT       bufsize;        /* in  -- size of buf */
-UDISizeT       *count_done;    /* out -- number of bytes in buf */
-{
-    UDIInt32   service_id = UDIGetTrans_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDISizeT(udrs, &bufsize);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDISizeT(udrs, count_done);
-    udr_bytes(udrs, buf, *count_done);
-    udr_UDIError(udrs, &dfe_errno);    /* get any TIP error */
-    return dfe_errno;
-}
-
-/************************************************************** UDI_Trans_Mode
-* UDITransMode() is used to change the mode that the
-* transparent routines operate in.
-*/
-UDIError UDITransMode(mode)
-UDIMode                *mode;          /* out  -- selected mode */
-{
-    UDIInt32   service_id = UDITransMode_c;
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-    udr_UDIMode(udrs, mode);
-    udr_sendnow(udrs);
-    if(udr_errno) return udr_errno;
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    udr_UDIError(udrs, &dfe_errno);
-    return dfe_errno;
-}
-
-/******************************************************************** UDI_TEST
-*/
-UDIError UDITest( cnt, str_p, array)
-UDISizeT       cnt;
-UDIHostMemPtr  str_p;
-UDIInt32       array[];
-{
-    UDIInt32   service_id = UDITest_c;
-    UDIInt16   scnt = cnt;
-    UDISizeT   r_cnt;
-    char       buf[256];
-
-    udr_errno = 0;
-    udrs->udr_op = UDR_ENCODE;         /* send all "in" parameters */
-    udr_UDIInt32(udrs, &service_id);
-
-    printf("send       cnt=%d scnt=%d\n", cnt, scnt);
-    udr_UDISizeT(udrs, &cnt);
-    udr_UDIInt16(udrs, &scnt);
-    printf("   array[0]=0x%x array[1]=0x%x array[2]=0x%x array[3]=0x%x\n",
-       array[0], array[1], array[2], array[3]);
-    udr_bytes(udrs, (char*)array, 4*sizeof(UDIInt32));
-    printf("   string=%s\n", str_p);
-    udr_string(udrs, str_p);
-    udr_sendnow(udrs);
-    if(udr_errno)
-    {  fprintf(stderr, " DFE-ipc Send ERROR\n");
-       return udr_errno;
-    }
-
-    udrs->udr_op = UDR_DECODE;         /* receive all "out" parameters */
-    printf("recv       ");
-    udr_UDISizeT(udrs, &r_cnt);
-    udr_UDIInt16(udrs, &scnt);
-    printf("   rcnt=%d scnt=%d\n", r_cnt, scnt);
-    udr_bytes(udrs, (char*)array, 4*sizeof(UDIInt32));
-
-    printf("   array[0]=0x%x array[1]=0x%x array[2]=0x%x array[3]=0x%x\n",
-       array[0], array[1], array[2], array[3]);
-    udr_string(udrs, str_p);
-    printf("   string=%s\n", str_p);
-
-    udr_UDIError(udrs, &dfe_errno);
-    return dfe_errno;
-}
-
-
-
-UDIUInt32 UDIGetDFEIPCId()
-{
-    return ((company_c << 16) + (product_c << 12) + version_c);
-}
-#endif /* __GO32__ */
diff --git a/gdb/29k-share/udi/udiphcfg.h b/gdb/29k-share/udi/udiphcfg.h
deleted file mode 100644 (file)
index e9eff0a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-/* This file just picks the correct udiphxxx.h depending on the host.
-   The two hosts that are now defined are UNIX and MSDOS.
-
-   Copyright 1993 Free Software Foundation, Inc.
-
-   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 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.  */
-
-/*
- * For the moment, we will default to BSD_IPC; this might change if/when
- * another type of IPC (Mach? SysV?) is implemented.
- */
-
-#if 0
-
-/* We don't seem to have a copy of udiphdos.h.  Furthermore, all the
-   things in udiphunix.h are pretty much generic 32-bit machine defines
-   which don't have anything to do with IPC.  */
-
-#ifdef DOS_IPC
-#include "udiphdos.h"
-#else
-/*#ifdef BSD_IPC */
-#include "udiphunix.h"
-#endif
-
-#else
-
-#include "udiphunix.h"
-
-#endif
diff --git a/gdb/29k-share/udi/udiphunix.h b/gdb/29k-share/udi/udiphunix.h
deleted file mode 100644 (file)
index 172fbbf..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/* Originally called "udiphsun.h", however it was not very
-   Sun-specific; now it is used for generic-unix-with-bsd-ipc.
-
-   Copyright 1993 Free Software Foundation, Inc.
-
-   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 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.  */
-
-/* This file is to be used to reconfigure the UDI Procedural interface
-   for a given host. This file should be placed so that it will be
-   included from udiproc.h. Everything in here may need to be changed
-   when you change either the host CPU or its compiler. Nothing in
-   here should change to support different targets. There are multiple
-   versions of this file, one for each of the different host/compiler
-   combinations in use.
-*/
-
-#define UDIStruct  struct              /* _packed not needed on unix */
-/* First, we need some types */
-/* Types with at least the specified number of bits */
-typedef double         UDIReal64;              /* 64-bit real value */
-typedef float          UDIReal32;              /* 32-bit real value */
-  
-typedef unsigned long  UDIUInt32;              /* unsigned integers */
-typedef unsigned short UDIUInt16; 
-typedef unsigned char  UDIUInt8;
-  
-typedef long           UDIInt32;               /* 32-bit integer */ 
-typedef short          UDIInt16;               /* 16-bit integer */ 
-typedef char           UDIInt8;                /* unreliable signedness */
-
-/* To aid in supporting environments where the DFE and TIP use
-different compilers or hosts (like DOS 386 on one side, 286 on the
-other, or different Unix machines connected by sockets), we define
-two abstract types - UDIInt and UDISizeT.
-UDIInt should be defined to be int except for host/compiler combinations
-that are intended to talk to existing UDI components that have a different
-sized int. Similarly for UDISizeT.
-*/
-typedef int            UDIInt;
-typedef unsigned int   UDIUInt;
-
-typedef unsigned int   UDISizeT;
-
-/* Now two void types. The first is for function return types,
-the other for pointers to no particular type. Since these types
-are used solely for documentational clarity, if your host/compiler
-doesn't support either one, replace them with int and char *
-respectively.
-*/
-typedef void           UDIVoid;                /* void type */
-typedef void *         UDIVoidPtr;             /* void pointer type */
-typedef void *         UDIHostMemPtr;          /* Arbitrary memory pointer */
-
-/* Now we want a type optimized for boolean values. Normally this
-   would be int, but on some machines (Z80s, 8051s, etc) it might
-   be better to map it onto a char
-*/
-typedef        int             UDIBool;
-
-/* Now indicate whether your compiler support full ANSI style
-   prototypes. If so, use #if 1. If not use #if 0.
-*/
-#if 0
-#define UDIParams(x)   x
-#else
-#define UDIParams(x)   ()
-#endif
diff --git a/gdb/29k-share/udi/udiproc.h b/gdb/29k-share/udi/udiproc.h
deleted file mode 100644 (file)
index 0cc1c20..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-/* local type decs. and macro defs.
-
-   Copyright 1993 Free Software Foundation, Inc.
-
-   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 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.  */
-
-#include "udiphcfg.h"  /* Get host specific configuration */
-#include "udiptcfg.h"  /* Get target specific configuration */
-
-/* Here are all of the CPU Families for which UDI is currently defined */
-#define Am29K          1       /* AMD's Am290xx and Am292xx parts */
-
-typedef UDIInt         UDIError;
-typedef UDIInt         UDISessionId;
-typedef        UDIInt          UDIPId;
-typedef        UDIInt          UDIStepType;
-typedef        UDIInt          UDIBreakType;
-typedef        UDIUInt         UDIBreakId;
-typedef UDIUInt                UDIMode;
-
-typedef UDIStruct
-{                      
-    CPUSpace   Space;
-    CPUOffset  Offset;
-} UDIResource;
-
-typedef        UDIStruct
-{
-    CPUOffset  Low;
-    CPUOffset  High;
-} UDIRange;
-
-typedef UDIStruct
-{
-    CPUSpace   Space;
-    CPUOffset  Offset;
-    CPUSizeT   Size;
-    } UDIMemoryRange;
-
-/* Values for UDIStepType parameters */
-#define UDIStepNatural         0x0000
-#define UDIStepOverTraps       0x0001
-#define UDIStepOverCalls       0x0002
-#define UDIStepInRange         0x0004
-#define UDIStepNatural         0x0000
-
-/* Values for UDIBreakType parameters */
-#define UDIBreakFlagExecute    0x0001
-#define UDIBreakFlagRead       0x0002
-#define UDIBreakFlagWrite      0x0004
-#define UDIBreakFlagFetch      0x0008
-
-/* Special values for UDIWait MaxTime parameter */
-#define UDIWaitForever (UDIInt32) -1   /* Infinite time delay */
-
-/* Special values for PId */
-#define UDIProcessProcessor    -1      /* Raw Hardware, if possible */
-
-/* Values for UDIWait StopReason */
-#define UDIGrossState          0xff
-#define UDITrapped             0       /* Fine state - which trap */
-#define UDINotExecuting                1
-#define UDIRunning             2
-#define UDIStopped             3
-#define UDIWarned              4
-#define UDIStepped             5
-#define UDIWaiting             6
-#define UDIHalted              7
-#define UDIStdoutReady         8       /* fine state - size */
-#define UDIStderrReady         9       /* fine state - size */
-#define UDIStdinNeeded         10      /* fine state - size */
-#define UDIStdinModeX                  11      /* fine state - mode */
-#define UDIBreak               12      /* Fine state - Breakpoint Id */
-#define UDIExited              13      /* Fine state - exit code */
-
-/* Enumerate the return values from the callback function
-   for UDIEnumerateTIPs.
-*/
-#define UDITerminateEnumeration        0
-#define UDIContinueEnumeration 1
-
-/* Enumerate values for Terminate parameter to UDIDisconnect */
-#define UDITerminateSession    1
-#define UDIContinueSession     0
-
-/* Error codes */
-#define UDINoError                     0       /* No error occured */
-#define UDIErrorNoSuchConfiguration    1
-#define UDIErrorCantHappen             2
-#define UDIErrorCantConnect            3
-#define UDIErrorNoSuchConnection       4
-#define UDIErrorNoConnection           5
-#define UDIErrorCantOpenConfigFile     6
-#define UDIErrorCantStartTIP           7
-#define UDIErrorConnectionUnavailable  8
-#define UDIErrorTryAnotherTIP          9
-#define UDIErrorExecutableNotTIP       10
-#define UDIErrorInvalidTIPOption       11
-#define UDIErrorCantDisconnect         12
-#define UDIErrorUnknownError           13
-#define UDIErrorCantCreateProcess      14
-#define UDIErrorNoSuchProcess          15
-#define UDIErrorUnknownResourceSpace   16
-#define UDIErrorInvalidResource                17
-#define UDIErrorUnsupportedStepType    18
-#define UDIErrorCantSetBreakpoint      19
-#define UDIErrorTooManyBreakpoints     20
-#define UDIErrorInvalidBreakId         21
-#define UDIErrorNoMoreBreakIds         22
-#define UDIErrorUnsupportedService     23
-#define UDIErrorTryAgain               24
-#define UDIErrorIPCLimitation          25
-#define UDIErrorIncomplete             26
-#define UDIErrorAborted                        27
-#define UDIErrorTransDone              28
-#define UDIErrorCantAccept             29
-#define UDIErrorTransInputNeeded       30
-#define UDIErrorTransModeX             31
-#define UDIErrorInvalidSize            32
-#define UDIErrorBadConfigFileEntry     33
-#define UDIErrorIPCInternal            34
-/* TBD */
-
-/****************************************************************** PROCEDURES
-*/
-
-UDIError UDIConnect UDIParams((
-  char         *Configuration,         /* In */
-  UDISessionId *Session                /* Out */
-  ));
-
-UDIError UDIDisconnect UDIParams((
-  UDISessionId Session,                /* In */
-  UDIBool      Terminate               /* In */
-  ));
-
-UDIError UDISetCurrentConnection UDIParams((
-  UDISessionId Session                 /* In */
-  ));
-
-UDIError UDICapabilities UDIParams((
-  UDIUInt32    *TIPId,                 /* Out */
-  UDIUInt32    *TargetId,              /* Out */
-  UDIUInt32    DFEId,                  /* In */
-  UDIUInt32    DFE,                    /* In */
-  UDIUInt32    *TIP,                   /* Out */
-  UDIUInt32    *DFEIPCId,              /* Out */
-  UDIUInt32    *TIPIPCId,              /* Out */
-  char         *TIPString              /* Out */
-  ));
-
-UDIError UDIEnumerateTIPs UDIParams((
-  UDIInt       (*UDIETCallback)        /* In */
-    UDIParams(( char *Configuration )) /* In to callback() */
-  ));
-
-UDIError UDIGetErrorMsg UDIParams((
-  UDIError     ErrorCode,              /* In */
-  UDISizeT     MsgSize,                /* In */
-  char         *Msg,                   /* Out */
-  UDISizeT     *CountDone              /* Out */
-  ));
-
-UDIError UDIGetTargetConfig UDIParams((
-  UDIMemoryRange KnownMemory[],                /* Out */
-  UDIInt       *NumberOfRanges,        /* In/Out */
-  UDIUInt32    ChipVersions[],         /* Out */
-  UDIInt       *NumberOfChips          /* In/Out */
-  ));
-
-UDIError UDICreateProcess UDIParams((
-  UDIPId       *PId                    /* Out */
-  ));
-
-UDIError UDISetCurrentProcess UDIParams((
-  UDIPId       PId                     /* In */
-  ));
-
-UDIError UDIDestroyProcess UDIParams((
-  UDIPId       PId                     /* In */
-  ));
-
-UDIError UDIInitializeProcess UDIParams((
-  UDIMemoryRange ProcessMemory[],      /* In */
-  UDIInt       NumberOfRanges,         /* In */
-  UDIResource  EntryPoint,             /* In */
-  CPUSizeT     StackSizes[],           /* In */
-  UDIInt       NumberOfStacks,         /* In */
-  char         *ArgString              /* In */
-  ));
-
-UDIError UDIRead UDIParams((
-  UDIResource  From,                   /* In */
-  UDIHostMemPtr        To,                     /* Out */
-  UDICount     Count,                  /* In */
-  UDISizeT     Size,                   /* In */
-  UDICount     *CountDone,             /* Out */
-  UDIBool      HostEndian              /* In */
-  ));
-
-UDIError UDIWrite UDIParams((
-  UDIHostMemPtr        From,                   /* In */
-  UDIResource  To,                     /* In */
-  UDICount     Count,                  /* In */
-  UDISizeT     Size,                   /* In */
-  UDICount     *CountDone,             /* Out */
-  UDIBool      HostEndian              /* In */
-  ));
-
-UDIError UDICopy UDIParams((
-  UDIResource  From,                   /* In */
-  UDIResource  To,                     /* In */
-  UDICount     Count,                  /* In */
-  UDISizeT     Size,                   /* In */
-  UDICount     *CountDone,             /* Out */
-  UDIBool      Direction               /* In */
-  ));
-
-UDIError UDIExecute UDIParams((
-  void
-  ));
-
-UDIError UDIStep UDIParams((
-  UDIUInt32    Steps,                  /* In */
-  UDIStepType   StepType,              /* In */
-  UDIRange      Range                  /* In */
-  ));
-
-UDIVoid UDIStop UDIParams((
-  void
-  ));
-
-UDIError UDIWait UDIParams((
-  UDIInt32     MaxTime,                /* In */
-  UDIPId       *PId,                   /* Out */
-  UDIUInt32    *StopReason             /* Out */
-  ));
-
-UDIError UDISetBreakpoint UDIParams((
-  UDIResource  Addr,                   /* In */
-  UDIInt32     PassCount,              /* In */
-  UDIBreakType Type,                   /* In */
-  UDIBreakId   *BreakId                /* Out */
-  ));
-
-UDIError UDIQueryBreakpoint UDIParams((
-  UDIBreakId   BreakId,                /* In */
-  UDIResource  *Addr,                  /* Out */
-  UDIInt32     *PassCount,             /* Out */
-  UDIBreakType *Type,                  /* Out */
-  UDIInt32     *CurrentCount           /* Out */
-  ));
-
-UDIError UDIClearBreakpoint UDIParams((
-  UDIBreakId   BreakId                 /* In */
-  ));
-
-UDIError UDIGetStdout UDIParams((
-  UDIHostMemPtr        Buf,                    /* Out */
-  UDISizeT     BufSize,                /* In */
-  UDISizeT     *CountDone              /* Out */
-  ));
-
-UDIError UDIGetStderr UDIParams((
-  UDIHostMemPtr        Buf,                    /* Out */
-  UDISizeT     BufSize,                /* In */
-  UDISizeT     *CountDone              /* Out */
-  ));
-
-UDIError UDIPutStdin UDIParams((
-  UDIHostMemPtr        Buf,                    /* In */
-  UDISizeT     Count,                  /* In */
-  UDISizeT     *CountDone              /* Out */
-  ));
-
-UDIError UDIStdinMode UDIParams((
-  UDIMode      *Mode                   /* Out */
-  ));
-
-UDIError UDIPutTrans UDIParams((
-  UDIHostMemPtr        Buf,                    /* In */
-  UDISizeT     Count,                  /* In */
-  UDISizeT     *CountDone              /* Out */
-  ));
-
-UDIError UDIGetTrans UDIParams((
-  UDIHostMemPtr        Buf,                    /* Out */
-  UDISizeT     BufSize,                /* In */
-  UDISizeT     *CountDone              /* Out */
-  ));
-
-UDIError UDITransMode UDIParams((
-  UDIMode      *Mode                   /* Out */
-  ));
diff --git a/gdb/29k-share/udi/udipt29k.h b/gdb/29k-share/udi/udipt29k.h
deleted file mode 100644 (file)
index 5de2f3f..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-/* This file is to be used to reconfigure the UDI Procedural interface
-   for a given target.
-
-   Copyright 1993 Free Software Foundation, Inc.
-
-   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 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.  */
-
-/* This file should be placed so that it will be
-   included from udiproc.h. Everything in here will probably need to
-   be changed when you change the target processor. Nothing in here
-   should need to change when you change hosts or compilers.
-*/
-
-/* Select a target CPU Family */
-#define TargetCPUFamily        Am29K
-
-/* Enumerate the processor specific values for Space in a resource */
-#define UDI29KDRAMSpace                0
-#define UDI29KIOSpace          1
-#define UDI29KCPSpace0         2
-#define UDI29KCPSpace1         3
-#define UDI29KIROMSpace                4
-#define UDI29KIRAMSpace                5
-#define UDI29KLocalRegs                8
-#define UDI29KGlobalRegs       9
-#define UDI29KRealRegs         10
-#define UDI29KSpecialRegs      11
-#define UDI29KTLBRegs          12      /* Not Am29005 */
-#define UDI29KACCRegs          13      /* Am29050 only */
-#define UDI29KICacheSpace      14      /* Am2903x only */
-#define UDI29KAm29027Regs      15      /* When available */
-#define UDI29KPC               16
-#define UDI29KDCacheSpace      17      /* When available */
-
-/* Enumerate the Co-processor registers */
-#define UDI29KCP_F             0
-#define UDI29KCP_Flag          8
-#define UDI29KCP_I             12
-#define UDI29KCP_ITmp          16
-#define UDI29KCP_R             20
-#define UDI29KCP_S             28
-#define UDI29KCP_RTmp          36
-#define UDI29KCP_STmp          44
-#define UDI29KCP_Stat          52
-#define UDI29KCP_Prec          56
-#define UDI29KCP_Reg0          60
-#define UDI29KCP_Reg1          68
-#define UDI29KCP_Reg2          76
-#define UDI29KCP_Reg3          84
-#define UDI29KCP_Reg4          92
-#define UDI29KCP_Reg5          100
-#define UDI29KCP_Reg6          108
-#define UDI29KCP_Reg7          116
-#define UDI29KCP_Mode          124
-
-/* Enumerate the stacks in StackSizes array */
-#define UDI29KMemoryStack      0
-#define UDI29KRegisterStack    1
-
-/* Enumerate the chips for ChipVersions array */
-#define UDI29K29KVersion       0
-#define UDI29K29027Version     1
-
-/* Define special value for elements of ChipVersions array for
- * chips not present */
-#define UDI29KChipNotPresent   -1
-
-typedef        UDIInt32                UDICount;
-typedef        UDIUInt32               UDISize;
-
-typedef UDIInt                 CPUSpace;
-typedef UDIUInt32              CPUOffset;
-typedef        UDIUInt32               CPUSizeT;
diff --git a/gdb/29k-share/udi/udiptcfg.h b/gdb/29k-share/udi/udiptcfg.h
deleted file mode 100644 (file)
index 1641a53..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 1993 Free Software Foundation, Inc.
-
-   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 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.  */
-
-#include "udipt29k.h"
diff --git a/gdb/29k-share/udi/udisoc.h b/gdb/29k-share/udi/udisoc.h
deleted file mode 100644 (file)
index bc68b39..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-/* This module defines constants used in the UDI IPC modules.
-
-   Copyright 1993 Free Software Foundation, Inc.
-
-   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 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.  */
-
-static char udisoc_h[]="@(#)udisoc.h   2.6  Daniel Mann";
-static char udisoc_h_AMD[]="@(#)udisoc.h       2.4, AMD";
-
-#define LOCAL static
-#define        company_c       1               /* AMD Company id */
-#define        product_c       1               /* socket IPC id */
-
-/* Enumerate the UDI procedure services 
-*/
-#define        UDIConnect_c                    0
-#define        UDIDisconnect_c                 1
-#define        UDISetCurrentConnection_c       2
-#define        UDICapabilities_c               3
-#define        UDIEnumerateTIPs_c              4
-#define        UDIGetErrorMsg_c                5
-#define        UDIGetTargetConfig_c            6
-#define        UDICreateProcess_c              7
-#define        UDISetCurrentProcess_c          8
-#define        UDIDestroyProcess_c             9
-#define        UDIInitializeProcess_c          10
-#define        UDIRead_c                       11
-#define        UDIWrite_c                      12
-#define        UDICopy_c                       13
-#define        UDIExecute_c                    14
-#define        UDIStep_c                       15
-#define        UDIStop_c                       16
-#define        UDIWait_c                       17
-#define        UDISetBreakpoint_c              18
-#define        UDIQueryBreakpoint_c            19
-#define        UDIClearBreakpoint_c            20
-#define        UDIGetStdout_c                  21
-#define        UDIGetStderr_c                  22
-#define        UDIPutStdin_c                   23
-#define        UDIStdinMode_c                  24
-#define        UDIPutTrans_c                   25
-#define        UDIGetTrans_c                   26
-#define        UDITransMode_c                  27
-#define        UDITest_c                       28
-#define        UDIKill_c                       29
-
-#define        udr_UDIInt8(udrs, obj)  udr_work(udrs, obj, 1)
-#define        udr_UDIInt16(udrs, obj) udr_work(udrs, obj, 2)
-#define        udr_UDIInt32(udrs, obj) udr_work(udrs, obj, 4)
-#define        udr_UDIInt(udrs, obj)   udr_work(udrs, obj, 4)
-
-#define        udr_UDIUInt8(udrs, obj)  udr_work(udrs, obj, 1)
-#define        udr_UDIUInt16(udrs, obj) udr_work(udrs, obj, 2)
-#define        udr_UDIUInt32(udrs, obj) udr_work(udrs, obj, 4)
-#define        udr_UDIUInt(udrs, obj)   udr_work(udrs, obj, 4)
-
-#define        udr_UDIBool(udrs, obj)   udr_UDIInt32(udrs, obj)
-#define        udr_UDICount(udrs, obj)  udr_UDIInt32(udrs, obj)
-#define        udr_UDISize(udrs, obj)   udr_UDIUInt32(udrs, obj)
-#define        udr_CPUSpace(udrs, obj)  udr_UDIInt32(udrs, obj)
-#define        udr_CPUOffset(udrs, obj) udr_UDIUInt32(udrs, obj)
-#define        udr_CPUSizeT(udrs, obj)  udr_UDIUInt32(udrs, obj)
-#define        udr_UDIBreakId(udrs,obj) udr_UDIUInt(udrs, obj)
-#define        udr_UDISizeT(udrs, obj)  udr_UDIUInt(udrs, obj)
-#define        udr_UDIMode(udrs, obj)   udr_UDIUInt(udrs, obj)
-
-#define        udr_UDIHostMemPtr(udrs, obj) udr_UDIUInt32(udrs, obj)
-#define        udr_UDIVoidPtr(udrs, obj)   udr_UDIUInt32(udrs, obj)
-#define        udr_UDIPId(udrs, obj)       udr_UDIUInt(udrs, obj)
-#define        udr_UDISessionId(udrs, obj) udr_UDIInt32(udrs, obj)
-#define        udr_UDIError(udrs, obj)     udr_UDIInt32(udrs, obj)
-#define        udr_UDIStepType(udrs, obj)  udr_UDIInt32(udrs, obj)
-#define        udr_UDIBreakType(udrs, obj) udr_UDIInt32(udrs, obj)
-
-#define        UDR_ENCODE 1
-#define        UDR_DECODE 2
-
-typedef struct UDR_str
-{
-    int                udr_op;                 /* UDR operation */
-    int                previous_op;
-    int                sd;
-    int                bufsize;
-    char*      buff;
-    char*      getbytes;
-    char*      putbytes;
-    char*      putend;
-    int                domain;
-    char*      soc_name;
-} UDR;
-
-/******************************************* Declare UDR suport functions */
-int udr_create UDIParams((
-  UDR* udrs,
-  int  sd,
-  int  size
-  ));
-
-int udr_free UDIParams((
-  UDR* udrs,
-  ));
-
-int udr_signal UDIParams((
-  UDR* udrs,
-  ));
-
-int udr_sendnow UDIParams((
-  UDR* udrs
-  ));
-
-int udr_work UDIParams((
-  UDR* udrs,
-  void*        object_p,
-  int  size
-  ));
-
-int udr_UDIResource UDIParams((
-  UDR* udrs,
-  UDIResource* object_p
-  ));
-
-int udr_UDIRange UDIParams((
-  UDR* udrs,
-  UDIRange*    object_p
-  ));
-
-int udr_UDIMemoryRange UDIParams((
-  UDR* udrs,
-  UDIMemoryRange*      object_p
-  ));
-
-int udr_UDIMemoryRange UDIParams((
-  UDR* udrs,
-  UDIMemoryRange* object_p
-  ));
-
-int udr_int UDIParams((
-  UDR* udrs,
-  int* int_p
-  ));
-
-int udr_bytes UDIParams((
-  UDR* udrs,
-  char*        ptr,
-  int  len
-  ));
-
-char* udr_inline UDIParams((
-  UDR* udrs,
-  int  size
-  ));
-
-char*  udr_getpos UDIParams((
-  UDR* udrs
-  ));
-int    udr_setpos UDIParams((
-  UDR* udrs,
-  char*        pos
-  ));
-
-int    udr_readnow UDIParams((
-  UDR* udrs,
-  int  size
-  ));
-
-int udr_align UDIParams((
-  UDR* udrs,
-  int  size,
-  ));
diff --git a/gdb/29k-share/udi/udr.c b/gdb/29k-share/udi/udr.c
deleted file mode 100644 (file)
index 10a9f38..0000000
+++ /dev/null
@@ -1,427 +0,0 @@
-/* This module supports sending and receiving data objects over a
-   socket conection.
-
-   Copyright 1993 Free Software Foundation, Inc.
-
-   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 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.  */
-
-static char udr_c[]="@(#)udr.c 2.8  Daniel Mann";
-static char udr_c_AMD[]="@(#)udr.c     2.3, AMD";
-/* 
-*      All data is serialised into a character stream,
-*      and de-serialised back into the approproiate objects.
-********************************************************************** HISTORY
-*/
-/* This is all unneeded on DOS machines.  */
-#ifndef __GO32__
-
-#include <stdio.h>
-#include <sys/types.h>
-
-/* This used to say sys/fcntl.h, but the only systems I know of that
-   require that are old (pre-4.3, at least) BSD systems, which we
-   probably don't need to worry about.  */
-#include <fcntl.h>
-
-#include <sys/socket.h>
-#include "udiproc.h"
-#include "udisoc.h"
-
-extern int     errno;
-extern char*   malloc();
-
-/* local type decs. and macro defs. not in a .h  file ************* MACRO/TYPE
-*/
-
-/* global dec/defs. which are not in a .h   file ************* EXPORT DEC/DEFS
-*/
-int            udr_errno;              /* error occurs during UDR service */
-
-/* local dec/defs. which are not in a .h   file *************** LOCAL DEC/DEFS
-*/
-
-/****************************************************************** UDR_CREATE
-* Build UDR structure for character stream processing.
-*/
-int udr_create(udrs, sd, size)
-UDR*   udrs;
-int    sd;
-int    size;
-{
-    udrs->sd = sd;
-    if(!udrs->buff) udrs->buff = malloc(size);
-    udrs->getbytes = udrs->buff;       /* set the buffer to the start */
-    udrs->putbytes = udrs->buff;
-    udrs->putend = udrs->buff;
-    udrs->udr_op = -1;                 /* don't know the direction */
-    udrs->previous_op = -1;            /* don't know the direction */
-    udrs->bufsize = size;
-    return 0;
-}
-
-/******************************************************************** UDR_FREE
-* Free USR structure and close socket.
-*/
-int udr_free(udrs)
-UDR*   udrs;
-{
-    close(udrs->sd);
-    free(udrs->buff);
-    return 0;
-}
-
-/****************************************************************** UDR_SIGNAL
-* Send a signal to the process at the other end of the socket,
-* indicating that it should expect to recieve a new message shortly.
-*/
-int udr_signal(udrs)
-UDR*   udrs;
-{
-    if(send(udrs->sd, "I", 1, MSG_OOB) == -1)
-    {  perror("ERROR, udr_signal(), send(...MSG_OOB)");
-       udr_errno =  UDIErrorIPCInternal;
-       return -1;              /* return error code */
-    }
-    return 0;
-}
-
-/***************************************************************** UDR_SENDNOW
-* used to flush the current character stream buffer to
-* the associated socket.  */
-int udr_sendnow(udrs)
-UDR*   udrs;
-{
-    int size = (UDIUInt32)(udrs->putend) - (UDIUInt32)(udrs->buff);
-    if(udrs->previous_op == 0)
-    {   udr_errno =  UDIErrorIPCInternal;
-       return -1;
-    }
-    udrs->putbytes = udrs->buff;
-    udrs->putend = udrs->buff;
-    if (write(udrs->sd, udrs->buff, size) == -1)
-    {  perror("ERROR, udr_sendnow(), write() call: ");
-       udr_errno =  UDIErrorIPCInternal;
-       return -1;              /* return error code */
-    }
-    return 0;
-}
-
-/******************************************************************** UDR_WORK
-* Function to send or recieve data from the buffers supporting
-* socket communication. The buffer contains serialised objects
-* sent/recieved over a socket connection.
-*/
-int udr_work(udrs, object_p, size)
-UDR*   udrs;
-void*  object_p;
-int    size;
-{
-    int            cnt, remain;
-
-    if(udrs->udr_op != udrs->previous_op)
-    {  if(udrs->previous_op == 0)
-       {   udr_errno =  UDIErrorIPCInternal;
-           return -1;
-        }
-       udrs->previous_op= udrs->udr_op;
-       udrs->putbytes = udrs->buff;
-       udrs->getbytes = udrs->buff;
-    }
-
-    if(udrs->udr_op == UDR_ENCODE)
-    {                  /* write data into character stream buffer */
-       if( (UDIUInt32)(udrs->putbytes) + size >
-           (UDIUInt32)(udrs->buff) + (UDIUInt32)(udrs->bufsize) )
-       {   udr_errno =  UDIErrorIPCInternal;
-           return -1;
-        }
-       memcpy(udrs->putbytes, (char*)object_p, size);
-       udrs->putbytes += size;
-       if(udrs->putbytes > udrs->putend) udrs->putend = udrs->putbytes;
-    }
-    else if(udrs->udr_op == UDR_DECODE)
-    {
-       if( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->getbytes) < size )
-       {                /* need more data in character stream buffer */
-                   remain = (UDIUInt32)(udrs->bufsize) -
-               ( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->buff) );
-                   if( ((UDIUInt32)(udrs->bufsize) + (UDIUInt32)(udrs->buff)
-               - (UDIUInt32)(udrs->getbytes)) < size)
-           {   udr_errno =  UDIErrorIPCInternal;
-               return -1;
-            }
-           cnt = read(udrs->sd, (char*)udrs->putbytes, remain);
-           if(cnt == -1) perror("ERROR udr_work(),  read() failure: ");
-           udrs->putbytes += cnt;
-           if( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->getbytes) < size )
-           {   udr_errno =  UDIErrorIPCInternal;
-               return -1;              /* return error code */
-           }
-       }               /* read data from character stream buffer */
-       memcpy((char*)object_p,  udrs->getbytes, size);
-       udrs->getbytes += size;
-    }
-    else
-    {  udr_errno =  UDIErrorIPCInternal;
-       return -1;
-    }
-    return 0;
-}
-
-/************************************************************* UDR_UDIResource
-*/
-int udr_UDIResource(udrs, object_p)
-UDR*   udrs;
-UDIResource*   object_p;
-{
-    int        retval;
-
-    retval = udr_CPUSpace(udrs, &object_p->Space);
-    retval = retval |  udr_CPUOffset(udrs, &object_p->Offset);
-    return retval;
-}
-
-/**************************************************************** UDR_UDIRange
-*/
-int udr_UDIRange(udrs, object_p)
-UDR*           udrs;
-UDIRange*      object_p;
-{
-    int        retval;
-
-    retval = udr_CPUOffset(udrs, &object_p->Low);
-    retval = retval | udr_CPUOffset(udrs, &object_p->High);
-    return retval;
-}
-
-/********************************************************** UDR_UDIMemoryRange
-*/
-int udr_UDIMemoryRange(udrs, object_p)
-UDR*           udrs;
-UDIMemoryRange*        object_p;
-{
-    int        retval;
-
-    retval = udr_CPUSpace(udrs, &object_p->Space);
-    retval = retval | udr_CPUOffset(udrs, &object_p->Offset);
-    retval = retval | udr_CPUSizeT(udrs, &object_p->Size);
-    return retval;
-}
-
-/****************************************************************** UDR_string
-*/
-int udr_string(udrs, sp)
-UDR*   udrs;
-char*  sp;
-{
-    int        len, retval;
-
-    if(udrs->udr_op == UDR_ENCODE)
-    {
-       if(sp)
-       {   len = strlen(sp) + 1;
-           retval = udr_UDIInt32(udrs, &len);
-           retval = retval | udr_work(udrs, sp, len);
-       }
-       else    /* deal with NULL pointer */
-       {   len = 0;
-           retval = udr_UDIInt32(udrs, &len);
-       }
-    }
-    else if(udrs->udr_op == UDR_DECODE)
-    {
-       retval = udr_UDIInt32(udrs, &len);
-       if(len)
-           retval = retval | udr_work(udrs, sp, len);
-       else    *sp = '\0';                     /* terminate string */
-    }
-    else
-    {  udr_errno =  UDIErrorIPCInternal;
-       return -1;
-    }
-    return retval;
-}
-
-/******************************************************************* UDR_BYTES
-*/
-int udr_bytes(udrs, ptr, len)
-UDR*   udrs;
-char*  ptr;
-int    len;
-{
-    return udr_work(udrs, ptr, len);
-}
-
-/********************************************************************* UDR_INT
-*/
-int udr_int(udrs, int_p)
-UDR*   udrs;
-int*   int_p;
-{
-    int ret_val;
-    UDIInt32  udr_obj;                 /* object of know size */
-
-    if(udrs->udr_op == UDR_ENCODE)
-    {
-        udr_obj = *int_p;              /* copy into know object size */
-        return udr_UDIInt32(udrs, &udr_obj);
-    }
-    else if(udrs->udr_op == UDR_DECODE)
-    {
-        ret_val = udr_UDIInt32(udrs, &udr_obj);        /* get object of known size */
-       *int_p = udr_obj;
-       return ret_val;
-    }
-    else
-    {  udr_errno =  UDIErrorIPCInternal;
-       return -1;
-    }
-}
-
-/****************************************************************** UDR_INLINE
-*/
-char* udr_inline(udrs, size)
-UDR*   udrs;
-int    size;
-{
-    if(udrs->udr_op != udrs->previous_op)
-    {  if(udrs->previous_op == 0)
-       {   udr_errno =  UDIErrorIPCInternal;
-           return 0;
-        }
-       udrs->previous_op= udrs->udr_op;
-       udrs->putbytes = udrs->buff;
-       udrs->getbytes = udrs->buff;
-    }
-    if(udrs->udr_op == UDR_ENCODE)
-    {
-       if(udrs->putbytes + size > udrs->bufsize + udrs->buff)
-          return 0;
-       udrs->putbytes += size;
-       return udrs->putbytes - size;
-    }
-    else if(udrs->udr_op == UDR_DECODE)
-    {
-       if(udrs->getbytes + size > udrs->bufsize + udrs->buff)
-          return 0;
-       udrs->getbytes += size;
-       return udrs->getbytes - size;
-    }
-    else
-    {  udr_errno =  UDIErrorIPCInternal;
-       return 0;
-    }
-}
-
-/****************************************************************** UDR_GETPOS
-*/
-char*  udr_getpos(udrs)
-UDR*   udrs;
-{
-    if(udrs->udr_op == UDR_ENCODE)
-    {
-       return udrs->putbytes;
-    }
-    else if(udrs->udr_op == UDR_DECODE)
-    {
-       return udrs->getbytes;
-    }
-    else
-    {  udr_errno =  UDIErrorIPCInternal;
-       return 0;
-    }
-}
-
-/****************************************************************** UDR_SETPOS
-*/
-int    udr_setpos(udrs, pos)
-UDR*   udrs;
-char*  pos;
-{
-    if( ((UDIUInt32)pos > (UDIUInt32)(udrs->buff) + (UDIUInt32)(udrs->bufsize))
-     || ((UDIUInt32)pos < (UDIUInt32)(udrs->buff) ) )
-    {  udr_errno =  UDIErrorIPCInternal;
-       return 0;
-    }
-    if(udrs->udr_op == UDR_ENCODE)
-    {
-       udrs->putbytes = pos;
-       return 1;
-    }
-    else if(udrs->udr_op == UDR_DECODE)
-    {
-       udrs->getbytes = pos;
-       return 1;
-    }
-    else
-    {  udr_errno =  UDIErrorIPCInternal;
-       return 0;
-    }
-}
-
-/***************************************************************** UDR_READNOW
-* Try and ensure "size" bytes are available in the
-* receive buffer character stream.
-*/
-int    udr_readnow(udrs, size)
-UDR*   udrs;
-int    size;
-{
-    int        cnt, remain;
-
-    if(udrs->udr_op == UDR_ENCODE)
-    {
-       udr_errno =  UDIErrorIPCInternal;
-       return -1;
-    }
-    else if(udrs->udr_op == UDR_DECODE)
-    {
-       if( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->getbytes) < size )
-       {                /* need more data in character stream buffer */
-                   remain = (UDIUInt32)(udrs->bufsize) -
-               ( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->buff) );
-           cnt = read(udrs->sd, (char*)udrs->putbytes, remain);
-           if(cnt == -1) perror("ERROR udr_work(),  read() failure: ");
-           udrs->putbytes += cnt;
-           if( (UDIUInt32)(udrs->putbytes)-(UDIUInt32)(udrs->getbytes) < size )
-           {  fprintf(stderr,"ERROR, udr_readnow() too few bytes in stream\n");
-              return -1;               /* return error code */
-           }
-       }               
-    }
-    else
-    {  udr_errno =  UDIErrorIPCInternal;
-       return -1;
-    }
-    return 0;
-}
-
-/******************************************************************* UDR_ALIGN
-*/
-int udr_align(udrs, size)
-UDR*   udrs;
-int    size;
-{
-    char*   align;
-    int            offset;     
-
-    align = udr_getpos(udrs);
-    offset = size - ((int)align & (size -1));
-    offset = offset & (size -1);
-    if(offset) udr_setpos(udrs, align + offset);
-}
-#endif /* __GO32__ */
diff --git a/gdb/29k-share/udi_soc b/gdb/29k-share/udi_soc
deleted file mode 100644 (file)
index 343317f..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-# @(#)udi_soc  2.1 Daniel Mann
-# NOTE: the Session string must not start whith white-space characters.
-# Format of string is:
-# <session>   <domain> <soc_name|host_name> <tip_exe> <pass to UDIconnect>
-soc2cayman  AF_INET            cayman      /bin/udi_tip   ...
-soc2tip     AF_UNIX   astring              tip.exe        ...
-cuba        AF_UNIX   soc_name    ../bin.68020/udi_tip    stuff to pass
-cayman      AF_INET   cayman      this_entry_not_matter   stuff to pass
-iss         AF_UNIX   *                  sun4/isstip   -r osboot
index da69aa367d8416927483af5342cc1c5d21970c1c..634eb356021e628059a76e12d2169bdcf025e6cc 100644 (file)
@@ -1,3 +1,8 @@
+2002-05-30  Andrew Cagney  <ac131313@redhat.com>
+
+       * a29k-share/: Delete directory.
+       * remote-vx29k.c: Delete file.
+
 2002-05-30  Jason Thorpe  <thorpej@wasabisystems.com>
 
        * config/djgpp/fnchange.lst: Add ns32knbsd-nat.c, ns32knbsd-tdep.c,
diff --git a/gdb/remote-vx29k.c b/gdb/remote-vx29k.c
deleted file mode 100644 (file)
index 798cd08..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-/* Am29k-dependent portions of the RPC protocol
-
-   Contributed by Wind River Systems.
-
-   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 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.  */
-
-#include <stdio.h>
-#include "defs.h"
-
-#include "vx-share/regPacket.h"
-#include "frame.h"
-#include "inferior.h"
-#include "target.h"
-#include "gdbcore.h"
-#include "command.h"
-#include "symtab.h"
-#include "symfile.h"           /* for struct complaint */
-#include "regcache.h"
-
-#include "gdb_string.h"
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/socket.h>
-
-#ifdef _AIX                    /* IBM claims "void *malloc()" not char * */
-#define malloc bogon_malloc
-#endif
-
-#include <rpc/rpc.h>
-#include <sys/time.h>          /* UTek's <rpc/rpc.h> doesn't #incl this */
-#include <netdb.h>
-#include "vx-share/ptrace.h"
-#include "vx-share/xdr_ptrace.h"
-#include "vx-share/xdr_ld.h"
-#include "vx-share/xdr_rdb.h"
-#include "vx-share/dbgRpcLib.h"
-
-/* get rid of value.h if possible */
-#include <value.h>
-#include <symtab.h>
-
-/* Flag set if target has fpu */
-
-extern int target_has_fp;
-
-/* Generic register read/write routines in remote-vx.c.  */
-
-extern void net_read_registers ();
-extern void net_write_registers ();
-
-/* Read a register or registers from the VxWorks target.
-   REGNO is the register to read, or -1 for all; currently,
-   it is ignored.  FIXME look at regno to improve efficiency.  */
-
-void
-vx_read_register (int regno)
-{
-  char am29k_greg_packet[AM29K_GREG_PLEN];
-  char am29k_fpreg_packet[AM29K_FPREG_PLEN];
-
-  /* Get general-purpose registers.  When copying values into
-     registers [], don't assume that a location in registers []
-     is properly aligned for the target data type.  */
-
-  net_read_registers (am29k_greg_packet, AM29K_GREG_PLEN, PTRACE_GETREGS);
-
-  /* Now copy the register values into registers[].
-     Note that this code depends on the ordering of the REGNUMs
-     as defined in "tm-29k.h".  */
-
-  bcopy (&am29k_greg_packet[AM29K_R_GR96],
-        &registers[REGISTER_BYTE (GR96_REGNUM)], 160 * AM29K_GREG_SIZE);
-  bcopy (&am29k_greg_packet[AM29K_R_VAB],
-        &registers[REGISTER_BYTE (VAB_REGNUM)], 15 * AM29K_GREG_SIZE);
-  registers[REGISTER_BYTE (INTE_REGNUM)] = am29k_greg_packet[AM29K_R_INTE];
-  bcopy (&am29k_greg_packet[AM29K_R_RSP],
-        &registers[REGISTER_BYTE (GR1_REGNUM)], 5 * AM29K_GREG_SIZE);
-
-  /* PAD For now, don't care about exop register */
-
-  memset (&registers[REGISTER_BYTE (EXO_REGNUM)], '\0', AM29K_GREG_SIZE);
-
-  /* If the target has floating point registers, fetch them.
-     Otherwise, zero the floating point register values in
-     registers[] for good measure, even though we might not
-     need to.  */
-
-  if (target_has_fp)
-    {
-      net_read_registers (am29k_fpreg_packet, AM29K_FPREG_PLEN,
-                         PTRACE_GETFPREGS);
-      registers[REGISTER_BYTE (FPE_REGNUM)] = am29k_fpreg_packet[AM29K_R_FPE];
-      registers[REGISTER_BYTE (FPS_REGNUM)] = am29k_fpreg_packet[AM29K_R_FPS];
-
-      /* PAD For now, don't care about registers (?) AI0 to q */
-
-      memset (&registers[REGISTER_BYTE (161)], '\0', 21 * AM29K_FPREG_SIZE);
-    }
-  else
-    {
-      memset (&registers[REGISTER_BYTE (FPE_REGNUM)], '\0', AM29K_FPREG_SIZE);
-      memset (&registers[REGISTER_BYTE (FPS_REGNUM)], '\0', AM29K_FPREG_SIZE);
-
-      /* PAD For now, don't care about registers (?) AI0 to q */
-
-      memset (&registers[REGISTER_BYTE (161)], '\0', 21 * AM29K_FPREG_SIZE);
-    }
-
-  /* Mark the register cache valid.  */
-
-  registers_fetched ();
-}
-
-/* Store a register or registers into the VxWorks target.
-   REGNO is the register to store, or -1 for all; currently,
-   it is ignored.  FIXME look at regno to improve efficiency.  */
-
-void
-vx_write_register (int regno)
-{
-  char am29k_greg_packet[AM29K_GREG_PLEN];
-  char am29k_fpreg_packet[AM29K_FPREG_PLEN];
-
-  /* Store general purpose registers.  When copying values from
-     registers [], don't assume that a location in registers []
-     is properly aligned for the target data type.  */
-
-  bcopy (&registers[REGISTER_BYTE (GR96_REGNUM)],
-        &am29k_greg_packet[AM29K_R_GR96], 160 * AM29K_GREG_SIZE);
-  bcopy (&registers[REGISTER_BYTE (VAB_REGNUM)],
-        &am29k_greg_packet[AM29K_R_VAB], 15 * AM29K_GREG_SIZE);
-  am29k_greg_packet[AM29K_R_INTE] = registers[REGISTER_BYTE (INTE_REGNUM)];
-  bcopy (&registers[REGISTER_BYTE (GR1_REGNUM)],
-        &am29k_greg_packet[AM29K_R_RSP], 5 * AM29K_GREG_SIZE);
-
-  net_write_registers (am29k_greg_packet, AM29K_GREG_PLEN, PTRACE_SETREGS);
-
-  /* Store floating point registers if the target has them.  */
-
-  if (target_has_fp)
-    {
-      am29k_fpreg_packet[AM29K_R_FPE] = registers[REGISTER_BYTE (FPE_REGNUM)];
-      am29k_fpreg_packet[AM29K_R_FPS] = registers[REGISTER_BYTE (FPS_REGNUM)];
-
-      net_write_registers (am29k_fpreg_packet, AM29K_FPREG_PLEN,
-                          PTRACE_SETFPREGS);
-    }
-}
-
-/* VxWorks zeroes fp when the task is initialized; we use this
-   to terminate the frame chain. Chain means here the nominal address of
-   a frame, that is, the return address (lr0) address in the stack. To
-   obtain the frame pointer (lr1) contents, we must add 4 bytes.
-   Note : may be we should modify init_frame_info() to get the frame pointer
-   and store it into the frame_info struct rather than reading its
-   contents when FRAME_CHAIN_VALID is invoked.  THISFRAME is unused.  */
-
-int
-vx29k_frame_chain_valid (CORE_ADDR chain, struct frame_info *thisframe)
-{
-  int fp_contents;
-
-  read_memory ((CORE_ADDR) (chain + 4), (char *) &fp_contents, 4);
-  return (fp_contents != 0);
-}