xref: /openbsd-src/gnu/usr.bin/binutils/gdb/rdi-share/ardi.h (revision 63addd46c1e40ca0f49488ddcdc4ab598023b0c1)
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