Output hex with local_hex_string for Modula-2 support.
[deliverable/binutils-gdb.git] / gdb / defs.h
CommitLineData
bd5635a1
RP
1/* Basic definitions for GDB, the GNU debugger.
2 Copyright (C) 1986, 1989, 1991 Free Software Foundation, Inc.
3
4This file is part of GDB.
5
a10c0d36 6This program is free software; you can redistribute it and/or modify
bd5635a1 7it under the terms of the GNU General Public License as published by
a10c0d36
JG
8the Free Software Foundation; either version 2 of the License, or
9(at your option) any later version.
bd5635a1 10
a10c0d36 11This program is distributed in the hope that it will be useful,
bd5635a1
RP
12but WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
a10c0d36
JG
17along with this program; if not, write to the Free Software
18Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */
bd5635a1 19
c1ace5b5
JK
20#if !defined (DEFS_H)
21#define DEFS_H
22
bd5635a1
RP
23/* An address in the program being debugged. Host byte order. */
24typedef unsigned int CORE_ADDR;
25
26#define min(a, b) ((a) < (b) ? (a) : (b))
27#define max(a, b) ((a) > (b) ? (a) : (b))
28
29/* The character C++ uses to build identifiers that must be unique from
30 the program's identifiers (such as $this and $$vptr). */
31#define CPLUS_MARKER '$' /* May be overridden to '.' for SysV */
32
33/*
34 * Allow things in gdb to be declared "const". If compiling ANSI, it
35 * just works. If compiling with gcc but non-ansi, redefine to __const__.
36 * If non-ansi, non-gcc, then eliminate "const" entirely, making those
37 * objects be read-write rather than read-only.
38 */
d11c44f1 39#ifndef const
bd5635a1
RP
40#ifndef __STDC__
41# ifdef __GNUC__
42# define const __const__
bd5635a1
RP
43# else
44# define const /*nothing*/
d11c44f1
JG
45# endif /* GNUC */
46#endif /* STDC */
47#endif /* const */
48
49#ifndef volatile
50#ifndef __STDC__
51# ifdef __GNUC__
52# define volatile __volatile__
53# else
bd5635a1
RP
54# define volatile /*nothing*/
55# endif /* GNUC */
56#endif /* STDC */
d11c44f1 57#endif /* volatile */
bd5635a1
RP
58
59extern char *savestring ();
60extern char *strsave ();
61extern char *concat ();
62#ifdef __STDC__
63extern void *xmalloc (), *xrealloc ();
64#else
65extern char *xmalloc (), *xrealloc ();
66#endif
67extern void free ();
68extern int parse_escape ();
69extern char *reg_names[];
70/* Indicate that these routines do not return to the caller. */
71extern volatile void error(), fatal();
72
73/* Various possibilities for alloca. */
d11c44f1
JG
74#ifndef alloca
75# ifdef __GNUC__
76# define alloca __builtin_alloca
77# else
78# ifdef sparc
79# include <alloca.h>
80# endif
81 extern char *alloca ();
bd5635a1 82# endif
d11c44f1 83#endif
bd5635a1
RP
84
85extern int errno; /* System call error return status */
86
87extern int quit_flag;
88extern int immediate_quit;
89extern void quit ();
90
91#define QUIT { if (quit_flag) quit (); }
92
93/* Notes on classes: class_alias is for alias commands which are not
94 abbreviations of the original command. */
95
96enum command_class
97{
98 /* Special args to help_list */
99 all_classes = -2, all_commands = -1,
100 /* Classes of commands */
101 no_class = -1, class_run = 0, class_vars, class_stack,
102 class_files, class_support, class_info, class_breakpoint,
103 class_alias, class_obscure, class_user
104};
105
106/* the cleanup list records things that have to be undone
107 if an error happens (descriptors to be closed, memory to be freed, etc.)
108 Each link in the chain records a function to call and an
109 argument to give it.
110
111 Use make_cleanup to add an element to the cleanup chain.
112 Use do_cleanups to do all cleanup actions back to a given
113 point in the chain. Use discard_cleanups to remove cleanups
114 from the chain back to a given point, not doing them. */
115
116struct cleanup
117{
118 struct cleanup *next;
119 void (*function) ();
120 int arg;
121};
122
123/* From utils.c. */
124extern void do_cleanups ();
125extern void discard_cleanups ();
126extern struct cleanup *make_cleanup ();
127extern struct cleanup *save_cleanups ();
128extern void restore_cleanups ();
129extern void free_current_contents ();
130extern int myread ();
131extern int query ();
e1ce8aa5
JK
132extern void wrap_here (
133#ifdef __STDC__
134 char *
135#endif
136 );
bd5635a1
RP
137extern void reinitialize_more_filter ();
138extern void fputs_filtered ();
139extern void puts_filtered ();
140extern void fprintf_filtered ();
141extern void printf_filtered ();
142extern void print_spaces ();
143extern void print_spaces_filtered ();
144extern char *n_spaces ();
145extern void printchar ();
146extern void fprint_symbol ();
147extern void fputs_demangled ();
148extern void perror_with_name ();
149extern void print_sys_errmsg ();
150
151/* From printcmd.c */
152extern void print_address_symbolic ();
153extern void print_address ();
154
e1ce8aa5
JK
155/* From source.c */
156void mod_path (
157#ifdef __STDC__
158 char *, char **
159#endif
160 );
161
bd5635a1
RP
162/* From readline (but not in any readline .h files). */
163extern char *tilde_expand ();
164
165/* Structure for saved commands lines
166 (for breakpoints, defined commands, etc). */
167
168struct command_line
169{
170 struct command_line *next;
171 char *line;
172};
173
174extern struct command_line *read_command_lines ();
175extern void free_command_lines ();
176
177/* String containing the current directory (what getwd would return). */
178
179char *current_directory;
180
181/* Default radixes for input and output. Only some values supported. */
182extern unsigned input_radix;
183extern unsigned output_radix;
184
185/* Baud rate specified for communication with serial target systems. */
186char *baud_rate;
187
188#if !defined (UINT_MAX)
189#define UINT_MAX 0xffffffff
190#endif
191
192#if !defined (LONG_MAX)
193#define LONG_MAX 0x7fffffff
194#endif
195
e1ce8aa5
JK
196#if !defined (INT_MAX)
197#define INT_MAX 0x7fffffff
198#endif
199
200#if !defined (INT_MIN)
201/* Two's complement, 32 bit. */
202#define INT_MIN -0x80000000
203#endif
204
bd5635a1
RP
205/* Just like CHAR_BIT in <limits.h> but describes the target machine. */
206#if !defined (TARGET_CHAR_BIT)
207#define TARGET_CHAR_BIT 8
208#endif
c1ace5b5 209
d166df9b
JK
210/* Number of bits in a long long or unsigned long long
211 for the target machine. */
212#if !defined (TARGET_LONG_LONG_BIT)
213#define TARGET_LONG_LONG_BIT 64
214#endif
215
e1ce8aa5
JK
216/* Convert a LONGEST to an int. This is used in contexts (e.g. number
217 of arguments to a function, number in a value history, register
218 number, etc.) where the value must not be larger than can fit
219 in an int. */
220#if !defined (longest_to_int)
221#if defined (LONG_LONG)
222#define longest_to_int(x) (((x) > INT_MAX || (x) < INT_MIN) \
223 ? error ("Value out of range.") : (int) (x))
224#else /* No LONG_LONG. */
225/* Assume sizeof (int) == sizeof (long). */
226#define longest_to_int(x) ((int) (x))
227#endif /* No LONG_LONG. */
228#endif /* No longest_to_int. */
229
a10c0d36
JG
230/* Return a format string for printf that will print a number in the local
231 (language-specific) hexadecimal format. Result is static and is
232 overwritten by the next call. local_hex_format_custom takes printf
233 options like "08" or "l" (to produce e.g. %08x or %lx). */
234
235#define local_hex_format() local_hex_format_custom("")
236char *local_hex_format_custom(); /* language.c */
237
238/* Return a string that contains a number formatted in the local
239 (language-specific) hexadecimal format. Result is static and is
240 overwritten by the next call. local_hex_string_custom takes printf
241 options like "08" or "l". */
242
243#define local_hex_string(n) local_hex_string_custom((n),"")
244char *local_hex_string_custom(); /* language.c */
245
c1ace5b5 246#endif /* no DEFS_H */
This page took 0.041118 seconds and 4 git commands to generate.