]> Git Repo - binutils.git/blame - gdb/defs.h
Automatic date update in version.in
[binutils.git] / gdb / defs.h
CommitLineData
a0b31db1
JK
1/* *INDENT-OFF* */ /* ATTRIBUTE_PRINTF confuses indent, avoid running it
2 for now. */
c906108c 3/* Basic, host-specific, and target-specific definitions for GDB.
4a94e368 4 Copyright (C) 1986-2022 Free Software Foundation, Inc.
c906108c 5
c5aa993b 6 This file is part of GDB.
c906108c 7
c5aa993b
JM
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
a9762ec7 10 the Free Software Foundation; either version 3 of the License, or
c5aa993b 11 (at your option) any later version.
c906108c 12
c5aa993b
JM
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.
c906108c 17
c5aa993b 18 You should have received a copy of the GNU General Public License
a9762ec7 19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
c906108c
SS
20
21#ifndef DEFS_H
22#define DEFS_H
23
d26e3629
KY
24#ifdef GDBSERVER
25# error gdbserver should not include gdb/defs.h
26#endif
27
268a13a5 28#include "gdbsupport/common-defs.h"
975ac915 29
01027315
TT
30#undef PACKAGE
31#undef PACKAGE_NAME
32#undef PACKAGE_VERSION
33#undef PACKAGE_STRING
34#undef PACKAGE_TARNAME
35
36#include <config.h>
37#include "bfd.h"
38
8b04f8b6 39#include <sys/types.h>
c906108c
SS
40#include <limits.h>
41
06e476f5
JB
42/* The libdecnumber library, on which GDB depends, includes a header file
43 called gstdint.h instead of relying directly on stdint.h. GDB, on the
44 other hand, includes stdint.h directly, relying on the fact that gnulib
45 generates a copy if the system doesn't provide one or if it is missing
46 some features. Unfortunately, gstdint.h and stdint.h cannot be included
47 at the same time, which may happen when we include a file from
48 libdecnumber.
49
50 The following macro definition effectively prevents the inclusion of
51 gstdint.h, as all the definitions it provides are guarded against
52 the GCC_GENERATED_STDINT_H macro. We already have gnulib/stdint.h
53 included, so it's ok to blank out gstdint.h. */
54#define GCC_GENERATED_STDINT_H 1
55
104c1213 56#include <unistd.h>
d8d2a3ee 57
637d6690
CW
58#include <fcntl.h>
59
6c7a06a3
TT
60#include "gdb_wchar.h"
61
48faced0
DE
62#include "ui-file.h"
63
268a13a5
TT
64#include "gdbsupport/host-defs.h"
65#include "gdbsupport/enum-flags.h"
2a50938a 66#include "gdbsupport/array-view.h"
48faced0 67
bb2ec1b3
TT
68/* Scope types enumerator. List the types of scopes the compiler will
69 accept. */
70
71enum compile_i_scope_types
72 {
73 COMPILE_I_INVALID_SCOPE,
74
75 /* A simple scope. Wrap an expression into a simple scope that
76 takes no arguments, returns no value, and uses the generic
77 function name "_gdb_expr". */
78
79 COMPILE_I_SIMPLE_SCOPE,
80
81 /* Do not wrap the expression,
82 it has to provide function "_gdb_expr" on its own. */
83 COMPILE_I_RAW_SCOPE,
36de76f9
JK
84
85 /* A printable expression scope. Wrap an expression into a scope
86 suitable for the "compile print" command. It uses the generic
87 function name "_gdb_expr". COMPILE_I_PRINT_ADDRESS_SCOPE variant
88 is the usual one, taking address of the object.
89 COMPILE_I_PRINT_VALUE_SCOPE is needed for arrays where the array
90 name already specifies its address. See get_out_value_type. */
91 COMPILE_I_PRINT_ADDRESS_SCOPE,
92 COMPILE_I_PRINT_VALUE_SCOPE,
bb2ec1b3
TT
93 };
94
6f98355c
YQ
95
96template<typename T>
97using RequireLongest = gdb::Requires<gdb::Or<std::is_same<T, LONGEST>,
98 std::is_same<T, ULONGEST>>>;
99
975ac915 100/* Just in case they're not defined in stdio.h. */
c906108c
SS
101
102#ifndef SEEK_SET
103#define SEEK_SET 0
104#endif
105#ifndef SEEK_CUR
106#define SEEK_CUR 1
107#endif
108
637d6690
CW
109/* The O_BINARY flag is defined in fcntl.h on some non-Posix platforms.
110 It is used as an access modifier in calls to open(), where it acts
0963b4bd
MS
111 similarly to the "b" character in fopen()'s MODE argument. On Posix
112 platforms it should be a no-op, so it is defined as 0 here. This
113 ensures that the symbol may be used freely elsewhere in gdb. */
637d6690
CW
114
115#ifndef O_BINARY
116#define O_BINARY 0
117#endif
118
8e3b41a9 119#include "hashtab.h"
c906108c 120
a8b16220 121/* * System root path, used to find libraries etc. */
e0700ba4 122extern std::string gdb_sysroot;
030292b7 123
a8b16220 124/* * GDB datadir, used to store data files. */
f2aec7f6 125extern std::string gdb_datadir;
b14b1491 126
f2aec7f6 127/* * If not empty, the possibly relocated path to python's "lib" directory
0c4a4063 128 specified with --with-python. */
f2aec7f6 129extern std::string python_libdir;
0c4a4063 130
a8b16220 131/* * Search path for separate debug files. */
e0700ba4 132extern std::string debug_file_directory;
aa28a74e 133
585a46a2
PA
134/* GDB's SIGINT handler basically sets a flag; code that might take a
135 long time before it gets back to the event loop, and which ought to
136 be interruptible, checks this flag using the QUIT macro, which, if
137 GDB has the terminal, throws a quit exception.
522002f9 138
f0881b37
PA
139 In addition to setting a flag, the SIGINT handler also marks a
140 select/poll-able file descriptor as read-ready. That is used by
141 interruptible_select in order to support interrupting blocking I/O
142 in a race-free manner.
143
6dddc817
DE
144 These functions use the extension_language_ops API to allow extension
145 language(s) and GDB SIGINT handling to coexist seamlessly. */
522002f9 146
a8b16220 147/* * Evaluate to non-zero if the quit flag is set, zero otherwise. This
522002f9
TT
148 will clear the quit flag as a side effect. */
149extern int check_quit_flag (void);
a8b16220 150/* * Set the quit flag. */
522002f9
TT
151extern void set_quit_flag (void);
152
048094ac
PA
153/* The current quit handler (and its type). This is called from the
154 QUIT macro. See default_quit_handler below for default behavior.
155 Parts of GDB temporarily override this to e.g., completely suppress
156 Ctrl-C because it would not be safe to throw. E.g., normally, you
157 wouldn't want to quit between a RSP command and its response, as
158 that would break the communication with the target, but you may
159 still want to intercept the Ctrl-C and offer to disconnect if the
160 user presses Ctrl-C multiple times while the target is stuck
161 waiting for the wedged remote stub. */
162typedef void (quit_handler_ftype) (void);
163extern quit_handler_ftype *quit_handler;
164
048094ac
PA
165/* The default quit handler. Checks whether Ctrl-C was pressed, and
166 if so:
167
168 - If GDB owns the terminal, throws a quit exception.
169
170 - If GDB does not own the terminal, forwards the Ctrl-C to the
171 target.
172*/
173extern void default_quit_handler (void);
174
06c868a8
JK
175/* Flag that function quit should call quit_force. */
176extern volatile int sync_quit_force_run;
177
917317f4 178extern void quit (void);
c906108c 179
abc56d60
PA
180/* Helper for the QUIT macro. */
181
182extern void maybe_quit (void);
183
048094ac
PA
184/* Check whether a Ctrl-C was typed, and if so, call the current quit
185 handler. */
abc56d60 186#define QUIT maybe_quit ()
c906108c 187
f0881b37
PA
188/* Set the serial event associated with the quit flag. */
189extern void quit_serial_event_set (void);
190
191/* Clear the serial event associated with the quit flag. */
192extern void quit_serial_event_clear (void);
193
a8b16220 194/* * Languages represented in the symbol table and elsewhere.
c906108c
SS
195 This should probably be in language.h, but since enum's can't
196 be forward declared to satisfy opaque references before their
8b302db8
TT
197 actual definition, needs to be here.
198
199 The constants here are in priority order. In particular,
200 demangling is attempted according to this order.
201
202 Note that there's ambiguity between the mangling schemes of some of
203 these languages, so some symbols could be successfully demangled by
204 several languages. For that reason, the constants here are sorted
9c37b5ae
TT
205 in the order we'll attempt demangling them. For example: Rust uses
206 C++ mangling, so must come after C++; Ada must come last (see
47e77640
PA
207 ada_sniff_from_mangled_name). (Keep this order in sync with the
208 'languages' array in language.c.) */
c906108c 209
917317f4
JM
210enum language
211 {
212 language_unknown, /* Language not known */
213 language_auto, /* Placeholder for automatic setting */
214 language_c, /* C */
8b302db8 215 language_objc, /* Objective-C */
917317f4 216 language_cplus, /* C++ */
6aecb9c2 217 language_d, /* D */
a766d390 218 language_go, /* Go */
917317f4
JM
219 language_fortran, /* Fortran */
220 language_m2, /* Modula-2 */
221 language_asm, /* Assembly language */
20a0e81d 222 language_pascal, /* Pascal */
f4b8a18d 223 language_opencl, /* OpenCL */
c44af4eb 224 language_rust, /* Rust */
f290d38e 225 language_minimal, /* All other languages, minimal support only */
8b302db8 226 language_ada, /* Ada */
f290d38e 227 nr_languages
917317f4 228 };
c906108c 229
51cdc993
DE
230/* The number of bits needed to represent all languages, with enough
231 padding to allow for reasonable growth. */
232#define LANGUAGE_BITS 5
233gdb_static_assert (nr_languages <= (1 << LANGUAGE_BITS));
234
ac3972d8
TV
235/* The number of bytes needed to represent all languages. */
236#define LANGUAGE_BYTES ((LANGUAGE_BITS + HOST_CHAR_BIT - 1) / HOST_CHAR_BIT)
237
c906108c 238enum precision_type
917317f4
JM
239 {
240 single_precision,
241 double_precision,
242 unspecified_precision
243 };
244
a8b16220
SS
245/* * A generic, not quite boolean, enumeration. This is used for
246 set/show commands in which the options are on/off/automatic. */
7f19b9a2
AC
247enum auto_boolean
248{
249 AUTO_BOOLEAN_TRUE,
250 AUTO_BOOLEAN_FALSE,
251 AUTO_BOOLEAN_AUTO
252};
253
a8b16220
SS
254/* * Potential ways that a function can return a value of a given
255 type. */
256
92ad9cd9
AC
257enum return_value_convention
258{
a8b16220 259 /* * Where the return value has been squeezed into one or more
92ad9cd9
AC
260 registers. */
261 RETURN_VALUE_REGISTER_CONVENTION,
a8b16220 262 /* * Commonly known as the "struct return convention". The caller
92ad9cd9
AC
263 passes an additional hidden first parameter to the caller. That
264 parameter contains the address at which the value being returned
265 should be stored. While typically, and historically, used for
266 large structs, this is convention is applied to values of many
267 different types. */
31db7b6c 268 RETURN_VALUE_STRUCT_CONVENTION,
a8b16220 269 /* * Like the "struct return convention" above, but where the ABI
31db7b6c
MK
270 guarantees that the called function stores the address at which
271 the value being returned is stored in a well-defined location,
272 such as a register or memory slot in the stack frame. Don't use
273 this if the ABI doesn't explicitly guarantees this. */
274 RETURN_VALUE_ABI_RETURNS_ADDRESS,
a8b16220 275 /* * Like the "struct return convention" above, but where the ABI
31db7b6c
MK
276 guarantees that the address at which the value being returned is
277 stored will be available in a well-defined location, such as a
278 register or memory slot in the stack frame. Don't use this if
279 the ABI doesn't explicitly guarantees this. */
280 RETURN_VALUE_ABI_PRESERVES_ADDRESS,
92ad9cd9
AC
281};
282
c906108c
SS
283/* Needed for various prototypes */
284
c906108c
SS
285struct symtab;
286struct breakpoint;
bd2b40ac 287class frame_info_ptr;
8b9b9e1a 288struct gdbarch;
028d0ed5 289struct value;
c906108c 290
478aac75
DE
291/* From main.c. */
292
293/* This really belong in utils.c (path-utils.c?), but it references some
294 globals that are currently only available to main.c. */
f2aec7f6 295extern std::string relocate_gdb_directory (const char *initial, bool relocatable);
478aac75 296
c906108c
SS
297\f
298/* Annotation stuff. */
299
917317f4 300extern int annotation_level; /* in stack.c */
c906108c 301\f
c906108c
SS
302
303/* From regex.c or libc. BSD 4.4 declares this with the argument type as
304 "const char *" in unistd.h, so we can't declare the argument
305 as "char *". */
306
56000a98 307EXTERN_C char *re_comp (const char *);
c906108c
SS
308
309/* From symfile.c */
310
1d8b34a7 311extern void symbol_file_command (const char *, int);
917317f4 312
c906108c
SS
313/* From top.c */
314
6426a772
JM
315typedef void initialize_file_ftype (void);
316
38bcc89d 317extern char *gdb_readline_wrapper (const char *);
b4f5539f 318
992a7040 319extern const char *command_line_input (const char *, const char *);
c906108c 320
917317f4 321extern void print_prompt (void);
c906108c 322
268a799a
PA
323struct ui;
324
491144b5 325extern bool info_verbose;
c906108c
SS
326
327/* From printcmd.c */
328
8b9b9e1a 329extern void set_next_address (struct gdbarch *, CORE_ADDR);
c906108c 330
9cb709b6 331extern int print_address_symbolic (struct gdbarch *, CORE_ADDR,
a121b7c1
PA
332 struct ui_file *, int,
333 const char *);
c906108c 334
5af949e3 335extern void print_address (struct gdbarch *, CORE_ADDR, struct ui_file *);
2b28d209 336extern const char *pc_prefix (CORE_ADDR);
c906108c 337
104c1213
JM
338/* From exec.c */
339
a8b16220
SS
340/* * Process memory area starting at ADDR with length SIZE. Area is
341 readable iff READ is non-zero, writable if WRITE is non-zero,
342 executable if EXEC is non-zero. Area is possibly changed against
8181f004
LM
343 its original file based copy if MODIFIED is non-zero.
344
345 MEMORY_TAGGED is true if the memory region contains memory tags, false
346 otherwise.
347
348 DATA is passed without changes from a caller. */
4f69f4c2 349
b8edc417
JK
350typedef int (*find_memory_region_ftype) (CORE_ADDR addr, unsigned long size,
351 int read, int write, int exec,
68cffbbd
LM
352 int modified, bool memory_tagged,
353 void *data);
b8edc417 354
a8b16220 355/* * Possible lvalue types. Like enum language, this should be in
0963b4bd 356 value.h, but needs to be here for the same reason. */
53a5351d
JM
357
358enum lval_type
359 {
a8b16220 360 /* * Not an lval. */
53a5351d 361 not_lval,
a8b16220 362 /* * In memory. */
53a5351d 363 lval_memory,
a8b16220 364 /* * In a register. Registers are relative to a frame. */
53a5351d 365 lval_register,
a8b16220 366 /* * In a gdb internal variable. */
53a5351d 367 lval_internalvar,
e81e7f5e
SC
368 /* * Value encapsulates a callable defined in an extension language. */
369 lval_xcallable,
a8b16220 370 /* * Part of a gdb internal variable (structure field). */
5f5233d4 371 lval_internalvar_component,
a8b16220
SS
372 /* * Value's bits are fetched and stored using functions provided
373 by its creator. */
5f5233d4 374 lval_computed
53a5351d
JM
375 };
376
a8b16220 377/* * Parameters of the "info proc" command. */
145b16a9
UW
378
379enum info_proc_what
380 {
a8b16220 381 /* * Display the default cmdline, cwd and exe outputs. */
145b16a9
UW
382 IP_MINIMAL,
383
a8b16220 384 /* * Display `info proc mappings'. */
145b16a9
UW
385 IP_MAPPINGS,
386
a8b16220 387 /* * Display `info proc status'. */
145b16a9
UW
388 IP_STATUS,
389
a8b16220 390 /* * Display `info proc stat'. */
145b16a9
UW
391 IP_STAT,
392
a8b16220 393 /* * Display `info proc cmdline'. */
145b16a9
UW
394 IP_CMDLINE,
395
a8b16220 396 /* * Display `info proc exe'. */
145b16a9
UW
397 IP_EXE,
398
a8b16220 399 /* * Display `info proc cwd'. */
145b16a9
UW
400 IP_CWD,
401
e98ee8c4
JB
402 /* * Display `info proc files'. */
403 IP_FILES,
404
a8b16220 405 /* * Display all of the above. */
145b16a9
UW
406 IP_ALL
407 };
408
a8b16220 409/* * Default radixes for input and output. Only some values supported. */
c906108c
SS
410extern unsigned input_radix;
411extern unsigned output_radix;
412
a8b16220 413/* * Possibilities for prettyformat parameters to routines which print
c906108c
SS
414 things. Like enum language, this should be in value.h, but needs
415 to be here for the same reason. FIXME: If we can eliminate this
416 as an arg to LA_VAL_PRINT, then we can probably move it back to
0963b4bd 417 value.h. */
c906108c 418
2a998fc0 419enum val_prettyformat
917317f4 420 {
2a998fc0
DE
421 Val_no_prettyformat = 0,
422 Val_prettyformat,
a8b16220 423 /* * Use the default setting which the user has specified. */
2a998fc0 424 Val_prettyformat_default
917317f4 425 };
39f77062 426
a8b16220 427/* * Optional native machine support. Non-native (and possibly pure
5a2402b8
AC
428 multi-arch) targets do not need a "nm.h" file. This will be a
429 symlink to one of the nm-*.h files, built by the `configure'
430 script. */
c906108c 431
5a2402b8 432#ifdef GDB_NM_FILE
c906108c 433#include "nm.h"
5a2402b8 434#endif
c906108c 435
06c2338d 436/* Assume that fopen accepts the letter "b" in the mode string.
a880ad57
EZ
437 It is demanded by ISO C9X, and should be supported on all
438 platforms that claim to have a standard-conforming C library. On
06c2338d 439 true POSIX systems it will be ignored and have no effect. There
a880ad57
EZ
440 may still be systems without a standard-conforming C library where
441 an ISO C9X compiler (GCC) is available. Known examples are SunOS
06c2338d
MK
442 4.x and 4.3BSD. This assumption means these systems are no longer
443 supported. */
c906108c 444#ifndef FOPEN_RB
06c2338d 445# include "fopen-bin.h"
c906108c
SS
446#endif
447
c906108c 448/* Defaults for system-wide constants (if not defined by xm.h, we fake it).
0963b4bd 449 FIXME: Assumes 2's complement arithmetic. */
c906108c
SS
450
451#if !defined (UINT_MAX)
0963b4bd 452#define UINT_MAX ((unsigned int)(~0)) /* 0xFFFFFFFF for 32-bits */
c906108c
SS
453#endif
454
455#if !defined (INT_MAX)
0963b4bd 456#define INT_MAX ((int)(UINT_MAX >> 1)) /* 0x7FFFFFFF for 32-bits */
c906108c
SS
457#endif
458
459#if !defined (INT_MIN)
0963b4bd 460#define INT_MIN ((int)((int) ~0 ^ INT_MAX)) /* 0x80000000 for 32-bits */
c906108c
SS
461#endif
462
463#if !defined (ULONG_MAX)
0963b4bd 464#define ULONG_MAX ((unsigned long)(~0L)) /* 0xFFFFFFFF for 32-bits */
c906108c
SS
465#endif
466
467#if !defined (LONG_MAX)
0963b4bd 468#define LONG_MAX ((long)(ULONG_MAX >> 1)) /* 0x7FFFFFFF for 32-bits */
c906108c
SS
469#endif
470
4ce44c66 471#if !defined (ULONGEST_MAX)
658d99ff 472#define ULONGEST_MAX (~(ULONGEST)0) /* 0xFFFFFFFFFFFFFFFF for 64-bits */
4ce44c66
JM
473#endif
474
658d99ff 475#if !defined (LONGEST_MAX) /* 0x7FFFFFFFFFFFFFFF for 64-bits */
4ce44c66
JM
476#define LONGEST_MAX ((LONGEST)(ULONGEST_MAX >> 1))
477#endif
478
a8b16220 479/* * Convert a LONGEST to an int. This is used in contexts (e.g. number of
c906108c
SS
480 arguments to a function, number in a value history, register number, etc.)
481 where the value must not be larger than can fit in an int. */
482
917317f4 483extern int longest_to_int (LONGEST);
c906108c 484
0b31a4bc
TT
485/* Enumerate the requirements a symbol has in order to be evaluated.
486 These are listed in order of "strength" -- a later entry subsumes
487 earlier ones. This fine-grained distinction is important because
488 it allows for the evaluation of a TLS symbol during unwinding --
489 when unwinding one has access to registers, but not the frame
490 itself, because that is being constructed. */
491
492enum symbol_needs_kind
493{
494 /* No special requirements -- just memory. */
495 SYMBOL_NEEDS_NONE,
496
497 /* The symbol needs registers. */
498 SYMBOL_NEEDS_REGISTERS,
499
500 /* The symbol needs a frame. */
501 SYMBOL_NEEDS_FRAME
502};
503
c906108c
SS
504/* In findvar.c. */
505
6f98355c 506template<typename T, typename = RequireLongest<T>>
2a50938a
SM
507T extract_integer (gdb::array_view<const gdb_byte>, enum bfd_endian byte_order);
508
509static inline LONGEST
510extract_signed_integer (gdb::array_view<const gdb_byte> buf,
511 enum bfd_endian byte_order)
512{
513 return extract_integer<LONGEST> (buf, byte_order);
514}
c906108c 515
6f98355c
YQ
516static inline LONGEST
517extract_signed_integer (const gdb_byte *addr, int len,
518 enum bfd_endian byte_order)
519{
2a50938a
SM
520 return extract_signed_integer (gdb::array_view<const gdb_byte> (addr, len),
521 byte_order);
522}
523
524static inline ULONGEST
525extract_unsigned_integer (gdb::array_view<const gdb_byte> buf,
526 enum bfd_endian byte_order)
527{
528 return extract_integer<ULONGEST> (buf, byte_order);
6f98355c
YQ
529}
530
531static inline ULONGEST
532extract_unsigned_integer (const gdb_byte *addr, int len,
533 enum bfd_endian byte_order)
534{
2a50938a
SM
535 return extract_unsigned_integer (gdb::array_view<const gdb_byte> (addr, len),
536 byte_order);
6f98355c 537}
c906108c 538
e17a4113
UW
539extern int extract_long_unsigned_integer (const gdb_byte *, int,
540 enum bfd_endian, LONGEST *);
c906108c 541
0d509538
AC
542extern CORE_ADDR extract_typed_address (const gdb_byte *buf,
543 struct type *type);
4478b372 544
6f98355c
YQ
545/* All 'store' functions accept a host-format integer and store a
546 target-format integer at ADDR which is LEN bytes long. */
c906108c 547
6f98355c
YQ
548template<typename T, typename = RequireLongest<T>>
549extern void store_integer (gdb_byte *addr, int len, enum bfd_endian byte_order,
550 T val);
551
552static inline void
553store_signed_integer (gdb_byte *addr, int len,
554 enum bfd_endian byte_order, LONGEST val)
555{
556 return store_integer (addr, len, byte_order, val);
557}
558
559static inline void
560store_unsigned_integer (gdb_byte *addr, int len,
561 enum bfd_endian byte_order, ULONGEST val)
562{
563 return store_integer (addr, len, byte_order, val);
564}
c906108c 565
0d509538
AC
566extern void store_typed_address (gdb_byte *buf, struct type *type,
567 CORE_ADDR addr);
4478b372 568
b057297a
AH
569extern void copy_integer_to_size (gdb_byte *dest, int dest_size,
570 const gdb_byte *source, int source_size,
571 bool is_signed, enum bfd_endian byte_order);
572
c906108c 573/* Hooks for alternate command interfaces. */
8b93c638 574
c906108c
SS
575struct target_waitstatus;
576struct cmd_list_element;
c906108c 577
769d7dc4
AC
578extern void (*deprecated_pre_add_symbol_hook) (const char *);
579extern void (*deprecated_post_add_symbol_hook) (void);
11c949aa 580extern void (*selected_frame_level_changed_hook) (int);
98bbd631 581extern int (*deprecated_ui_loop_hook) (int signo);
9a4105ab
AC
582extern void (*deprecated_show_load_progress) (const char *section,
583 unsigned long section_sent,
584 unsigned long section_size,
585 unsigned long total_sent,
586 unsigned long total_size);
587extern void (*deprecated_print_frame_info_listing_hook) (struct symtab * s,
3e43a32a
MS
588 int line,
589 int stopline,
9a4105ab 590 int noerror);
bee0189a
DJ
591extern int (*deprecated_query_hook) (const char *, va_list)
592 ATTRIBUTE_FPTR_PRINTF(1,0);
593extern void (*deprecated_warning_hook) (const char *, va_list)
594 ATTRIBUTE_FPTR_PRINTF(1,0);
a121b7c1 595extern void (*deprecated_readline_begin_hook) (const char *, ...)
bee0189a 596 ATTRIBUTE_FPTR_PRINTF_1;
38bcc89d 597extern char *(*deprecated_readline_hook) (const char *);
9a4105ab 598extern void (*deprecated_readline_end_hook) (void);
9a4105ab
AC
599extern void (*deprecated_context_hook) (int);
600extern ptid_t (*deprecated_target_wait_hook) (ptid_t ptid,
47608cb1
PA
601 struct target_waitstatus *status,
602 int options);
917317f4 603
9a4105ab
AC
604extern void (*deprecated_attach_hook) (void);
605extern void (*deprecated_detach_hook) (void);
606extern void (*deprecated_call_command_hook) (struct cmd_list_element * c,
95a6b0a1 607 const char *cmd, int from_tty);
917317f4 608
9a4105ab
AC
609extern int (*deprecated_ui_load_progress_hook) (const char *section,
610 unsigned long num);
c906108c 611
104c1213
JM
612/* If this definition isn't overridden by the header files, assume
613 that isatty and fileno exist on this system. */
614#ifndef ISATTY
615#define ISATTY(FP) (isatty (fileno (FP)))
616#endif
617
a8b16220 618/* * A width that can achieve a better legibility for GDB MI mode. */
3347eb1a 619#define GDB_MI_MSG_WIDTH 80
620
6c95b8df
PA
621/* From progspace.c */
622
623extern void initialize_progspace (void);
624extern void initialize_inferiors (void);
625
a8b16220 626/* * Special block numbers */
8903c50d
TT
627
628enum block_enum
629{
630 GLOBAL_BLOCK = 0,
631 STATIC_BLOCK = 1,
632 FIRST_LOCAL_BLOCK = 2
633};
634
76727919 635/* User selection used in observable.h and multiple print functions. */
4034d0ff
AT
636
637enum user_selected_what_flag
638 {
639 /* Inferior selected. */
640 USER_SELECTED_INFERIOR = 1 << 1,
641
642 /* Thread selected. */
643 USER_SELECTED_THREAD = 1 << 2,
644
645 /* Frame selected. */
646 USER_SELECTED_FRAME = 1 << 3
647 };
648DEF_ENUM_FLAGS_TYPE (enum user_selected_what_flag, user_selected_what);
649
48faced0
DE
650#include "utils.h"
651
c906108c 652#endif /* #ifndef DEFS_H */
This page took 3.434096 seconds and 5 git commands to generate.