* Makefile.in (SFILES_MAINDIR): Add ch-exp.y.
[binutils-gdb.git] / gdb / defs.h
1 /* Basic, host-specific, and target-specific definitions for GDB.
2 Copyright (C) 1986, 1989, 1991 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
19
20 #if !defined (DEFS_H)
21 #define DEFS_H 1
22
23 #include <stdio.h>
24
25 /* First include ansidecl.h so we can use the various macro definitions
26 here and in all subsequent file inclusions. */
27
28 #include "ansidecl.h"
29
30 /* An address in the program being debugged. Host byte order. */
31 typedef unsigned int CORE_ADDR;
32
33 #define min(a, b) ((a) < (b) ? (a) : (b))
34 #define max(a, b) ((a) > (b) ? (a) : (b))
35
36 /* The character C++ uses to build identifiers that must be unique from
37 the program's identifiers (such as $this and $$vptr). */
38 #define CPLUS_MARKER '$' /* May be overridden to '.' for SysV */
39
40 #include <errno.h> /* System call error return status */
41
42 extern int quit_flag;
43 extern int immediate_quit;
44
45 extern void
46 quit PARAMS ((void));
47
48 #define QUIT { if (quit_flag) quit (); }
49
50 /* Command classes are top-level categories into which commands are broken
51 down for "help" purposes.
52 Notes on classes: class_alias is for alias commands which are not
53 abbreviations of the original command. class-pseudo is for commands
54 which are not really commands nor help topics ("stop"). */
55
56 enum command_class
57 {
58 /* Special args to help_list */
59 all_classes = -2, all_commands = -1,
60 /* Classes of commands */
61 no_class = -1, class_run = 0, class_vars, class_stack,
62 class_files, class_support, class_info, class_breakpoint,
63 class_alias, class_obscure, class_user, class_maintenance,
64 class_pseudo
65 };
66
67 /* the cleanup list records things that have to be undone
68 if an error happens (descriptors to be closed, memory to be freed, etc.)
69 Each link in the chain records a function to call and an
70 argument to give it.
71
72 Use make_cleanup to add an element to the cleanup chain.
73 Use do_cleanups to do all cleanup actions back to a given
74 point in the chain. Use discard_cleanups to remove cleanups
75 from the chain back to a given point, not doing them. */
76
77 struct cleanup
78 {
79 struct cleanup *next;
80 void (*function) PARAMS ((PTR));
81 PTR arg;
82 };
83
84 /* From blockframe.c */
85
86 extern int
87 inside_entry_func PARAMS ((CORE_ADDR));
88
89 extern int
90 inside_entry_file PARAMS ((CORE_ADDR addr));
91
92 extern int
93 inside_main_func PARAMS ((CORE_ADDR pc));
94
95 /* From cplus-dem.c */
96
97 extern char *
98 cplus_demangle PARAMS ((const char *, int));
99
100 extern char *
101 cplus_mangle_opname PARAMS ((char *, int));
102
103 /* From libmmalloc.a (memory mapped malloc library) */
104
105 extern PTR
106 mmalloc_attach PARAMS ((int, PTR));
107
108 extern PTR
109 mmalloc_detach PARAMS ((PTR));
110
111 extern PTR
112 mmalloc PARAMS ((PTR, long));
113
114 extern PTR
115 mrealloc PARAMS ((PTR, PTR, long));
116
117 extern void
118 mfree PARAMS ((PTR, PTR));
119
120 extern int
121 mmalloc_setkey PARAMS ((PTR, int, PTR));
122
123 extern PTR
124 mmalloc_getkey PARAMS ((PTR, int));
125
126 /* From utils.c */
127
128 extern char *
129 demangle_and_match PARAMS ((const char *, const char *, int));
130
131 extern int
132 strcmp_iw PARAMS ((const char *, const char *));
133
134 extern char *
135 safe_strerror PARAMS ((int));
136
137 extern char *
138 safe_strsignal PARAMS ((int));
139
140 extern void
141 init_malloc PARAMS ((PTR));
142
143 extern void
144 request_quit PARAMS ((int));
145
146 extern void
147 do_cleanups PARAMS ((struct cleanup *));
148
149 extern void
150 discard_cleanups PARAMS ((struct cleanup *));
151
152 /* The bare make_cleanup function is one of those rare beasts that
153 takes almost any type of function as the first arg and anything that
154 will fit in a "void *" as the second arg.
155
156 Should be, once all calls and called-functions are cleaned up:
157 extern struct cleanup *
158 make_cleanup PARAMS ((void (*function) (PTR), PTR));
159
160 Until then, lint and/or various type-checking compiler options will
161 complain about make_cleanup calls. It'd be wrong to just cast things,
162 since the type actually passed when the function is called would be
163 wrong. */
164
165 extern struct cleanup *
166 make_cleanup ();
167
168 extern struct cleanup *
169 save_cleanups PARAMS ((void));
170
171 extern void
172 restore_cleanups PARAMS ((struct cleanup *));
173
174 extern void
175 free_current_contents PARAMS ((char **));
176
177 extern void
178 null_cleanup PARAMS ((char **));
179
180 extern int
181 myread PARAMS ((int, char *, int));
182
183 extern int
184 query ();
185
186 extern void
187 wrap_here PARAMS ((char *));
188
189 extern void
190 reinitialize_more_filter PARAMS ((void));
191
192 extern int
193 print_insn PARAMS ((CORE_ADDR, FILE *));
194
195 extern void
196 fputs_filtered PARAMS ((const char *, FILE *));
197
198 extern void
199 puts_filtered PARAMS ((char *));
200
201 extern void
202 vfprintf_filtered ();
203
204 extern void
205 fprintf_filtered ();
206
207 extern void
208 fprintfi_filtered ();
209
210 extern void
211 printf_filtered ();
212
213 extern void
214 printfi_filtered ();
215
216 extern void
217 print_spaces PARAMS ((int, FILE *));
218
219 extern void
220 print_spaces_filtered PARAMS ((int, FILE *));
221
222 extern char *
223 n_spaces PARAMS ((int));
224
225 extern void
226 printchar PARAMS ((int, FILE *, int));
227
228 extern char *
229 strdup_demangled PARAMS ((const char *));
230
231 extern void
232 fprint_symbol PARAMS ((FILE *, char *));
233
234 extern void
235 fputs_demangled PARAMS ((char *, FILE *, int));
236
237 extern void
238 perror_with_name PARAMS ((char *));
239
240 extern void
241 print_sys_errmsg PARAMS ((char *, int));
242
243 /* From regex.c */
244
245 extern char *
246 re_comp PARAMS ((char *));
247
248 /* From symfile.c */
249
250 extern void
251 symbol_file_command PARAMS ((char *, int));
252
253 /* From main.c */
254
255 extern char *
256 skip_quoted PARAMS ((char *));
257
258 extern char *
259 gdb_readline PARAMS ((char *));
260
261 extern char *
262 command_line_input PARAMS ((char *, int));
263
264 extern void
265 print_prompt PARAMS ((void));
266
267 extern int
268 batch_mode PARAMS ((void));
269
270 extern int
271 input_from_terminal_p PARAMS ((void));
272
273 extern int
274 catch_errors PARAMS ((int (*) (char *), char *, char *));
275
276 /* From printcmd.c */
277
278 extern void
279 set_next_address PARAMS ((CORE_ADDR));
280
281 extern void
282 print_address_symbolic PARAMS ((CORE_ADDR, FILE *, int, char *));
283
284 extern void
285 print_address PARAMS ((CORE_ADDR, FILE *));
286
287 /* From source.c */
288
289 extern int
290 openp PARAMS ((char *, int, char *, int, int, char **));
291
292 extern void
293 mod_path PARAMS ((char *, char **));
294
295 extern void
296 directory_command PARAMS ((char *, int));
297
298 extern void
299 init_source_path PARAMS ((void));
300
301 /* From findvar.c */
302
303 extern int
304 read_relative_register_raw_bytes PARAMS ((int, char *));
305
306 /* From readline (but not in any readline .h files). */
307
308 extern char *
309 tilde_expand PARAMS ((char *));
310
311 /* Structure for saved commands lines
312 (for breakpoints, defined commands, etc). */
313
314 struct command_line
315 {
316 struct command_line *next;
317 char *line;
318 };
319
320 extern struct command_line *
321 read_command_lines PARAMS ((void));
322
323 extern void
324 free_command_lines PARAMS ((struct command_line **));
325
326 /* String containing the current directory (what getwd would return). */
327
328 extern char *current_directory;
329
330 /* Default radixes for input and output. Only some values supported. */
331 extern unsigned input_radix;
332 extern unsigned output_radix;
333
334 /* Baud rate specified for communication with serial target systems. */
335 extern char *baud_rate;
336
337 /* Languages represented in the symbol table and elsewhere. */
338
339 enum language
340 {
341 language_unknown, /* Language not known */
342 language_auto, /* Placeholder for automatic setting */
343 language_c, /* C */
344 language_cplus, /* C++ */
345 language_chill, /* Chill */
346 language_m2 /* Modula-2 */
347 };
348
349 /* Return a format string for printf that will print a number in the local
350 (language-specific) hexadecimal format. Result is static and is
351 overwritten by the next call. local_hex_format_custom takes printf
352 options like "08" or "l" (to produce e.g. %08x or %lx). */
353
354 #define local_hex_format() (current_language->la_hex_format)
355
356 extern char *
357 local_hex_format_custom PARAMS ((char *)); /* language.c */
358
359 /* Return a string that contains a number formatted in the local
360 (language-specific) hexadecimal format. Result is static and is
361 overwritten by the next call. local_hex_string_custom takes printf
362 options like "08" or "l". */
363
364 extern char *
365 local_hex_string PARAMS ((int)); /* language.c */
366
367 extern char *
368 local_hex_string_custom PARAMS ((int, char *)); /* language.c */
369
370 \f
371 /* Host machine definition. This will be a symlink to one of the
372 xm-*.h files, built by the `configure' script. */
373
374 #include "xm.h"
375
376 /* Native machine support. This will be a symlink to one of the
377 nm-*.h files, built by the `configure' script. */
378
379 #include "nm.h"
380
381 /* If the xm.h file did not define the mode string used to open the
382 files, assume that binary files are opened the same way as text
383 files */
384 #ifndef FOPEN_RB
385 #include "fopen-same.h"
386 #endif
387
388 /*
389 * Allow things in gdb to be declared "const". If compiling ANSI, it
390 * just works. If compiling with gcc but non-ansi, redefine to __const__.
391 * If non-ansi, non-gcc, then eliminate "const" entirely, making those
392 * objects be read-write rather than read-only.
393 */
394
395 #ifndef const
396 #ifndef __STDC__
397 # ifdef __GNUC__
398 # define const __const__
399 # else
400 # define const /*nothing*/
401 # endif /* GNUC */
402 #endif /* STDC */
403 #endif /* const */
404
405 #ifndef volatile
406 #ifndef __STDC__
407 # ifdef __GNUC__
408 # define volatile __volatile__
409 # else
410 # define volatile /*nothing*/
411 # endif /* GNUC */
412 #endif /* STDC */
413 #endif /* volatile */
414
415 /* Some compilers (many AT&T SVR4 compilers for instance), do not accept
416 declarations of functions that never return (exit for instance) as
417 "volatile void". For such compilers "NORETURN" can be defined away
418 to keep them happy */
419
420 #ifndef NORETURN
421 # ifdef __lucid
422 # define NORETURN /*nothing*/
423 # else
424 # define NORETURN volatile
425 # endif
426 #endif
427
428 /* Defaults for system-wide constants (if not defined by xm.h, we fake it). */
429
430 #if !defined (UINT_MAX)
431 #define UINT_MAX 0xffffffff
432 #endif
433
434 #if !defined (LONG_MAX)
435 #define LONG_MAX 0x7fffffff
436 #endif
437
438 #if !defined (INT_MAX)
439 #define INT_MAX 0x7fffffff
440 #endif
441
442 #if !defined (INT_MIN)
443 /* Two's complement, 32 bit. */
444 #define INT_MIN -0x80000000
445 #endif
446
447 /* Number of bits in a char or unsigned char for the target machine.
448 Just like CHAR_BIT in <limits.h> but describes the target machine. */
449 #if !defined (TARGET_CHAR_BIT)
450 #define TARGET_CHAR_BIT 8
451 #endif
452
453 /* Number of bits in a short or unsigned short for the target machine. */
454 #if !defined (TARGET_SHORT_BIT)
455 #define TARGET_SHORT_BIT (sizeof (short) * TARGET_CHAR_BIT)
456 #endif
457
458 /* Number of bits in an int or unsigned int for the target machine. */
459 #if !defined (TARGET_INT_BIT)
460 #define TARGET_INT_BIT (sizeof (int) * TARGET_CHAR_BIT)
461 #endif
462
463 /* Number of bits in a long or unsigned long for the target machine. */
464 #if !defined (TARGET_LONG_BIT)
465 #define TARGET_LONG_BIT (sizeof (long) * TARGET_CHAR_BIT)
466 #endif
467
468 /* Number of bits in a long long or unsigned long long for the target machine. */
469 #if !defined (TARGET_LONG_LONG_BIT)
470 #define TARGET_LONG_LONG_BIT (2 * TARGET_LONG_BIT)
471 #endif
472
473 /* Number of bits in a float for the target machine. */
474 #if !defined (TARGET_FLOAT_BIT)
475 #define TARGET_FLOAT_BIT (sizeof (float) * TARGET_CHAR_BIT)
476 #endif
477
478 /* Number of bits in a double for the target machine. */
479 #if !defined (TARGET_DOUBLE_BIT)
480 #define TARGET_DOUBLE_BIT (sizeof (double) * TARGET_CHAR_BIT)
481 #endif
482
483 /* Number of bits in a long double for the target machine. */
484 #if !defined (TARGET_LONG_DOUBLE_BIT)
485 #define TARGET_LONG_DOUBLE_BIT (2 * TARGET_DOUBLE_BIT)
486 #endif
487
488 /* Number of bits in a "complex" for the target machine. */
489 #if !defined (TARGET_COMPLEX_BIT)
490 #define TARGET_COMPLEX_BIT (2 * TARGET_FLOAT_BIT)
491 #endif
492
493 /* Number of bits in a "double complex" for the target machine. */
494 #if !defined (TARGET_DOUBLE_COMPLEX_BIT)
495 #define TARGET_DOUBLE_COMPLEX_BIT (2 * TARGET_DOUBLE_BIT)
496 #endif
497
498 /* Number of bits in a pointer for the target machine */
499 #if !defined (TARGET_PTR_BIT)
500 #define TARGET_PTR_BIT TARGET_INT_BIT
501 #endif
502
503 /* Convert a LONGEST to an int. This is used in contexts (e.g. number
504 of arguments to a function, number in a value history, register
505 number, etc.) where the value must not be larger than can fit
506 in an int. */
507 #if !defined (longest_to_int)
508 #if defined (LONG_LONG)
509 #define longest_to_int(x) (((x) > INT_MAX || (x) < INT_MIN) \
510 ? (error ("Value out of range."),0) : (int) (x))
511 #else /* No LONG_LONG. */
512 /* Assume sizeof (int) == sizeof (long). */
513 #define longest_to_int(x) ((int) (x))
514 #endif /* No LONG_LONG. */
515 #endif /* No longest_to_int. */
516
517 /* This should not be a typedef, because "unsigned LONGEST" needs
518 to work. LONG_LONG is defined if the host has "long long". */
519
520 #ifndef LONGEST
521 # ifdef LONG_LONG
522 # define LONGEST long long
523 # else
524 # define LONGEST long
525 # endif
526 #endif
527
528 /* Assorted functions we can declare, now that const and volatile are
529 defined. */
530
531 extern char *
532 savestring PARAMS ((const char *, int));
533
534 extern char *
535 msavestring PARAMS ((void *, const char *, int));
536
537 extern char *
538 strsave PARAMS ((const char *));
539
540 extern char *
541 mstrsave PARAMS ((void *, const char *));
542
543 extern char *
544 concat PARAMS ((char *, ...));
545
546 extern PTR
547 xmalloc PARAMS ((long));
548
549 extern PTR
550 xrealloc PARAMS ((PTR, long));
551
552 extern PTR
553 xmmalloc PARAMS ((PTR, long));
554
555 extern PTR
556 xmrealloc PARAMS ((PTR, PTR, long));
557
558 extern PTR
559 mmalloc PARAMS ((PTR, long));
560
561 extern PTR
562 mrealloc PARAMS ((PTR, PTR, long));
563
564 extern void
565 mfree PARAMS ((PTR, PTR));
566
567 extern int
568 mmcheck PARAMS ((PTR, void (*) (void)));
569
570 extern int
571 mmtrace PARAMS ((void));
572
573 extern int
574 parse_escape PARAMS ((char **));
575
576 extern const char * const reg_names[];
577
578 extern NORETURN void /* Does not return to the caller. */
579 error ();
580
581 extern NORETURN void /* Does not return to the caller. */
582 fatal ();
583
584 extern NORETURN void /* Not specified as volatile in ... */
585 exit PARAMS ((int)); /* 4.10.4.3 */
586
587 extern NORETURN void /* Does not return to the caller. */
588 nomem PARAMS ((long));
589
590 extern NORETURN void /* Does not return to the caller. */
591 return_to_top_level PARAMS ((void));
592
593 extern void
594 warning_setup PARAMS ((void));
595
596 extern void
597 warning ();
598
599 /* Global functions from other, non-gdb GNU thingies (libiberty for
600 instance) */
601
602 extern char *
603 basename PARAMS ((char *));
604
605 extern char *
606 getenv PARAMS ((const char *));
607
608 extern char **
609 buildargv PARAMS ((char *));
610
611 extern void
612 freeargv PARAMS ((char **));
613
614 extern char *
615 strerrno PARAMS ((int));
616
617 extern char *
618 strsigno PARAMS ((int));
619
620 extern int
621 errno_max PARAMS ((void));
622
623 extern int
624 signo_max PARAMS ((void));
625
626 extern int
627 strtoerrno PARAMS ((char *));
628
629 extern int
630 strtosigno PARAMS ((char *));
631
632 extern char *
633 strsignal PARAMS ((int));
634
635 /* From other system libraries */
636
637 #ifndef PSIGNAL_IN_SIGNAL_H
638 extern void
639 psignal PARAMS ((unsigned, char *));
640 #endif
641
642 /* For now, we can't include <stdlib.h> because it conflicts with
643 "../include/getopt.h". (FIXME)
644
645 However, if a function is defined in the ANSI C standard and a prototype
646 for that function is defined and visible in any header file in an ANSI
647 conforming environment, then that prototype must match the definition in
648 the ANSI standard. So we can just duplicate them here without conflict,
649 since they must be the same in all conforming ANSI environments. If
650 these cause problems, then the environment is not ANSI conformant. */
651
652 #ifdef __STDC__
653 #include <stddef.h>
654 #endif
655
656 extern int
657 fclose PARAMS ((FILE *stream)); /* 4.9.5.1 */
658
659 extern void
660 perror PARAMS ((const char *)); /* 4.9.10.4 */
661
662 extern double
663 atof PARAMS ((const char *nptr)); /* 4.10.1.1 */
664
665 extern int
666 atoi PARAMS ((const char *)); /* 4.10.1.2 */
667
668 #ifndef MALLOC_INCOMPATIBLE
669
670 extern PTR
671 malloc PARAMS ((size_t size)); /* 4.10.3.3 */
672
673 extern PTR
674 realloc PARAMS ((void *ptr, size_t size)); /* 4.10.3.4 */
675
676 extern void
677 free PARAMS ((void *)); /* 4.10.3.2 */
678
679 #endif /* MALLOC_INCOMPATIBLE */
680
681 extern void
682 qsort PARAMS ((void *base, size_t nmemb, /* 4.10.5.2 */
683 size_t size,
684 int (*comp)(const void *, const void *)));
685
686 #ifndef MEM_FNS_DECLARED /* Some non-ANSI use void *, not char *. */
687 extern PTR
688 memcpy PARAMS ((void *, const void *, size_t)); /* 4.11.2.1 */
689 #endif
690
691 extern int
692 memcmp PARAMS ((const void *, const void *, size_t)); /* 4.11.4.1 */
693
694 extern char *
695 strchr PARAMS ((const char *, int)); /* 4.11.5.2 */
696
697 extern char *
698 strrchr PARAMS ((const char *, int)); /* 4.11.5.5 */
699
700 extern char *
701 strstr PARAMS ((const char *, const char *)); /* 4.11.5.7 */
702
703 extern char *
704 strtok PARAMS ((char *, const char *)); /* 4.11.5.8 */
705
706 #ifndef MEM_FNS_DECLARED /* Some non-ANSI use void *, not char *. */
707 extern PTR
708 memset PARAMS ((void *, int, size_t)); /* 4.11.6.1 */
709 #endif
710
711 extern char *
712 strerror PARAMS ((int)); /* 4.11.6.2 */
713
714 /* Various possibilities for alloca. */
715 #ifndef alloca
716 # ifdef __GNUC__
717 # define alloca __builtin_alloca
718 # else
719 # ifdef sparc
720 # include <alloca.h> /* NOTE: Doesn't declare alloca() */
721 # endif
722 # ifdef __STDC__
723 extern void *alloca (size_t);
724 # else /* __STDC__ */
725 extern char *alloca ();
726 # endif
727 # endif
728 #endif
729
730 /* TARGET_BYTE_ORDER and HOST_BYTE_ORDER must be defined to one of these. */
731
732 #if !defined (BIG_ENDIAN)
733 #define BIG_ENDIAN 4321
734 #endif
735
736 #if !defined (LITTLE_ENDIAN)
737 #define LITTLE_ENDIAN 1234
738 #endif
739
740 /* Target-system-dependent parameters for GDB.
741
742 The standard thing is to include defs.h. However, files that are
743 specific to a particular target can define TM_FILE_OVERRIDE before
744 including defs.h, then can include any particular tm-file they desire. */
745
746 /* Target machine definition. This will be a symlink to one of the
747 tm-*.h files, built by the `configure' script. */
748
749 #ifndef TM_FILE_OVERRIDE
750 #include "tm.h"
751 #endif
752
753 /* The bit byte-order has to do just with numbering of bits in
754 debugging symbols and such. Conceptually, it's quite separate
755 from byte/word byte order. */
756
757 #if !defined (BITS_BIG_ENDIAN)
758 #if TARGET_BYTE_ORDER == BIG_ENDIAN
759 #define BITS_BIG_ENDIAN 1
760 #endif /* Big endian. */
761
762 #if TARGET_BYTE_ORDER == LITTLE_ENDIAN
763 #define BITS_BIG_ENDIAN 0
764 #endif /* Little endian. */
765 #endif /* BITS_BIG_ENDIAN not defined. */
766
767 /* Swap LEN bytes at BUFFER between target and host byte-order. */
768 #if TARGET_BYTE_ORDER == HOST_BYTE_ORDER
769 #define SWAP_TARGET_AND_HOST(buffer,len)
770 #else /* Target and host byte order differ. */
771 #define SWAP_TARGET_AND_HOST(buffer,len) \
772 { \
773 char tmp; \
774 char *p = (char *)(buffer); \
775 char *q = ((char *)(buffer)) + len - 1; \
776 for (; p < q; p++, q--) \
777 { \
778 tmp = *q; \
779 *q = *p; \
780 *p = tmp; \
781 } \
782 }
783 #endif /* Target and host byte order differ. */
784
785 /* On some machines there are bits in addresses which are not really
786 part of the address, but are used by the kernel, the hardware, etc.
787 for special purposes. ADDR_BITS_REMOVE takes out any such bits
788 so we get a "real" address such as one would find in a symbol
789 table. ADDR_BITS_SET sets those bits the way the system wants
790 them. */
791 #if !defined (ADDR_BITS_REMOVE)
792 #define ADDR_BITS_REMOVE(addr) (addr)
793 #define ADDR_BITS_SET(addr) (addr)
794 #endif /* No ADDR_BITS_REMOVE. */
795
796 /* From valops.c */
797
798 extern CORE_ADDR
799 push_bytes PARAMS ((CORE_ADDR, char *, int));
800
801 /* In some modules, we don't have a definition of REGISTER_TYPE yet, so we
802 must avoid prototyping this function for now. FIXME. Should be:
803 extern CORE_ADDR
804 push_word PARAMS ((CORE_ADDR, REGISTER_TYPE));
805 */
806 extern CORE_ADDR
807 push_word ();
808
809 /* Some parts of gdb might be considered optional, in the sense that they
810 are not essential for being able to build a working, usable debugger
811 for a specific environment. For example, the maintenance commands
812 are there for the benefit of gdb maintainers. As another example,
813 some environments really don't need gdb's that are able to read N
814 different object file formats. In order to make it possible (but
815 not necessarily recommended) to build "stripped down" versions of
816 gdb, the following defines control selective compilation of those
817 parts of gdb which can be safely left out when necessary. Note that
818 the default is to include everything. */
819
820 #ifndef MAINTENANCE_CMDS
821 #define MAINTENANCE_CMDS 1
822 #endif
823
824 #endif /* !defined (DEFS_H) */