Commit | Line | Data |
---|---|---|
a904c024 AA |
1 | /* Target-dependent code for FreeBSD, architecture independent. |
2 | ||
b811d2c2 | 3 | Copyright (C) 2009-2020 Free Software Foundation, Inc. |
a904c024 AA |
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 FBSD_TDEP_H | |
21 | #define FBSD_TDEP_H | |
22 | ||
23 | extern void fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch); | |
24 | ||
57c2a98a JB |
25 | /* Output the header for "info proc files". */ |
26 | ||
27 | extern void fbsd_info_proc_files_header (); | |
28 | ||
29 | /* Output description of a single file descriptor for "info proc | |
30 | files". The KF_TYPE, KF_FD, KF_FLAGS, KF_OFFSET, KF_VNODE_TYPE, | |
31 | KF_SOCK_DOMAIN, KF_SOCK_TYPE, and KF_SOCK_PROTOCOL parameters | |
32 | should contain the value of the corresponding fields in a 'struct | |
33 | kinfo_file'. The KF_SA_LOCAL, KF_SA_PEER, and KF_PATH parameters | |
34 | should contain pointers to the corresponding fields in a 'struct | |
35 | kinfo_file'. */ | |
36 | ||
37 | extern void fbsd_info_proc_files_entry (int kf_type, int kf_fd, int kf_flags, | |
38 | LONGEST kf_offset, int kf_vnode_type, | |
39 | int kf_sock_domain, int kf_sock_type, | |
40 | int kf_sock_protocol, | |
41 | const void *kf_sa_local, | |
42 | const void *kf_sa_peer, | |
43 | const void *kf_path); | |
44 | ||
6f3b1098 JB |
45 | /* Output the header for "info proc mappings". ADDR_BIT is the size |
46 | of a virtual address in bits. */ | |
47 | ||
48 | extern void fbsd_info_proc_mappings_header (int addr_bit); | |
49 | ||
50 | /* Output description of a single memory range for "info proc | |
51 | mappings". ADDR_BIT is the size of a virtual address in bits. The | |
52 | KVE_START, KVE_END, KVE_OFFSET, KVE_FLAGS, and KVE_PROTECTION | |
53 | parameters should contain the value of the corresponding fields in | |
54 | a 'struct kinfo_vmentry'. The KVE_PATH parameter should contain a | |
55 | pointer to the 'kve_path' field in a 'struct kinfo_vmentry'. */ | |
56 | ||
57 | extern void fbsd_info_proc_mappings_entry (int addr_bit, ULONGEST kve_start, | |
58 | ULONGEST kve_end, | |
59 | ULONGEST kve_offset, | |
60 | int kve_flags, int kve_protection, | |
61 | const void *kve_path); | |
d2176225 | 62 | |
945f3901 JB |
63 | /* Helper function to fetch the address of a thread-local variable. |
64 | DTV_ADDR is the base address of the thread's dtv array. LM_ADDR is | |
65 | the address of the link_map structure for the associated object | |
66 | file. OFFSET is the offset of the variable in the object file's | |
67 | thread-local variable block. */ | |
68 | ||
69 | extern CORE_ADDR fbsd_get_thread_local_address (struct gdbarch *gdbarch, | |
70 | CORE_ADDR dtv_addr, | |
71 | CORE_ADDR lm_addr, | |
72 | CORE_ADDR offset); | |
73 | ||
a904c024 | 74 | #endif /* fbsd-tdep.h */ |