The list of changes is too long to fit in the cvs log (since it truncates!).
[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
6GDB is free software; you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published by
8the Free Software Foundation; either version 1, or (at your option)
9any later version.
10
11GDB is distributed in the hope that it will be useful,
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
17along with GDB; see the file COPYING. If not, write to
18the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
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 */
39#ifndef __STDC__
40# ifdef __GNUC__
41# define const __const__
42# define volatile __volatile__
43# else
44# define const /*nothing*/
45# define volatile /*nothing*/
46# endif /* GNUC */
47#endif /* STDC */
48
49extern char *savestring ();
50extern char *strsave ();
51extern char *concat ();
52#ifdef __STDC__
53extern void *xmalloc (), *xrealloc ();
54#else
55extern char *xmalloc (), *xrealloc ();
56#endif
57extern void free ();
58extern int parse_escape ();
59extern char *reg_names[];
60/* Indicate that these routines do not return to the caller. */
61extern volatile void error(), fatal();
62
63/* Various possibilities for alloca. */
64#ifdef __GNUC__
65# define alloca __builtin_alloca
66#else
67# ifdef sparc
68# include <alloca.h>
69# endif
70 extern char *alloca ();
71# endif
72
73extern int errno; /* System call error return status */
74
75extern int quit_flag;
76extern int immediate_quit;
77extern void quit ();
78
79#define QUIT { if (quit_flag) quit (); }
80
81/* Notes on classes: class_alias is for alias commands which are not
82 abbreviations of the original command. */
83
84enum command_class
85{
86 /* Special args to help_list */
87 all_classes = -2, all_commands = -1,
88 /* Classes of commands */
89 no_class = -1, class_run = 0, class_vars, class_stack,
90 class_files, class_support, class_info, class_breakpoint,
91 class_alias, class_obscure, class_user
92};
93
94/* the cleanup list records things that have to be undone
95 if an error happens (descriptors to be closed, memory to be freed, etc.)
96 Each link in the chain records a function to call and an
97 argument to give it.
98
99 Use make_cleanup to add an element to the cleanup chain.
100 Use do_cleanups to do all cleanup actions back to a given
101 point in the chain. Use discard_cleanups to remove cleanups
102 from the chain back to a given point, not doing them. */
103
104struct cleanup
105{
106 struct cleanup *next;
107 void (*function) ();
108 int arg;
109};
110
111/* From utils.c. */
112extern void do_cleanups ();
113extern void discard_cleanups ();
114extern struct cleanup *make_cleanup ();
115extern struct cleanup *save_cleanups ();
116extern void restore_cleanups ();
117extern void free_current_contents ();
118extern int myread ();
119extern int query ();
120extern int lines_to_list ();
e1ce8aa5
JK
121extern void wrap_here (
122#ifdef __STDC__
123 char *
124#endif
125 );
bd5635a1
RP
126extern void reinitialize_more_filter ();
127extern void fputs_filtered ();
128extern void puts_filtered ();
129extern void fprintf_filtered ();
130extern void printf_filtered ();
131extern void print_spaces ();
132extern void print_spaces_filtered ();
133extern char *n_spaces ();
134extern void printchar ();
135extern void fprint_symbol ();
136extern void fputs_demangled ();
137extern void perror_with_name ();
138extern void print_sys_errmsg ();
139
140/* From printcmd.c */
141extern void print_address_symbolic ();
142extern void print_address ();
143
e1ce8aa5
JK
144/* From source.c */
145void mod_path (
146#ifdef __STDC__
147 char *, char **
148#endif
149 );
150
bd5635a1
RP
151/* From readline (but not in any readline .h files). */
152extern char *tilde_expand ();
153
154/* Structure for saved commands lines
155 (for breakpoints, defined commands, etc). */
156
157struct command_line
158{
159 struct command_line *next;
160 char *line;
161};
162
163extern struct command_line *read_command_lines ();
164extern void free_command_lines ();
165
166/* String containing the current directory (what getwd would return). */
167
168char *current_directory;
169
170/* Default radixes for input and output. Only some values supported. */
171extern unsigned input_radix;
172extern unsigned output_radix;
173
174/* Baud rate specified for communication with serial target systems. */
175char *baud_rate;
176
177#if !defined (UINT_MAX)
178#define UINT_MAX 0xffffffff
179#endif
180
181#if !defined (LONG_MAX)
182#define LONG_MAX 0x7fffffff
183#endif
184
e1ce8aa5
JK
185#if !defined (INT_MAX)
186#define INT_MAX 0x7fffffff
187#endif
188
189#if !defined (INT_MIN)
190/* Two's complement, 32 bit. */
191#define INT_MIN -0x80000000
192#endif
193
bd5635a1
RP
194/* Just like CHAR_BIT in <limits.h> but describes the target machine. */
195#if !defined (TARGET_CHAR_BIT)
196#define TARGET_CHAR_BIT 8
197#endif
c1ace5b5 198
d166df9b
JK
199/* Number of bits in a long long or unsigned long long
200 for the target machine. */
201#if !defined (TARGET_LONG_LONG_BIT)
202#define TARGET_LONG_LONG_BIT 64
203#endif
204
e1ce8aa5
JK
205/* Convert a LONGEST to an int. This is used in contexts (e.g. number
206 of arguments to a function, number in a value history, register
207 number, etc.) where the value must not be larger than can fit
208 in an int. */
209#if !defined (longest_to_int)
210#if defined (LONG_LONG)
211#define longest_to_int(x) (((x) > INT_MAX || (x) < INT_MIN) \
212 ? error ("Value out of range.") : (int) (x))
213#else /* No LONG_LONG. */
214/* Assume sizeof (int) == sizeof (long). */
215#define longest_to_int(x) ((int) (x))
216#endif /* No LONG_LONG. */
217#endif /* No longest_to_int. */
218
c1ace5b5 219#endif /* no DEFS_H */
This page took 0.03386 seconds and 4 git commands to generate.