* config/mips/xm-mips.h: Define HAVE_TERMIOS.
[external/binutils.git] / gdb / config / mips / xm-mips.h
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
5
6 This file is part of GDB.
7
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.
12
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.
17
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.  */
21
22 #if !defined (HOST_BYTE_ORDER)
23 #define HOST_BYTE_ORDER LITTLE_ENDIAN
24 #endif
25
26 /* Get rid of any system-imposed stack limit if possible */
27
28 #define SET_STACK_LIMIT_HUGE
29
30 #ifdef ultrix
31 /* Needed for DECstation core files.  */
32 #include <machine/param.h>
33 #define KERNEL_U_ADDR UADDR
34 #endif
35
36 #ifdef ultrix
37 extern char *strdup();
38 #endif
39
40 /* DECstation memcpy and memset return void *, not char *.  */
41
42 extern void *memcpy();
43 extern void *memset();
44 #define MEM_FNS_DECLARED
45
46 #if ! defined (__STDC__) && ! defined (offsetof)
47 # define offsetof(TYPE, MEMBER) ((unsigned long) &((TYPE *)0)->MEMBER)
48 #endif
49
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.  */
54
55 #define REGISTER_U_ADDR(addr, blockend, regno)          \
56         { \
57           if (regno < FP0_REGNUM) \
58             addr = blockend + sizeof(int) * (4 + regno - 1); \
59           else \
60             addr = offsetof (struct user, u_pcb.pcb_fpregs[0]) + \
61                    sizeof (int) * (regno - FP0_REGNUM); \
62         }
63
64 /* Kernel is a bit tenacious about sharing text segments, disallowing bpts.  */
65 #define ONE_PROCESS_WRITETEXT
66
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).
69
70    But we have termios, at least as of Ultrix 4.2A, so use it.  */
71 #define HAVE_TERMIOS
72
73 /* Mips hosts need aligned va_list arguments.  */
74 #include "mips/xm-makeva.h"