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