Commit | Line | Data |
---|---|---|
c906108c SS |
1 | /* Native-dependent definitions for Sparc running SVR4. |
2 | Copyright 1994 Free Software Foundation, Inc. | |
3 | ||
c5aa993b | 4 | This file is part of GDB. |
c906108c | 5 | |
c5aa993b JM |
6 | This program is free software; you can redistribute it and/or modify |
7 | it under the terms of the GNU General Public License as published by | |
8 | the Free Software Foundation; either version 2 of the License, or | |
9 | (at your option) any later version. | |
c906108c | 10 | |
c5aa993b JM |
11 | This program is distributed in the hope that it will be useful, |
12 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
14 | GNU General Public License for more details. | |
c906108c | 15 | |
c5aa993b JM |
16 | You should have received a copy of the GNU General Public License |
17 | along with this program; if not, write to the Free Software | |
18 | Foundation, Inc., 59 Temple Place - Suite 330, | |
19 | Boston, MA 02111-1307, USA. */ | |
c906108c SS |
20 | |
21 | /* Include the generic SVR4 definitions. */ | |
22 | ||
23 | #include <nm-sysv4.h> | |
24 | ||
25 | /* Before storing, we need to read all the registers. */ | |
26 | ||
27 | #define CHILD_PREPARE_TO_STORE() read_register_bytes (0, NULL, REGISTER_BYTES) | |
28 | ||
29 | /* Solaris PSRVADDR support does not seem to include a place for nPC. */ | |
30 | ||
31 | #define PRSVADDR_BROKEN | |
32 | ||
0a415da9 AC |
33 | /* gdb wants to use the prgregset_t interface rather than |
34 | the gregset_t interface, partly because that's what's | |
35 | used in core-sol2.c */ | |
36 | ||
37 | #define GDB_GREGSET_T prgregset_t | |
38 | #define GDB_FPREGSET_T prfpregset_t | |
39 | ||
2f09097b ND |
40 | #ifdef NEW_PROC_API /* Solaris 6 and above can do HW watchpoints */ |
41 | ||
42 | #define TARGET_HAS_HARDWARE_WATCHPOINTS | |
43 | ||
44 | /* The man page for proc4 on solaris 6 and 7 says that the system | |
45 | can support "thousands" of hardware watchpoints, but gives no | |
46 | method for finding out how many. So just tell GDB 'yes'. */ | |
47 | #define TARGET_CAN_USE_HARDWARE_WATCHPOINT(TYPE, CNT, OT) 1 | |
48 | ||
49 | /* When a hardware watchpoint fires off the PC will be left at the | |
50 | instruction following the one which caused the watchpoint. | |
51 | It will *NOT* be necessary for GDB to step over the watchpoint. */ | |
52 | #define HAVE_CONTINUABLE_WATCHPOINT | |
53 | ||
a14ed312 | 54 | extern int procfs_stopped_by_watchpoint (int); |
2f09097b ND |
55 | #define STOPPED_BY_WATCHPOINT(W) \ |
56 | procfs_stopped_by_watchpoint(inferior_pid) | |
57 | ||
58 | /* Use these macros for watchpoint insertion/deletion. */ | |
59 | /* type can be 0: write watch, 1: read watch, 2: access watch (read/write) */ | |
60 | ||
a14ed312 | 61 | extern int procfs_set_watchpoint (int, CORE_ADDR, int, int, int); |
2f09097b ND |
62 | #define target_insert_watchpoint(ADDR, LEN, TYPE) \ |
63 | procfs_set_watchpoint (inferior_pid, ADDR, LEN, TYPE, 1) | |
64 | #define target_remove_watchpoint(ADDR, LEN, TYPE) \ | |
65 | procfs_set_watchpoint (inferior_pid, ADDR, 0, 0, 0) | |
66 | ||
67 | #endif /* NEW_PROC_API */ |