Commit | Line | Data |
---|---|---|
bd5635a1 RP |
1 | /* Basic definitions for GDB, the GNU debugger. |
2 | Copyright (C) 1986, 1989, 1991 Free Software Foundation, Inc. | |
3 | ||
4 | This file is part of GDB. | |
5 | ||
6 | GDB 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 1, or (at your option) | |
9 | any later version. | |
10 | ||
11 | GDB 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 GDB; see the file COPYING. If not, write to | |
18 | the 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. */ |
24 | typedef 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 | ||
49 | extern char *savestring (); | |
50 | extern char *strsave (); | |
51 | extern char *concat (); | |
52 | #ifdef __STDC__ | |
53 | extern void *xmalloc (), *xrealloc (); | |
54 | #else | |
55 | extern char *xmalloc (), *xrealloc (); | |
56 | #endif | |
57 | extern void free (); | |
58 | extern int parse_escape (); | |
59 | extern char *reg_names[]; | |
60 | /* Indicate that these routines do not return to the caller. */ | |
61 | extern 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 | ||
73 | extern int errno; /* System call error return status */ | |
74 | ||
75 | extern int quit_flag; | |
76 | extern int immediate_quit; | |
77 | extern 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 | ||
84 | enum 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 | ||
104 | struct cleanup | |
105 | { | |
106 | struct cleanup *next; | |
107 | void (*function) (); | |
108 | int arg; | |
109 | }; | |
110 | ||
111 | /* From utils.c. */ | |
112 | extern void do_cleanups (); | |
113 | extern void discard_cleanups (); | |
114 | extern struct cleanup *make_cleanup (); | |
115 | extern struct cleanup *save_cleanups (); | |
116 | extern void restore_cleanups (); | |
117 | extern void free_current_contents (); | |
118 | extern int myread (); | |
119 | extern int query (); | |
120 | extern int lines_to_list (); | |
121 | extern void reinitialize_more_filter (); | |
122 | extern void fputs_filtered (); | |
123 | extern void puts_filtered (); | |
124 | extern void fprintf_filtered (); | |
125 | extern void printf_filtered (); | |
126 | extern void print_spaces (); | |
127 | extern void print_spaces_filtered (); | |
128 | extern char *n_spaces (); | |
129 | extern void printchar (); | |
130 | extern void fprint_symbol (); | |
131 | extern void fputs_demangled (); | |
132 | extern void perror_with_name (); | |
133 | extern void print_sys_errmsg (); | |
134 | ||
135 | /* From printcmd.c */ | |
136 | extern void print_address_symbolic (); | |
137 | extern void print_address (); | |
138 | ||
139 | /* From readline (but not in any readline .h files). */ | |
140 | extern char *tilde_expand (); | |
141 | ||
142 | /* Structure for saved commands lines | |
143 | (for breakpoints, defined commands, etc). */ | |
144 | ||
145 | struct command_line | |
146 | { | |
147 | struct command_line *next; | |
148 | char *line; | |
149 | }; | |
150 | ||
151 | extern struct command_line *read_command_lines (); | |
152 | extern void free_command_lines (); | |
153 | ||
154 | /* String containing the current directory (what getwd would return). */ | |
155 | ||
156 | char *current_directory; | |
157 | ||
158 | /* Default radixes for input and output. Only some values supported. */ | |
159 | extern unsigned input_radix; | |
160 | extern unsigned output_radix; | |
161 | ||
162 | /* Baud rate specified for communication with serial target systems. */ | |
163 | char *baud_rate; | |
164 | ||
165 | #if !defined (UINT_MAX) | |
166 | #define UINT_MAX 0xffffffff | |
167 | #endif | |
168 | ||
169 | #if !defined (LONG_MAX) | |
170 | #define LONG_MAX 0x7fffffff | |
171 | #endif | |
172 | ||
173 | /* Just like CHAR_BIT in <limits.h> but describes the target machine. */ | |
174 | #if !defined (TARGET_CHAR_BIT) | |
175 | #define TARGET_CHAR_BIT 8 | |
176 | #endif | |
c1ace5b5 JK |
177 | |
178 | #endif /* no DEFS_H */ |