X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Fdefs.h;h=f4951abb223e9e59ecabdf7747f004759c52cd25;hb=0e1862bb401f47716446aef143b2bf7a4563f541;hp=8513606c2765ad1412953db8d78d37ac740e1f17;hpb=4cb9c816469ef3373d9cdde76e8ab5007cf3739e;p=binutils-gdb.git diff --git a/gdb/defs.h b/gdb/defs.h index 8513606c276..f4951abb223 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -1,7 +1,7 @@ /* *INDENT-OFF* */ /* ATTRIBUTE_PRINTF confuses indent, avoid running it for now. */ /* Basic, host-specific, and target-specific definitions for GDB. - Copyright (C) 1986-2014 Free Software Foundation, Inc. + Copyright (C) 1986-2015 Free Software Foundation, Inc. This file is part of GDB. @@ -28,9 +28,7 @@ #include "common-defs.h" #include -#include /* System call error return status. */ #include -#include /* The libdecnumber library, on which GDB depends, includes a header file called gstdint.h instead of relying directly on stdint.h. GDB, on the @@ -56,6 +54,33 @@ #include "host-defs.h" +/* Scope types enumerator. List the types of scopes the compiler will + accept. */ + +enum compile_i_scope_types + { + COMPILE_I_INVALID_SCOPE, + + /* A simple scope. Wrap an expression into a simple scope that + takes no arguments, returns no value, and uses the generic + function name "_gdb_expr". */ + + COMPILE_I_SIMPLE_SCOPE, + + /* Do not wrap the expression, + it has to provide function "_gdb_expr" on its own. */ + COMPILE_I_RAW_SCOPE, + + /* A printable expression scope. Wrap an expression into a scope + suitable for the "compile print" command. It uses the generic + function name "_gdb_expr". COMPILE_I_PRINT_ADDRESS_SCOPE variant + is the usual one, taking address of the object. + COMPILE_I_PRINT_VALUE_SCOPE is needed for arrays where the array + name already specifies its address. See get_out_value_type. */ + COMPILE_I_PRINT_ADDRESS_SCOPE, + COMPILE_I_PRINT_VALUE_SCOPE, + }; + /* Just in case they're not defined in stdio.h. */ #ifndef SEEK_SET @@ -77,35 +102,6 @@ #include "hashtab.h" -/* Rather than duplicate all the logic in BFD for figuring out what - types to use (which can be pretty complicated), symply define them - in terms of the corresponding type from BFD. */ - -#include "bfd.h" - -/* * A byte from the program being debugged. */ -typedef bfd_byte gdb_byte; - -/* * An address in the program being debugged. Host byte order. */ -typedef bfd_vma CORE_ADDR; - -/* * The largest CORE_ADDR value. */ -#define CORE_ADDR_MAX (~ (CORE_ADDR) 0) - -/* This is to make sure that LONGEST is at least as big as CORE_ADDR. */ - -#ifdef BFD64 - -#define LONGEST BFD_HOST_64_BIT -#define ULONGEST BFD_HOST_U_64_BIT - -#else /* No BFD64 */ - -#define LONGEST long long -#define ULONGEST unsigned long long - -#endif /* No BFD64 */ - #ifndef min #define min(a, b) ((a) < (b) ? (a) : (b)) #endif @@ -113,9 +109,6 @@ typedef bfd_vma CORE_ADDR; #define max(a, b) ((a) > (b) ? (a) : (b)) #endif -/* * Enable xdb commands if set. */ -extern int xdb_commands; - /* * Enable dbx commands if set. */ extern int dbx_commands; @@ -193,6 +186,11 @@ enum language nr_languages }; +/* The number of bits needed to represent all languages, with enough + padding to allow for reasonable growth. */ +#define LANGUAGE_BITS 5 +gdb_static_assert (nr_languages <= (1 << LANGUAGE_BITS)); + enum precision_type { single_precision, @@ -262,7 +260,7 @@ extern int annotation_level; /* in stack.c */ "const char *" in unistd.h, so we can't declare the argument as "char *". */ -extern char *re_comp (const char *); +EXTERN_C char *re_comp (const char *); /* From symfile.c */ @@ -289,11 +287,11 @@ extern void print_transfer_performance (struct ui_file *stream, typedef void initialize_file_ftype (void); -extern char *gdb_readline (char *); +extern char *gdb_readline (const char *); -extern char *gdb_readline_wrapper (char *); +extern char *gdb_readline_wrapper (const char *); -extern char *command_line_input (char *, int, char *); +extern char *command_line_input (const char *, int, char *); extern void print_prompt (void); @@ -394,6 +392,7 @@ enum command_control_type if_control, commands_control, python_control, + compile_control, guile_control, while_stepping_control, invalid_control @@ -407,6 +406,16 @@ struct command_line struct command_line *next; char *line; enum command_control_type control_type; + union + { + struct + { + enum compile_i_scope_types scope; + void *scope_data; + } + compile; + } + control_u; /* * The number of elements in body_list. */ int body_count; /* * For composite commands, the nested lists of commands. For @@ -533,8 +542,6 @@ enum val_prettyformat extern int longest_to_int (LONGEST); -#include "common-utils.h" - /* * List of known OS ABIs. If you change this, make sure to update the table in osabi.c. */ enum gdb_osabi @@ -546,7 +553,6 @@ enum gdb_osabi GDB_OSABI_SVR4, GDB_OSABI_HURD, GDB_OSABI_SOLARIS, - GDB_OSABI_OSF1, GDB_OSABI_LINUX, GDB_OSABI_FREEBSD_AOUT, GDB_OSABI_FREEBSD_ELF, @@ -567,6 +573,7 @@ enum gdb_osabi GDB_OSABI_OPENVMS, GDB_OSABI_LYNXOS178, GDB_OSABI_NEWLIB, + GDB_OSABI_SDE, GDB_OSABI_INVALID /* keep this last */ }; @@ -581,27 +588,6 @@ enum gdb_osabi extern double atof (const char *); /* X3.159-1989 4.10.1.1 */ #endif -/* Various possibilities for alloca. */ -#ifndef alloca -#ifdef __GNUC__ -#define alloca __builtin_alloca -#else /* Not GNU C */ -#ifdef HAVE_ALLOCA_H -#include -#else -#ifdef _AIX -#pragma alloca -#else - -/* We need to be careful not to declare this in a way which conflicts with - bison. Bison never declares it as char *, but under various circumstances - (like __hpux) we need to use void *. */ -extern void *alloca (); -#endif /* Not _AIX */ -#endif /* Not HAVE_ALLOCA_H */ -#endif /* Not GNU C */ -#endif /* alloca not defined */ - /* Dynamic target-system-dependent parameters for GDB. */ #include "gdbarch.h" @@ -610,25 +596,6 @@ extern void *alloca (); enum { MAX_REGISTER_SIZE = 64 }; -/* Static target-system-dependent parameters for GDB. */ - -/* * Number of bits in a char or unsigned char for the target machine. - Just like CHAR_BIT in but describes the target machine. */ -#if !defined (TARGET_CHAR_BIT) -#define TARGET_CHAR_BIT 8 -#endif - -/* * If we picked up a copy of CHAR_BIT from a configuration file - (which may get it by including ) then use it to set - the number of bits in a host char. If not, use the same size - as the target. */ - -#if defined (CHAR_BIT) -#define HOST_CHAR_BIT CHAR_BIT -#else -#define HOST_CHAR_BIT TARGET_CHAR_BIT -#endif - /* In findvar.c. */ extern LONGEST extract_signed_integer (const gdb_byte *, int, @@ -662,10 +629,6 @@ extern int watchdog; /* * The name of the interpreter if specified on the command line. */ extern char *interpreter_p; -/* If a given interpreter matches INTERPRETER_P then it should update - deprecated_init_ui_hook with the per-interpreter implementation. */ -/* FIXME: deprecated_init_ui_hook should be moved here. */ - struct target_waitstatus; struct cmd_list_element; @@ -673,7 +636,6 @@ extern void (*deprecated_pre_add_symbol_hook) (const char *); extern void (*deprecated_post_add_symbol_hook) (void); extern void (*selected_frame_level_changed_hook) (int); extern int (*deprecated_ui_loop_hook) (int signo); -extern void (*deprecated_init_ui_hook) (char *argv0); extern void (*deprecated_show_load_progress) (const char *section, unsigned long section_sent, unsigned long section_size, @@ -690,9 +652,8 @@ extern void (*deprecated_warning_hook) (const char *, va_list) extern void (*deprecated_interactive_hook) (void); extern void (*deprecated_readline_begin_hook) (char *, ...) ATTRIBUTE_FPTR_PRINTF_1; -extern char *(*deprecated_readline_hook) (char *); +extern char *(*deprecated_readline_hook) (const char *); extern void (*deprecated_readline_end_hook) (void); -extern void (*deprecated_register_changed_hook) (int regno); extern void (*deprecated_context_hook) (int); extern ptid_t (*deprecated_target_wait_hook) (ptid_t ptid, struct target_waitstatus *status,