mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-12-11 06:04:12 +00:00
e9110f4f31
From Grant Edwards <grante@visi.com> This keeps the GUI alive while running an RDI target and lets the STOP button be used to stop the target. * remote-rdi.c (arm_rdi_stop): New function. Implements target_stop. (init_rdi_ops): Set to_stop target vector entry to the above. * rdi-share/ardi.c (stop_request): New variable. Tells when a stop has been requested. (angel_RDI_stop_request): New function. Registers that a stop has been requested. (angel_RDI_ExecuteOrStep): Add call to ui_loop_hook() in loop that waits while target is executing. Initialize and reset stop_request. * rdi-share/ardi.h: Add declaration of angel_RDI_stop_request().
88 lines
2.7 KiB
C
88 lines
2.7 KiB
C
/*
|
|
* Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved.
|
|
*
|
|
* This software may be freely used, copied, modified, and distributed
|
|
* provided that the above copyright notice is preserved in all copies of the
|
|
* software.
|
|
*/
|
|
|
|
/*
|
|
* ardi.h
|
|
* ADP RDI interfaces
|
|
*
|
|
* $Revision$
|
|
* $Date$
|
|
*/
|
|
|
|
#include "host.h"
|
|
|
|
typedef unsigned32 ARMword;
|
|
|
|
#include "dbg_rdi.h"
|
|
#include "dbg_conf.h"
|
|
|
|
extern char *commandline;
|
|
extern ARMword last_vector_catch;
|
|
|
|
/* This is the size of buffers that are asked for by standard channels
|
|
* Non standard channels may wish to copy this!
|
|
*/
|
|
extern int Armsd_BufferSize;
|
|
|
|
typedef int (*host_ChannelBufferFilledFnPtr)(unsigned int ,unsigned char ** ,void *);
|
|
|
|
int angel_RDI_open(
|
|
unsigned type, Dbg_ConfigBlock const *config,
|
|
Dbg_HostosInterface const *hostif, struct Dbg_MCState *dbg_state);
|
|
int angel_RDI_close(void);
|
|
|
|
int angel_RDI_read(ARMword source, void *dest, unsigned *nbytes);
|
|
int angel_RDI_write(const void *source, ARMword dest, unsigned *nbytes);
|
|
|
|
int angel_RDI_CPUread(unsigned mode, unsigned long mask, ARMword *buffer);
|
|
int angel_RDI_CPUwrite(unsigned mode, unsigned long mask,
|
|
ARMword const *buffer);
|
|
|
|
int angel_RDI_CPread(unsigned CPnum, unsigned long mask, ARMword *buffer);
|
|
int angel_RDI_CPwrite(unsigned CPnum, unsigned long mask,
|
|
ARMword const *buffer);
|
|
|
|
int angel_RDI_setbreak(ARMword address, unsigned type, ARMword bound,
|
|
PointHandle *handle);
|
|
int angel_RDI_clearbreak(PointHandle handle);
|
|
|
|
int angel_RDI_setwatch(ARMword address, unsigned type, unsigned datatype,
|
|
ARMword bound, PointHandle *handle);
|
|
int angel_RDI_clearwatch(PointHandle handle);
|
|
|
|
int angel_RDI_pointinq(ARMword *address, unsigned type, unsigned datatype,
|
|
ARMword *bound);
|
|
|
|
int angel_RDI_execute(PointHandle *handle);
|
|
|
|
void angel_RDI_stop_request(void);
|
|
|
|
int angel_RDI_step(unsigned ninstr, PointHandle *handle);
|
|
|
|
int angel_RDI_info(unsigned type, ARMword *arg1, ARMword *arg2);
|
|
|
|
int angel_RDI_AddConfig(unsigned long nbytes);
|
|
|
|
int angel_RDI_LoadConfigData(unsigned long nbytes, char const *data);
|
|
|
|
int angel_RDI_SelectConfig(RDI_ConfigAspect aspect, char const *name,
|
|
RDI_ConfigMatchType matchtype, unsigned versionreq,
|
|
unsigned *versionp);
|
|
|
|
RDI_NameList const *angel_RDI_drivernames(void);
|
|
|
|
int angel_RDI_LoadAgent(ARMword dest, unsigned long size, getbufferproc *getb,
|
|
void *getbarg);
|
|
|
|
extern const struct Dbg_HostosInterface *angel_hostif;
|
|
|
|
typedef int angel_RDI_TargetStoppedProc(unsigned stopped_reason, void *arg);
|
|
|
|
extern int angel_RDI_OnTargetStopping(angel_RDI_TargetStoppedProc *fn,
|
|
void *arg);
|