OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-7.1/] [sim/] [arm/] [gdbhost.c] - Diff between revs 834 and 842

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 834 Rev 842
/*  gdbhost.c -- ARMulator RDP to gdb comms code:  ARM6 Instruction Emulator.
/*  gdbhost.c -- ARMulator RDP to gdb comms code:  ARM6 Instruction Emulator.
    Copyright (C) 1994 Advanced RISC Machines Ltd.
    Copyright (C) 1994 Advanced RISC Machines Ltd.
 
 
    This program is free software; you can redistribute it and/or modify
    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
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.
    (at your option) any later version.
 
 
    This program is distributed in the hope that it will be useful,
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
    GNU General Public License for more details.
 
 
    You should have received a copy of the GNU General Public License
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
 
 
/***********************************************************/
/***********************************************************/
/* Functions that communicate info back to the debugger... */
/* Functions that communicate info back to the debugger... */
/***********************************************************/
/***********************************************************/
 
 
#include <stdio.h>
#include <stdio.h>
#include <stdarg.h>
#include <stdarg.h>
#include "armdefs.h"
#include "armdefs.h"
#include "communicate.h"
#include "communicate.h"
#include "dbg_rdi.h"
#include "dbg_rdi.h"
#include "armos.h"
#include "armos.h"
 
 
#define OS_SendNothing 0x0
#define OS_SendNothing 0x0
#define OS_SendChar 0x1
#define OS_SendChar 0x1
#define OS_SendWord 0x2
#define OS_SendWord 0x2
#define OS_SendString 0x3
#define OS_SendString 0x3
 
 
/* Defined in kid.c */
/* Defined in kid.c */
extern int wait_for_osreply (ARMword * reply);
extern int wait_for_osreply (ARMword * reply);
 
 
/* A pipe for handling SWI return values that goes straight from the */
/* A pipe for handling SWI return values that goes straight from the */
/* parent to the ARMulator host interface, bypassing the childs RDP */
/* parent to the ARMulator host interface, bypassing the childs RDP */
/* to RDI interpreter */
/* to RDI interpreter */
int DebuggerARMul[2];
int DebuggerARMul[2];
 
 
/* The pipes between the two processes */
/* The pipes between the two processes */
int mumkid[2];
int mumkid[2];
int kidmum[2];
int kidmum[2];
 
 
void
void
myprint (void *arg, const char *format, va_list ap)
myprint (void *arg, const char *format, va_list ap)
{
{
#ifdef DEBUG
#ifdef DEBUG
  fprintf (stderr, "Host: myprint\n");
  fprintf (stderr, "Host: myprint\n");
#endif
#endif
  vfprintf (stderr, format, ap);
  vfprintf (stderr, format, ap);
}
}
 
 
 
 
/* Waits for a keypress on the debuggers' keyboard */
/* Waits for a keypress on the debuggers' keyboard */
void
void
mypause (void *arg)
mypause (void *arg)
{
{
#ifdef DEBUG
#ifdef DEBUG
  fprintf (stderr, "Host: mypause\n");
  fprintf (stderr, "Host: mypause\n");
#endif
#endif
}                               /* I do love exciting functions */
}                               /* I do love exciting functions */
 
 
void
void
mywritec (void *arg, int c)
mywritec (void *arg, int c)
{
{
#ifdef DEBUG
#ifdef DEBUG
  fprintf (stderr, "Mywrite : %c\n", c);
  fprintf (stderr, "Mywrite : %c\n", c);
#endif
#endif
  MYwrite_char (kidmum[1], RDP_OSOp);   /* OS Operation Request Message */
  MYwrite_char (kidmum[1], RDP_OSOp);   /* OS Operation Request Message */
  MYwrite_word (kidmum[1], SWI_WriteC); /* Print... */
  MYwrite_word (kidmum[1], SWI_WriteC); /* Print... */
  MYwrite_char (kidmum[1], OS_SendChar);        /*  ...a single character */
  MYwrite_char (kidmum[1], OS_SendChar);        /*  ...a single character */
  MYwrite_char (kidmum[1], (unsigned char) c);
  MYwrite_char (kidmum[1], (unsigned char) c);
 
 
  wait_for_osreply ((ARMword *) 0);
  wait_for_osreply ((ARMword *) 0);
}
}
 
 
int
int
myreadc (void *arg)
myreadc (void *arg)
{
{
  char c;
  char c;
  ARMword x;
  ARMword x;
 
 
#ifdef DEBUG
#ifdef DEBUG
  fprintf (stderr, "Host: myreadc\n");
  fprintf (stderr, "Host: myreadc\n");
#endif
#endif
  MYwrite_char (kidmum[1], RDP_OSOp);   /* OS Operation Request Message */
  MYwrite_char (kidmum[1], RDP_OSOp);   /* OS Operation Request Message */
  MYwrite_word (kidmum[1], SWI_ReadC);  /* Read... */
  MYwrite_word (kidmum[1], SWI_ReadC);  /* Read... */
  MYwrite_char (kidmum[1], OS_SendNothing);
  MYwrite_char (kidmum[1], OS_SendNothing);
 
 
  c = wait_for_osreply (&x);
  c = wait_for_osreply (&x);
  return (x);
  return (x);
}
}
 
 
 
 
int
int
mywrite (void *arg, char const *buffer, int len)
mywrite (void *arg, char const *buffer, int len)
{
{
#ifdef DEBUG
#ifdef DEBUG
  fprintf (stderr, "Host: mywrite\n");
  fprintf (stderr, "Host: mywrite\n");
#endif
#endif
  return 0;
  return 0;
}
}
 
 
char *
char *
mygets (void *arg, char *buffer, int len)
mygets (void *arg, char *buffer, int len)
{
{
#ifdef DEBUG
#ifdef DEBUG
  fprintf (stderr, "Host: mygets\n");
  fprintf (stderr, "Host: mygets\n");
#endif
#endif
  return buffer;
  return buffer;
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.