1/* Native support for SCO OpenServer 5. 2 Copyright 1996, 1998, 2002 Free Software Foundation, Inc. 3 Re-written by J. Kean Johnston <jkj@sco.com>. 4 Originally written by Robert Lipe <robertl@dgii.com>, based on 5 work by Ian Lance Taylor <ian@cygnus.com> and 6 Martin Walker <maw@netcom.com>. 7 8 This file is part of GDB. 9 10 This program is free software; you can redistribute it and/or modify 11 it under the terms of the GNU General Public License as published by 12 the Free Software Foundation; either version 2 of the License, or 13 (at your option) any later version. 14 15 This program is distributed in the hope that it will be useful, 16 but WITHOUT ANY WARRANTY; without even the implied warranty of 17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 GNU General Public License for more details. 19 20 You should have received a copy of the GNU General Public License 21 along with this program; if not, write to the Free Software 22 Foundation, Inc., 59 Temple Place - Suite 330, 23 Boston, MA 02111-1307, USA. */ 24 25#ifndef NM_I386SCO5_H 26#define NM_I386SCO5_H 27 28/* Basically, its a lot like the older versions ... */ 29#include "i386/nm-i386sco.h" 30 31/* ... but it can do a lot of SVR4 type stuff too. */ 32#define SVR4_SHARED_LIBS 33#include "solib.h" /* Pick up shared library support. */ 34 35/* SCO is unlike other SVR4 systems in that it has SVR4 style shared 36 libs, with a slight twist. We expect 3 traps (2 for the exec and 37 one for the dynamic loader). After the third trap we insert the 38 shared library breakpoints, then wait for the 4th trap. */ 39 40#undef START_INFERIOR_TRAPS_EXPECTED 41#define START_INFERIOR_TRAPS_EXPECTED 3 42 43/* SCO does not provide <sys/ptrace.h>. However, infptrace.c does not 44 have defaults for these values. */ 45 46#define PTRACE_ATTACH 10 47#define PTRACE_DETACH 11 48 49/* Return the size of the user struct. */ 50 51#define KERNEL_U_SIZE kernel_u_size () 52extern int kernel_u_size (void); 53 54/* We can attach and detach. */ 55#define ATTACH_DETACH 56 57/* Hardware-assisted breakpoints and watchpoints. */ 58 59/* We can also do hardware watchpoints. */ 60#define TARGET_HAS_HARDWARE_WATCHPOINTS 61#define TARGET_CAN_USE_HARDWARE_WATCHPOINT(type, cnt, ot) 1 62 63/* After a watchpoint trap, the PC points to the instruction which 64 caused the trap. But we can continue over it without disabling the 65 trap. */ 66#define HAVE_CONTINUABLE_WATCHPOINT 1 67#define HAVE_STEPPABLE_WATCHPOINT 68 69#define STOPPED_BY_WATCHPOINT(W) \ 70 i386_stopped_by_watchpoint (PIDGET (inferior_ptid)) 71 72#define target_insert_watchpoint(addr, len, type) \ 73 i386_insert_watchpoint (PIDGET (inferior_ptid), addr, len, type) 74 75#define target_remove_watchpoint(addr, len, type) \ 76 i386_remove_watchpoint (PIDGET (inferior_ptid), addr, len) 77 78#endif /* nm-i386sco5.h */ 79