Commit | Line | Data |
---|---|---|
c906108c | 1 | /* Native-dependent definitions for Sparc running SVR4. |
b6ba6518 | 2 | Copyright 1994, 1996, 1997, 1999, 2000 Free Software Foundation, Inc. |
c906108c | 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 | 20 | |
f88e2c52 AC |
21 | #include "regcache.h" |
22 | ||
c906108c SS |
23 | /* Include the generic SVR4 definitions. */ |
24 | ||
4f2e4a4f | 25 | #include "config/nm-sysv4.h" |
c906108c SS |
26 | |
27 | /* Before storing, we need to read all the registers. */ | |
28 | ||
b8b527c5 | 29 | #define CHILD_PREPARE_TO_STORE() deprecated_read_register_bytes (0, NULL, DEPRECATED_REGISTER_BYTES) |
c906108c SS |
30 | |
31 | /* Solaris PSRVADDR support does not seem to include a place for nPC. */ | |
32 | ||
33 | #define PRSVADDR_BROKEN | |
34 | ||
0a415da9 AC |
35 | /* gdb wants to use the prgregset_t interface rather than |
36 | the gregset_t interface, partly because that's what's | |
37 | used in core-sol2.c */ | |
38 | ||
39 | #define GDB_GREGSET_T prgregset_t | |
40 | #define GDB_FPREGSET_T prfpregset_t | |
41 | ||
2f09097b ND |
42 | #ifdef NEW_PROC_API /* Solaris 6 and above can do HW watchpoints */ |
43 | ||
44 | #define TARGET_HAS_HARDWARE_WATCHPOINTS | |
45 | ||
46 | /* The man page for proc4 on solaris 6 and 7 says that the system | |
47 | can support "thousands" of hardware watchpoints, but gives no | |
48 | method for finding out how many. So just tell GDB 'yes'. */ | |
49 | #define TARGET_CAN_USE_HARDWARE_WATCHPOINT(TYPE, CNT, OT) 1 | |
50 | ||
51 | /* When a hardware watchpoint fires off the PC will be left at the | |
52 | instruction following the one which caused the watchpoint. | |
53 | It will *NOT* be necessary for GDB to step over the watchpoint. */ | |
7df1a324 | 54 | #define HAVE_CONTINUABLE_WATCHPOINT 1 |
2f09097b | 55 | |
39f77062 | 56 | extern int procfs_stopped_by_watchpoint (ptid_t); |
2f09097b | 57 | #define STOPPED_BY_WATCHPOINT(W) \ |
39f77062 | 58 | procfs_stopped_by_watchpoint(inferior_ptid) |
2f09097b ND |
59 | |
60 | /* Use these macros for watchpoint insertion/deletion. */ | |
61 | /* type can be 0: write watch, 1: read watch, 2: access watch (read/write) */ | |
62 | ||
39f77062 | 63 | extern int procfs_set_watchpoint (ptid_t, CORE_ADDR, int, int, int); |
2f09097b | 64 | #define target_insert_watchpoint(ADDR, LEN, TYPE) \ |
39f77062 | 65 | procfs_set_watchpoint (inferior_ptid, ADDR, LEN, TYPE, 1) |
2f09097b | 66 | #define target_remove_watchpoint(ADDR, LEN, TYPE) \ |
39f77062 | 67 | procfs_set_watchpoint (inferior_ptid, ADDR, 0, 0, 0) |
2f09097b ND |
68 | |
69 | #endif /* NEW_PROC_API */ |