1b725ae77Skettenis /* 2b725ae77Skettenis * Copyright (C) 1995 Advanced RISC Machines Limited. All rights reserved. 3b725ae77Skettenis * 4b725ae77Skettenis * This software may be freely used, copied, modified, and distributed 5b725ae77Skettenis * provided that the above copyright notice is preserved in all copies of the 6b725ae77Skettenis * software. 7b725ae77Skettenis */ 8b725ae77Skettenis 9b725ae77Skettenis /* 10b725ae77Skettenis * ardi.h 11b725ae77Skettenis * ADP RDI interfaces 12b725ae77Skettenis * 13*63addd46Skettenis * $Revision: 1.3 $ 14*63addd46Skettenis * $Date: 2004/12/27 14:00:54 $ 15b725ae77Skettenis */ 16b725ae77Skettenis 17b725ae77Skettenis #include "host.h" 18b725ae77Skettenis 19b725ae77Skettenis typedef unsigned32 ARMword; 20b725ae77Skettenis 21b725ae77Skettenis #include "dbg_rdi.h" 22b725ae77Skettenis #include "dbg_conf.h" 23b725ae77Skettenis 24b725ae77Skettenis extern char *commandline; 25b725ae77Skettenis extern ARMword last_vector_catch; 26b725ae77Skettenis 27b725ae77Skettenis /* This is the size of buffers that are asked for by standard channels 28b725ae77Skettenis * Non standard channels may wish to copy this! 29b725ae77Skettenis */ 30b725ae77Skettenis extern int Armsd_BufferSize; 31b725ae77Skettenis 32b725ae77Skettenis typedef int (*host_ChannelBufferFilledFnPtr)(unsigned int ,unsigned char ** ,void *); 33b725ae77Skettenis 34b725ae77Skettenis int angel_RDI_open( 35b725ae77Skettenis unsigned type, Dbg_ConfigBlock const *config, 36b725ae77Skettenis Dbg_HostosInterface const *hostif, struct Dbg_MCState *dbg_state); 37b725ae77Skettenis int angel_RDI_close(void); 38b725ae77Skettenis 39b725ae77Skettenis int angel_RDI_read(ARMword source, void *dest, unsigned *nbytes); 40b725ae77Skettenis int angel_RDI_write(const void *source, ARMword dest, unsigned *nbytes); 41b725ae77Skettenis 42b725ae77Skettenis int angel_RDI_CPUread(unsigned mode, unsigned long mask, ARMword *buffer); 43b725ae77Skettenis int angel_RDI_CPUwrite(unsigned mode, unsigned long mask, 44b725ae77Skettenis ARMword const *buffer); 45b725ae77Skettenis 46b725ae77Skettenis int angel_RDI_CPread(unsigned CPnum, unsigned long mask, ARMword *buffer); 47b725ae77Skettenis int angel_RDI_CPwrite(unsigned CPnum, unsigned long mask, 48b725ae77Skettenis ARMword const *buffer); 49b725ae77Skettenis 50b725ae77Skettenis int angel_RDI_setbreak(ARMword address, unsigned type, ARMword bound, 51b725ae77Skettenis PointHandle *handle); 52b725ae77Skettenis int angel_RDI_clearbreak(PointHandle handle); 53b725ae77Skettenis 54b725ae77Skettenis int angel_RDI_setwatch(ARMword address, unsigned type, unsigned datatype, 55b725ae77Skettenis ARMword bound, PointHandle *handle); 56b725ae77Skettenis int angel_RDI_clearwatch(PointHandle handle); 57b725ae77Skettenis 58b725ae77Skettenis int angel_RDI_pointinq(ARMword *address, unsigned type, unsigned datatype, 59b725ae77Skettenis ARMword *bound); 60b725ae77Skettenis 61b725ae77Skettenis int angel_RDI_execute(PointHandle *handle); 62b725ae77Skettenis 63b725ae77Skettenis void angel_RDI_stop_request(void); 64b725ae77Skettenis 65b725ae77Skettenis int angel_RDI_step(unsigned ninstr, PointHandle *handle); 66b725ae77Skettenis 67b725ae77Skettenis int angel_RDI_info(unsigned type, ARMword *arg1, ARMword *arg2); 68b725ae77Skettenis 69b725ae77Skettenis int angel_RDI_AddConfig(unsigned long nbytes); 70b725ae77Skettenis 71b725ae77Skettenis int angel_RDI_LoadConfigData(unsigned long nbytes, char const *data); 72b725ae77Skettenis 73b725ae77Skettenis int angel_RDI_SelectConfig(RDI_ConfigAspect aspect, char const *name, 74b725ae77Skettenis RDI_ConfigMatchType matchtype, unsigned versionreq, 75b725ae77Skettenis unsigned *versionp); 76b725ae77Skettenis 77b725ae77Skettenis RDI_NameList const *angel_RDI_drivernames(void); 78b725ae77Skettenis 79b725ae77Skettenis int angel_RDI_LoadAgent(ARMword dest, unsigned long size, getbufferproc *getb, 80b725ae77Skettenis void *getbarg); 81b725ae77Skettenis 82b725ae77Skettenis extern const struct Dbg_HostosInterface *angel_hostif; 83b725ae77Skettenis 84b725ae77Skettenis typedef int angel_RDI_TargetStoppedProc(unsigned stopped_reason, void *arg); 85b725ae77Skettenis 86b725ae77Skettenis extern int angel_RDI_OnTargetStopping(angel_RDI_TargetStoppedProc *fn, 87b725ae77Skettenis void *arg); 88