]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - gdb/fbsd-nat.h
Automatic date update in version.in
[thirdparty/binutils-gdb.git] / gdb / fbsd-nat.h
CommitLineData
578c1c03
MK
1/* Native-dependent code for FreeBSD.
2
b811d2c2 3 Copyright (C) 2004-2020 Free Software Foundation, Inc.
578c1c03
MK
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
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
578c1c03
MK
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
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
578c1c03
MK
19
20#ifndef FBSD_NAT_H
21#define FBSD_NAT_H
22
d55e5aa6 23#include "inf-ptrace.h"
4de283e4 24#include <sys/proc.h>
d55e5aa6 25
f6ac5f3d
PA
26#ifdef TRAP_BRKPT
27/* MIPS does not set si_code for SIGTRAP. sparc64 reports
28 non-standard values in si_code for SIGTRAP. */
29# if !defined(__mips__) && !defined(__sparc64__)
30# define USE_SIGTRAP_SIGINFO
31# endif
32#endif
33
34/* A prototype FreeBSD target. */
35
36class fbsd_nat_target : public inf_ptrace_target
37{
38public:
39 char *pid_to_exec_file (int pid) override;
40
bd583225 41 int find_memory_regions (find_memory_region_ftype func, void *data) override;
f6ac5f3d 42
bd583225 43 bool info_proc (const char *, enum info_proc_what) override;
f6ac5f3d 44
f6ac5f3d
PA
45 enum target_xfer_status xfer_partial (enum target_object object,
46 const char *annex,
47 gdb_byte *readbuf,
48 const gdb_byte *writebuf,
49 ULONGEST offset, ULONGEST len,
50 ULONGEST *xfered_len) override;
f6ac5f3d
PA
51
52#ifdef PT_LWPINFO
57810aa7 53 bool thread_alive (ptid_t ptid) override;
a068643d 54 std::string pid_to_str (ptid_t) override;
f6ac5f3d
PA
55
56#ifdef HAVE_STRUCT_PTRACE_LWPINFO_PL_TDNAME
57 const char *thread_name (struct thread_info *) override;
58#endif
59
60 void update_thread_list () override;
61
62 thread_control_capabilities get_thread_control_capabilities () override
63 { return tc_schedlock; }
64
65 void resume (ptid_t, int, enum gdb_signal) override;
66
67 ptid_t wait (ptid_t, struct target_waitstatus *, int) override;
68
69 void post_startup_inferior (ptid_t) override;
70 void post_attach (int) override;
71
72#ifdef USE_SIGTRAP_SIGINFO
57810aa7
PA
73 bool supports_stopped_by_sw_breakpoint () override;
74 bool stopped_by_sw_breakpoint () override;
f6ac5f3d
PA
75#endif
76
77#ifdef TDP_RFPPWAIT
5ab2fbf1 78 bool follow_fork (bool, bool) override;
f6ac5f3d
PA
79
80 int insert_fork_catchpoint (int) override;
81 int remove_fork_catchpoint (int) override;
82
83 int insert_vfork_catchpoint (int) override;
84 int remove_vfork_catchpoint (int) override;
85#endif
86
87#ifdef PL_FLAG_EXEC
88 int insert_exec_catchpoint (int) override;
89 int remove_exec_catchpoint (int) override;
90#endif
91
92#ifdef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE
93 int set_syscall_catchpoint (int, bool, int, gdb::array_view<const int>)
94 override;
95#endif
96#endif /* PT_LWPINFO */
97};
578c1c03 98
578c1c03 99#endif /* fbsd-nat.h */