agent.h revision 1.1 1 1.1 christos /* Shared utility routines for GDB to interact with agent.
2 1.1 christos
3 1.1 christos Copyright (C) 2009-2020 Free Software Foundation, Inc.
4 1.1 christos
5 1.1 christos This file is part of GDB.
6 1.1 christos
7 1.1 christos This program is free software; you can redistribute it and/or modify
8 1.1 christos it under the terms of the GNU General Public License as published by
9 1.1 christos the Free Software Foundation; either version 3 of the License, or
10 1.1 christos (at your option) any later version.
11 1.1 christos
12 1.1 christos This program is distributed in the hope that it will be useful,
13 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of
14 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 1.1 christos GNU General Public License for more details.
16 1.1 christos
17 1.1 christos You should have received a copy of the GNU General Public License
18 1.1 christos along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 1.1 christos
20 1.1 christos #ifndef COMMON_AGENT_H
21 1.1 christos #define COMMON_AGENT_H
22 1.1 christos
23 1.1 christos #include "gdbsupport/preprocessor.h"
24 1.1 christos
25 1.1 christos int agent_run_command (int pid, const char *cmd, int len);
26 1.1 christos
27 1.1 christos int agent_look_up_symbols (void *);
28 1.1 christos
29 1.1 christos #define IPA_SYM_EXPORTED_NAME(SYM) gdb_agent_ ## SYM
30 1.1 christos
31 1.1 christos /* Define an entry in an IPA symbol list array. If IPA_SYM is used, the macro
32 1.1 christos IPA_SYM_STRUCT_NAME must be defined to the structure name holding the IPA
33 1.1 christos symbol addresses in that particular file, before including
34 1.1 christos gdbsupport/agent.h. */
35 1.1 christos #define IPA_SYM(SYM) \
36 1.1 christos { \
37 1.1 christos STRINGIFY (IPA_SYM_EXPORTED_NAME (SYM)), \
38 1.1 christos offsetof (IPA_SYM_STRUCT_NAME, addr_ ## SYM) \
39 1.1 christos }
40 1.1 christos
41 1.1 christos /* The size in bytes of the buffer used to talk to the IPA helper
42 1.1 christos thread. */
43 1.1 christos #define IPA_CMD_BUF_SIZE 1024
44 1.1 christos
45 1.1 christos bool agent_loaded_p (void);
46 1.1 christos
47 1.1 christos extern bool debug_agent;
48 1.1 christos
49 1.1 christos extern bool use_agent;
50 1.1 christos
51 1.1 christos /* Capability of agent. Different agents may have different capabilities,
52 1.1 christos such as installing fast tracepoint or evaluating breakpoint conditions.
53 1.1 christos Capabilities are represented by bit-maps, and each capability occupies one
54 1.1 christos bit. */
55 1.1 christos
56 1.1 christos enum agent_capa
57 1.1 christos {
58 1.1 christos /* Capability to install fast tracepoint. */
59 1.1 christos AGENT_CAPA_FAST_TRACE = 0x1,
60 1.1 christos /* Capability to install static tracepoint. */
61 1.1 christos AGENT_CAPA_STATIC_TRACE = (0x1 << 1),
62 1.1 christos };
63 1.1 christos
64 1.1 christos bool agent_capability_check (enum agent_capa);
65 1.1 christos
66 1.1 christos void agent_capability_invalidate (void);
67 1.1 christos
68 1.1 christos #endif /* COMMON_AGENT_H */
69