b7b6de90ff8cedf9b61bb294cfaff599f848638e
[binutils-gdb.git] / gdb / defs.h
1 /* *INDENT-OFF* */ /* ATTRIBUTE_PRINTF confuses indent, avoid running it
2 for now. */
3 /* Basic, host-specific, and target-specific definitions for GDB.
4 Copyright (C) 1986-2014 Free Software Foundation, Inc.
5
6 This file is part of GDB.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 3 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20
21 #ifndef DEFS_H
22 #define DEFS_H
23
24 #ifdef GDBSERVER
25 # error gdbserver should not include gdb/defs.h
26 #endif
27
28 #include "common-defs.h"
29
30 #include <sys/types.h>
31 #include <errno.h> /* System call error return status. */
32 #include <limits.h>
33 #include <stdint.h>
34
35 /* The libdecnumber library, on which GDB depends, includes a header file
36 called gstdint.h instead of relying directly on stdint.h. GDB, on the
37 other hand, includes stdint.h directly, relying on the fact that gnulib
38 generates a copy if the system doesn't provide one or if it is missing
39 some features. Unfortunately, gstdint.h and stdint.h cannot be included
40 at the same time, which may happen when we include a file from
41 libdecnumber.
42
43 The following macro definition effectively prevents the inclusion of
44 gstdint.h, as all the definitions it provides are guarded against
45 the GCC_GENERATED_STDINT_H macro. We already have gnulib/stdint.h
46 included, so it's ok to blank out gstdint.h. */
47 #define GCC_GENERATED_STDINT_H 1
48
49 #include <unistd.h>
50
51 /* For gnulib's PATH_MAX. */
52 #include "pathmax.h"
53
54 #include <fcntl.h>
55
56 #include "gdb_locale.h"
57
58 #include "gdb_wchar.h"
59
60 /* For ``enum gdb_signal''. */
61 #include "gdb/signals.h"
62
63 #include "ui-file.h"
64
65 #include "host-defs.h"
66
67 /* Just in case they're not defined in stdio.h. */
68
69 #ifndef SEEK_SET
70 #define SEEK_SET 0
71 #endif
72 #ifndef SEEK_CUR
73 #define SEEK_CUR 1
74 #endif
75
76 /* The O_BINARY flag is defined in fcntl.h on some non-Posix platforms.
77 It is used as an access modifier in calls to open(), where it acts
78 similarly to the "b" character in fopen()'s MODE argument. On Posix
79 platforms it should be a no-op, so it is defined as 0 here. This
80 ensures that the symbol may be used freely elsewhere in gdb. */
81
82 #ifndef O_BINARY
83 #define O_BINARY 0
84 #endif
85
86 #include "libiberty.h"
87 #include "hashtab.h"
88
89 /* Rather than duplicate all the logic in BFD for figuring out what
90 types to use (which can be pretty complicated), symply define them
91 in terms of the corresponding type from BFD. */
92
93 #include "bfd.h"
94
95 /* * A byte from the program being debugged. */
96 typedef bfd_byte gdb_byte;
97
98 /* * An address in the program being debugged. Host byte order. */
99 typedef bfd_vma CORE_ADDR;
100
101 /* * The largest CORE_ADDR value. */
102 #define CORE_ADDR_MAX (~ (CORE_ADDR) 0)
103
104 /* This is to make sure that LONGEST is at least as big as CORE_ADDR. */
105
106 #ifdef BFD64
107
108 #define LONGEST BFD_HOST_64_BIT
109 #define ULONGEST BFD_HOST_U_64_BIT
110
111 #else /* No BFD64 */
112
113 #define LONGEST long long
114 #define ULONGEST unsigned long long
115
116 #endif /* No BFD64 */
117
118 #ifndef min
119 #define min(a, b) ((a) < (b) ? (a) : (b))
120 #endif
121 #ifndef max
122 #define max(a, b) ((a) > (b) ? (a) : (b))
123 #endif
124
125 #include "ptid.h"
126
127 /* * Enable xdb commands if set. */
128 extern int xdb_commands;
129
130 /* * Enable dbx commands if set. */
131 extern int dbx_commands;
132
133 /* * System root path, used to find libraries etc. */
134 extern char *gdb_sysroot;
135
136 /* * GDB datadir, used to store data files. */
137 extern char *gdb_datadir;
138
139 /* * If non-NULL, the possibly relocated path to python's "lib" directory
140 specified with --with-python. */
141 extern char *python_libdir;
142
143 /* * Search path for separate debug files. */
144 extern char *debug_file_directory;
145
146 /* GDB has two methods for handling SIGINT. When immediate_quit is
147 nonzero, a SIGINT results in an immediate longjmp out of the signal
148 handler. Otherwise, SIGINT simply sets a flag; code that might
149 take a long time, and which ought to be interruptible, checks this
150 flag using the QUIT macro.
151
152 These functions use the extension_language_ops API to allow extension
153 language(s) and GDB SIGINT handling to coexist seamlessly. */
154
155 /* * Clear the quit flag. */
156 extern void clear_quit_flag (void);
157 /* * Evaluate to non-zero if the quit flag is set, zero otherwise. This
158 will clear the quit flag as a side effect. */
159 extern int check_quit_flag (void);
160 /* * Set the quit flag. */
161 extern void set_quit_flag (void);
162
163 /* Flag that function quit should call quit_force. */
164 extern volatile int sync_quit_force_run;
165
166 extern int immediate_quit;
167
168 extern void quit (void);
169
170 /* FIXME: cagney/2000-03-13: It has been suggested that the peformance
171 benefits of having a ``QUIT'' macro rather than a function are
172 marginal. If the overhead of a QUIT function call is proving
173 significant then its calling frequency should probably be reduced
174 [kingdon]. A profile analyzing the current situtation is
175 needed. */
176
177 #define QUIT { \
178 if (check_quit_flag () || sync_quit_force_run) quit (); \
179 if (deprecated_interactive_hook) deprecated_interactive_hook (); \
180 }
181
182 /* * Languages represented in the symbol table and elsewhere.
183 This should probably be in language.h, but since enum's can't
184 be forward declared to satisfy opaque references before their
185 actual definition, needs to be here. */
186
187 enum language
188 {
189 language_unknown, /* Language not known */
190 language_auto, /* Placeholder for automatic setting */
191 language_c, /* C */
192 language_cplus, /* C++ */
193 language_d, /* D */
194 language_go, /* Go */
195 language_objc, /* Objective-C */
196 language_java, /* Java */
197 language_fortran, /* Fortran */
198 language_m2, /* Modula-2 */
199 language_asm, /* Assembly language */
200 language_pascal, /* Pascal */
201 language_ada, /* Ada */
202 language_opencl, /* OpenCL */
203 language_minimal, /* All other languages, minimal support only */
204 nr_languages
205 };
206
207 enum precision_type
208 {
209 single_precision,
210 double_precision,
211 unspecified_precision
212 };
213
214 /* * A generic, not quite boolean, enumeration. This is used for
215 set/show commands in which the options are on/off/automatic. */
216 enum auto_boolean
217 {
218 AUTO_BOOLEAN_TRUE,
219 AUTO_BOOLEAN_FALSE,
220 AUTO_BOOLEAN_AUTO
221 };
222
223 /* * Potential ways that a function can return a value of a given
224 type. */
225
226 enum return_value_convention
227 {
228 /* * Where the return value has been squeezed into one or more
229 registers. */
230 RETURN_VALUE_REGISTER_CONVENTION,
231 /* * Commonly known as the "struct return convention". The caller
232 passes an additional hidden first parameter to the caller. That
233 parameter contains the address at which the value being returned
234 should be stored. While typically, and historically, used for
235 large structs, this is convention is applied to values of many
236 different types. */
237 RETURN_VALUE_STRUCT_CONVENTION,
238 /* * Like the "struct return convention" above, but where the ABI
239 guarantees that the called function stores the address at which
240 the value being returned is stored in a well-defined location,
241 such as a register or memory slot in the stack frame. Don't use
242 this if the ABI doesn't explicitly guarantees this. */
243 RETURN_VALUE_ABI_RETURNS_ADDRESS,
244 /* * Like the "struct return convention" above, but where the ABI
245 guarantees that the address at which the value being returned is
246 stored will be available in a well-defined location, such as a
247 register or memory slot in the stack frame. Don't use this if
248 the ABI doesn't explicitly guarantees this. */
249 RETURN_VALUE_ABI_PRESERVES_ADDRESS,
250 };
251
252 /* Needed for various prototypes */
253
254 struct symtab;
255 struct breakpoint;
256 struct frame_info;
257 struct gdbarch;
258 struct value;
259
260 /* From main.c. */
261
262 /* This really belong in utils.c (path-utils.c?), but it references some
263 globals that are currently only available to main.c. */
264 extern char *relocate_gdb_directory (const char *initial, int flag);
265
266 \f
267 /* Annotation stuff. */
268
269 extern int annotation_level; /* in stack.c */
270 \f
271
272 /* From regex.c or libc. BSD 4.4 declares this with the argument type as
273 "const char *" in unistd.h, so we can't declare the argument
274 as "char *". */
275
276 extern char *re_comp (const char *);
277
278 /* From symfile.c */
279
280 extern void symbol_file_command (char *, int);
281
282 /* * Remote targets may wish to use this as their load function. */
283 extern void generic_load (const char *name, int from_tty);
284
285 /* * Report on STREAM the performance of memory transfer operation,
286 such as 'load'.
287 @param DATA_COUNT is the number of bytes transferred.
288 @param WRITE_COUNT is the number of separate write operations, or 0,
289 if that information is not available.
290 @param START_TIME is the time at which an operation was started.
291 @param END_TIME is the time at which an operation ended. */
292 struct timeval;
293 extern void print_transfer_performance (struct ui_file *stream,
294 unsigned long data_count,
295 unsigned long write_count,
296 const struct timeval *start_time,
297 const struct timeval *end_time);
298
299 /* From top.c */
300
301 typedef void initialize_file_ftype (void);
302
303 extern char *gdb_readline (char *);
304
305 extern char *gdb_readline_wrapper (char *);
306
307 extern char *command_line_input (char *, int, char *);
308
309 extern void print_prompt (void);
310
311 extern int input_from_terminal_p (void);
312
313 extern int info_verbose;
314
315 /* From printcmd.c */
316
317 extern void set_next_address (struct gdbarch *, CORE_ADDR);
318
319 extern int print_address_symbolic (struct gdbarch *, CORE_ADDR,
320 struct ui_file *, int, char *);
321
322 extern int build_address_symbolic (struct gdbarch *,
323 CORE_ADDR addr,
324 int do_demangle,
325 char **name,
326 int *offset,
327 char **filename,
328 int *line,
329 int *unmapped);
330
331 extern void print_address (struct gdbarch *, CORE_ADDR, struct ui_file *);
332 extern const char *pc_prefix (CORE_ADDR);
333
334 /* From source.c */
335
336 /* See openp function definition for their description. */
337 #define OPF_TRY_CWD_FIRST 0x01
338 #define OPF_SEARCH_IN_PATH 0x02
339 #define OPF_RETURN_REALPATH 0x04
340
341 extern int openp (const char *, int, const char *, int, char **);
342
343 extern int source_full_path_of (const char *, char **);
344
345 extern void mod_path (char *, char **);
346
347 extern void add_path (char *, char **, int);
348
349 extern void directory_switch (char *, int);
350
351 extern char *source_path;
352
353 extern void init_source_path (void);
354
355 /* From exec.c */
356
357 /* * Process memory area starting at ADDR with length SIZE. Area is
358 readable iff READ is non-zero, writable if WRITE is non-zero,
359 executable if EXEC is non-zero. Area is possibly changed against
360 its original file based copy if MODIFIED is non-zero. DATA is
361 passed without changes from a caller. */
362
363 typedef int (*find_memory_region_ftype) (CORE_ADDR addr, unsigned long size,
364 int read, int write, int exec,
365 int modified, void *data);
366
367 /* * Possible lvalue types. Like enum language, this should be in
368 value.h, but needs to be here for the same reason. */
369
370 enum lval_type
371 {
372 /* * Not an lval. */
373 not_lval,
374 /* * In memory. */
375 lval_memory,
376 /* * In a register. Registers are relative to a frame. */
377 lval_register,
378 /* * In a gdb internal variable. */
379 lval_internalvar,
380 /* * Value encapsulates a callable defined in an extension language. */
381 lval_xcallable,
382 /* * Part of a gdb internal variable (structure field). */
383 lval_internalvar_component,
384 /* * Value's bits are fetched and stored using functions provided
385 by its creator. */
386 lval_computed
387 };
388
389 /* * Control types for commands. */
390
391 enum misc_command_type
392 {
393 ok_command,
394 end_command,
395 else_command,
396 nop_command
397 };
398
399 enum command_control_type
400 {
401 simple_control,
402 break_control,
403 continue_control,
404 while_control,
405 if_control,
406 commands_control,
407 python_control,
408 guile_control,
409 while_stepping_control,
410 invalid_control
411 };
412
413 /* * Structure for saved commands lines (for breakpoints, defined
414 commands, etc). */
415
416 struct command_line
417 {
418 struct command_line *next;
419 char *line;
420 enum command_control_type control_type;
421 /* * The number of elements in body_list. */
422 int body_count;
423 /* * For composite commands, the nested lists of commands. For
424 example, for "if" command this will contain the then branch and
425 the else branch, if that is available. */
426 struct command_line **body_list;
427 };
428
429 extern struct command_line *read_command_lines (char *, int, int,
430 void (*)(char *, void *),
431 void *);
432 extern struct command_line *read_command_lines_1 (char * (*) (void), int,
433 void (*)(char *, void *),
434 void *);
435
436 extern void free_command_lines (struct command_line **);
437
438 /* * Parameters of the "info proc" command. */
439
440 enum info_proc_what
441 {
442 /* * Display the default cmdline, cwd and exe outputs. */
443 IP_MINIMAL,
444
445 /* * Display `info proc mappings'. */
446 IP_MAPPINGS,
447
448 /* * Display `info proc status'. */
449 IP_STATUS,
450
451 /* * Display `info proc stat'. */
452 IP_STAT,
453
454 /* * Display `info proc cmdline'. */
455 IP_CMDLINE,
456
457 /* * Display `info proc exe'. */
458 IP_EXE,
459
460 /* * Display `info proc cwd'. */
461 IP_CWD,
462
463 /* * Display all of the above. */
464 IP_ALL
465 };
466
467 /* * String containing the current directory (what getwd would return). */
468
469 extern char *current_directory;
470
471 /* * Default radixes for input and output. Only some values supported. */
472 extern unsigned input_radix;
473 extern unsigned output_radix;
474
475 /* * Possibilities for prettyformat parameters to routines which print
476 things. Like enum language, this should be in value.h, but needs
477 to be here for the same reason. FIXME: If we can eliminate this
478 as an arg to LA_VAL_PRINT, then we can probably move it back to
479 value.h. */
480
481 enum val_prettyformat
482 {
483 Val_no_prettyformat = 0,
484 Val_prettyformat,
485 /* * Use the default setting which the user has specified. */
486 Val_prettyformat_default
487 };
488
489 /* * Optional native machine support. Non-native (and possibly pure
490 multi-arch) targets do not need a "nm.h" file. This will be a
491 symlink to one of the nm-*.h files, built by the `configure'
492 script. */
493
494 #ifdef GDB_NM_FILE
495 #include "nm.h"
496 #endif
497
498 /* Assume that fopen accepts the letter "b" in the mode string.
499 It is demanded by ISO C9X, and should be supported on all
500 platforms that claim to have a standard-conforming C library. On
501 true POSIX systems it will be ignored and have no effect. There
502 may still be systems without a standard-conforming C library where
503 an ISO C9X compiler (GCC) is available. Known examples are SunOS
504 4.x and 4.3BSD. This assumption means these systems are no longer
505 supported. */
506 #ifndef FOPEN_RB
507 # include "fopen-bin.h"
508 #endif
509
510 /* Defaults for system-wide constants (if not defined by xm.h, we fake it).
511 FIXME: Assumes 2's complement arithmetic. */
512
513 #if !defined (UINT_MAX)
514 #define UINT_MAX ((unsigned int)(~0)) /* 0xFFFFFFFF for 32-bits */
515 #endif
516
517 #if !defined (INT_MAX)
518 #define INT_MAX ((int)(UINT_MAX >> 1)) /* 0x7FFFFFFF for 32-bits */
519 #endif
520
521 #if !defined (INT_MIN)
522 #define INT_MIN ((int)((int) ~0 ^ INT_MAX)) /* 0x80000000 for 32-bits */
523 #endif
524
525 #if !defined (ULONG_MAX)
526 #define ULONG_MAX ((unsigned long)(~0L)) /* 0xFFFFFFFF for 32-bits */
527 #endif
528
529 #if !defined (LONG_MAX)
530 #define LONG_MAX ((long)(ULONG_MAX >> 1)) /* 0x7FFFFFFF for 32-bits */
531 #endif
532
533 #if !defined (ULONGEST_MAX)
534 #define ULONGEST_MAX (~(ULONGEST)0) /* 0xFFFFFFFFFFFFFFFF for 64-bits */
535 #endif
536
537 #if !defined (LONGEST_MAX) /* 0x7FFFFFFFFFFFFFFF for 64-bits */
538 #define LONGEST_MAX ((LONGEST)(ULONGEST_MAX >> 1))
539 #endif
540
541 /* * Convert a LONGEST to an int. This is used in contexts (e.g. number of
542 arguments to a function, number in a value history, register number, etc.)
543 where the value must not be larger than can fit in an int. */
544
545 extern int longest_to_int (LONGEST);
546
547 #include "common-utils.h"
548
549 /* * List of known OS ABIs. If you change this, make sure to update the
550 table in osabi.c. */
551 enum gdb_osabi
552 {
553 GDB_OSABI_UNINITIALIZED = -1, /* For struct gdbarch_info. */
554
555 GDB_OSABI_UNKNOWN = 0, /* keep this zero */
556
557 GDB_OSABI_SVR4,
558 GDB_OSABI_HURD,
559 GDB_OSABI_SOLARIS,
560 GDB_OSABI_OSF1,
561 GDB_OSABI_LINUX,
562 GDB_OSABI_FREEBSD_AOUT,
563 GDB_OSABI_FREEBSD_ELF,
564 GDB_OSABI_NETBSD_AOUT,
565 GDB_OSABI_NETBSD_ELF,
566 GDB_OSABI_OPENBSD_ELF,
567 GDB_OSABI_WINCE,
568 GDB_OSABI_GO32,
569 GDB_OSABI_IRIX,
570 GDB_OSABI_HPUX_ELF,
571 GDB_OSABI_HPUX_SOM,
572 GDB_OSABI_QNXNTO,
573 GDB_OSABI_CYGWIN,
574 GDB_OSABI_AIX,
575 GDB_OSABI_DICOS,
576 GDB_OSABI_DARWIN,
577 GDB_OSABI_SYMBIAN,
578 GDB_OSABI_OPENVMS,
579 GDB_OSABI_LYNXOS178,
580 GDB_OSABI_NEWLIB,
581
582 GDB_OSABI_INVALID /* keep this last */
583 };
584
585 /* Global functions from other, non-gdb GNU thingies.
586 Libiberty thingies are no longer declared here. We include libiberty.h
587 above, instead. */
588
589 /* From other system libraries */
590
591 #ifndef atof
592 extern double atof (const char *); /* X3.159-1989 4.10.1.1 */
593 #endif
594
595 /* Various possibilities for alloca. */
596 #ifndef alloca
597 #ifdef __GNUC__
598 #define alloca __builtin_alloca
599 #else /* Not GNU C */
600 #ifdef HAVE_ALLOCA_H
601 #include <alloca.h>
602 #else
603 #ifdef _AIX
604 #pragma alloca
605 #else
606
607 /* We need to be careful not to declare this in a way which conflicts with
608 bison. Bison never declares it as char *, but under various circumstances
609 (like __hpux) we need to use void *. */
610 extern void *alloca ();
611 #endif /* Not _AIX */
612 #endif /* Not HAVE_ALLOCA_H */
613 #endif /* Not GNU C */
614 #endif /* alloca not defined */
615
616 /* Dynamic target-system-dependent parameters for GDB. */
617 #include "gdbarch.h"
618
619 /* * Maximum size of a register. Something small, but large enough for
620 all known ISAs. If it turns out to be too small, make it bigger. */
621
622 enum { MAX_REGISTER_SIZE = 64 };
623
624 /* Static target-system-dependent parameters for GDB. */
625
626 /* * Number of bits in a char or unsigned char for the target machine.
627 Just like CHAR_BIT in <limits.h> but describes the target machine. */
628 #if !defined (TARGET_CHAR_BIT)
629 #define TARGET_CHAR_BIT 8
630 #endif
631
632 /* * If we picked up a copy of CHAR_BIT from a configuration file
633 (which may get it by including <limits.h>) then use it to set
634 the number of bits in a host char. If not, use the same size
635 as the target. */
636
637 #if defined (CHAR_BIT)
638 #define HOST_CHAR_BIT CHAR_BIT
639 #else
640 #define HOST_CHAR_BIT TARGET_CHAR_BIT
641 #endif
642
643 /* In findvar.c. */
644
645 extern LONGEST extract_signed_integer (const gdb_byte *, int,
646 enum bfd_endian);
647
648 extern ULONGEST extract_unsigned_integer (const gdb_byte *, int,
649 enum bfd_endian);
650
651 extern int extract_long_unsigned_integer (const gdb_byte *, int,
652 enum bfd_endian, LONGEST *);
653
654 extern CORE_ADDR extract_typed_address (const gdb_byte *buf,
655 struct type *type);
656
657 extern void store_signed_integer (gdb_byte *, int,
658 enum bfd_endian, LONGEST);
659
660 extern void store_unsigned_integer (gdb_byte *, int,
661 enum bfd_endian, ULONGEST);
662
663 extern void store_typed_address (gdb_byte *buf, struct type *type,
664 CORE_ADDR addr);
665
666 \f
667 /* From valops.c */
668
669 extern int watchdog;
670
671 /* Hooks for alternate command interfaces. */
672
673 /* * The name of the interpreter if specified on the command line. */
674 extern char *interpreter_p;
675
676 /* If a given interpreter matches INTERPRETER_P then it should update
677 deprecated_init_ui_hook with the per-interpreter implementation. */
678 /* FIXME: deprecated_init_ui_hook should be moved here. */
679
680 struct target_waitstatus;
681 struct cmd_list_element;
682
683 extern void (*deprecated_pre_add_symbol_hook) (const char *);
684 extern void (*deprecated_post_add_symbol_hook) (void);
685 extern void (*selected_frame_level_changed_hook) (int);
686 extern int (*deprecated_ui_loop_hook) (int signo);
687 extern void (*deprecated_init_ui_hook) (char *argv0);
688 extern void (*deprecated_show_load_progress) (const char *section,
689 unsigned long section_sent,
690 unsigned long section_size,
691 unsigned long total_sent,
692 unsigned long total_size);
693 extern void (*deprecated_print_frame_info_listing_hook) (struct symtab * s,
694 int line,
695 int stopline,
696 int noerror);
697 extern int (*deprecated_query_hook) (const char *, va_list)
698 ATTRIBUTE_FPTR_PRINTF(1,0);
699 extern void (*deprecated_warning_hook) (const char *, va_list)
700 ATTRIBUTE_FPTR_PRINTF(1,0);
701 extern void (*deprecated_interactive_hook) (void);
702 extern void (*deprecated_readline_begin_hook) (char *, ...)
703 ATTRIBUTE_FPTR_PRINTF_1;
704 extern char *(*deprecated_readline_hook) (char *);
705 extern void (*deprecated_readline_end_hook) (void);
706 extern void (*deprecated_register_changed_hook) (int regno);
707 extern void (*deprecated_context_hook) (int);
708 extern ptid_t (*deprecated_target_wait_hook) (ptid_t ptid,
709 struct target_waitstatus *status,
710 int options);
711
712 extern void (*deprecated_attach_hook) (void);
713 extern void (*deprecated_detach_hook) (void);
714 extern void (*deprecated_call_command_hook) (struct cmd_list_element * c,
715 char *cmd, int from_tty);
716
717 extern int (*deprecated_ui_load_progress_hook) (const char *section,
718 unsigned long num);
719
720 /* If this definition isn't overridden by the header files, assume
721 that isatty and fileno exist on this system. */
722 #ifndef ISATTY
723 #define ISATTY(FP) (isatty (fileno (FP)))
724 #endif
725
726 /* * A width that can achieve a better legibility for GDB MI mode. */
727 #define GDB_MI_MSG_WIDTH 80
728
729 /* From progspace.c */
730
731 extern void initialize_progspace (void);
732 extern void initialize_inferiors (void);
733
734 /* * Special block numbers */
735
736 enum block_enum
737 {
738 GLOBAL_BLOCK = 0,
739 STATIC_BLOCK = 1,
740 FIRST_LOCAL_BLOCK = 2
741 };
742
743 #include "utils.h"
744
745 #endif /* #ifndef DEFS_H */