1 /* Definitions to make GDB run on a mips box under 4.3bsd.
2 Copyright (C) 1986, 1987, 1989 Free Software Foundation, Inc.
3 Contributed by Per Bothner(bothner@cs.wisc.edu) at U.Wisconsin
4 and by Alessandro Forin(af@cs.cmu.edu) at CMU
6 This file is part of GDB.
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
22 #if !defined (HOST_BYTE_ORDER)
23 #define HOST_BYTE_ORDER LITTLE_ENDIAN
26 /* Get rid of any system-imposed stack limit if possible */
28 #define SET_STACK_LIMIT_HUGE
31 /* Needed for DECstation core files. */
32 #include <machine/param.h>
33 #define KERNEL_U_ADDR UADDR
37 extern char *strdup();
40 /* DECstation memcpy and memset return void *, not char *. */
42 extern void *memcpy();
43 extern void *memset();
44 #define MEM_FNS_DECLARED
46 #if ! defined (__STDC__) && ! defined (offsetof)
47 # define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
50 /* Only used for core files on DECstations.
51 First four registers at u.u_ar0 are saved arguments, and
52 there is no r0 saved. Float registers are saved
53 in u_pcb.pcb_fpregs, not relative to u.u_ar0. */
55 #define REGISTER_U_ADDR(addr, blockend, regno) \
57 if (regno < FP0_REGNUM) \
58 addr = blockend + sizeof(int) * (4 + regno - 1); \
60 addr = offsetof (struct user, u_pcb.pcb_fpregs[0]) + \
61 sizeof (int) * (regno - FP0_REGNUM); \
64 /* Kernel is a bit tenacious about sharing text segments, disallowing bpts. */
65 #define ONE_PROCESS_WRITETEXT
67 /* HAVE_SGTTY also works, except for the lack of usleep (which it would be
68 possible to work around by writing our own using setitimer directly).
70 But we have termios, at least as of Ultrix 4.2A, so use it. */
73 /* Mips hosts need aligned va_list arguments. */
74 #include "mips/xm-makeva.h"