]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gdb/config/i386/tm-i386sol2.h
Phase 1 of the ptid_t changes.
[thirdparty/binutils-gdb.git] / gdb / config / i386 / tm-i386sol2.h
1 /* Macro definitions for GDB on an Intel i386 running Solaris 2.
2 Copyright 1998, 1999, 2000 Free Software Foundation, Inc.
3
4 This file is part of GDB.
5
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.
10
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.
15
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. */
20
21 #ifndef TM_I386SOL2_H
22 #define TM_I386SOL2_H 1
23
24 #define HAVE_I387_REGS
25 #include "i386/tm-i386v4.h"
26
27 /* If the current gcc for for this target does not produce correct
28 debugging information for float parameters, both prototyped and
29 unprototyped, then define this macro. This forces gdb to always
30 assume that floats are passed as doubles and then converted in the
31 callee. */
32
33 #define COERCE_FLOAT_TO_DOUBLE(formal, actual) (1)
34
35 /* Signal handler frames under Solaris 2 are recognized by a return address
36 of 0xFFFFFFFF, the third parameter on the signal handler stack is
37 a pointer to an ucontext. */
38 #undef sigtramp_saved_pc
39 #undef I386V4_SIGTRAMP_SAVED_PC
40 #define SIGCONTEXT_PC_OFFSET (36 + 14 * 4)
41 #undef IN_SIGTRAMP
42 #define IN_SIGTRAMP(pc, name) (pc == 0xFFFFFFFF)
43
44 /* The SunPRO compiler puts out 0 instead of the address in N_SO symbols,
45 and for SunPRO 3.0, N_FUN symbols too. */
46 #define SOFUN_ADDRESS_MAYBE_MISSING
47
48 extern char *sunpro_static_transform_name (char *);
49 #define STATIC_TRANSFORM_NAME(x) sunpro_static_transform_name (x)
50 #define IS_STATIC_TRANSFORM_NAME(name) ((name)[0] == '.')
51
52 #define FAULTED_USE_SIGINFO
53
54 /* Macros to extract process id and thread id from a composite pid/tid.
55 Allocate lower 16 bits for process id, next 15 bits for thread id, and
56 one bit for a flag to indicate a user thread vs. a kernel thread. */
57 #define PIDGET0(PID) (((PID) & 0xffff))
58 #define PIDGET(PID) ((PIDGET0 (PID) == 0xffff) ? -1 : PIDGET0 (PID))
59 #define TIDGET(PID) (((PID) & 0x7fffffff) >> 16)
60 #define MERGEPID(PID, TID) (((PID) & 0xffff) | ((TID) << 16))
61
62 #endif /* ifndef TM_I386SOL2_H */