Convert generic probe interface to C++ (and perform some cleanups)
[external/binutils.git] / gdb / inf-ptrace.h
1 /* Low level child interface to ptrace.
2
3    Copyright (C) 2004-2017 Free Software Foundation, Inc.
4
5    This file is part of GDB.
6
7    This program is free software; you can redistribute it and/or modify
8    it under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 3 of the License, or
10    (at your option) any later version.
11
12    This program is distributed in the hope that it will be useful,
13    but WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15    GNU General Public License for more details.
16
17    You should have received a copy of the GNU General Public License
18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
19
20 #ifndef INF_PTRACE_H
21 #define INF_PTRACE_H
22
23 /* Create a prototype ptrace target.  The client can override it with
24    local methods.  */
25
26 extern struct target_ops *inf_ptrace_target (void);
27
28 /* Create a "traditional" ptrace target.  REGISTER_U_OFFSET should be
29    a function returning the offset within the user area where a
30    particular register is stored.  */
31
32 extern struct target_ops *
33   inf_ptrace_trad_target (CORE_ADDR (*register_u_offset)
34                                         (struct gdbarch *, int, int));
35
36 /* Return which PID to pass to ptrace in order to observe/control the
37    tracee identified by PTID.  */
38
39 extern pid_t get_ptrace_pid (ptid_t);
40
41
42 /* Cleanup the inferior after a successful ptrace detach.  */
43 extern void inf_ptrace_detach_success (struct target_ops *ops);
44
45 #endif