X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=gdb%2Fdefs.h;h=e5b6c7878b11e96f0afd9de632f4a6f289b5ee23;hb=3c4e2282566d54b974f6929ee5c1270fb3cea4e5;hp=f76293fedf77d723f32b9706153a75c859e5d64a;hpb=3c0aa29aab3949363f8b23d062c2e0cb1ccf017a;p=binutils-gdb.git diff --git a/gdb/defs.h b/gdb/defs.h index f76293fedf7..e5b6c7878b1 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-2017 Free Software Foundation, Inc. + Copyright (C) 1986-2022 Free Software Foundation, Inc. This file is part of GDB. @@ -25,7 +25,16 @@ # error gdbserver should not include gdb/defs.h #endif -#include "common-defs.h" +#include "gdbsupport/common-defs.h" + +#undef PACKAGE +#undef PACKAGE_NAME +#undef PACKAGE_VERSION +#undef PACKAGE_STRING +#undef PACKAGE_TARNAME + +#include +#include "bfd.h" #include #include @@ -52,8 +61,9 @@ #include "ui-file.h" -#include "host-defs.h" -#include "common/enum-flags.h" +#include "gdbsupport/host-defs.h" +#include "gdbsupport/enum-flags.h" +#include "gdbsupport/array-view.h" /* Scope types enumerator. List the types of scopes the compiler will accept. */ @@ -108,21 +118,18 @@ using RequireLongest = gdb::Requires, #include "hashtab.h" -/* * Enable dbx commands if set. */ -extern int dbx_commands; - /* * System root path, used to find libraries etc. */ -extern char *gdb_sysroot; +extern std::string gdb_sysroot; /* * GDB datadir, used to store data files. */ -extern char *gdb_datadir; +extern std::string gdb_datadir; -/* * If non-NULL, the possibly relocated path to python's "lib" directory +/* * If not empty, the possibly relocated path to python's "lib" directory specified with --with-python. */ -extern char *python_libdir; +extern std::string python_libdir; /* * Search path for separate debug files. */ -extern char *debug_file_directory; +extern std::string debug_file_directory; /* GDB's SIGINT handler basically sets a flag; code that might take a long time before it gets back to the event loop, and which ought to @@ -225,6 +232,9 @@ enum language #define LANGUAGE_BITS 5 gdb_static_assert (nr_languages <= (1 << LANGUAGE_BITS)); +/* The number of bytes needed to represent all languages. */ +#define LANGUAGE_BYTES ((LANGUAGE_BITS + HOST_CHAR_BIT - 1) / HOST_CHAR_BIT) + enum precision_type { single_precision, @@ -282,7 +292,7 @@ struct value; /* This really belong in utils.c (path-utils.c?), but it references some globals that are currently only available to main.c. */ -extern char *relocate_gdb_directory (const char *initial, int flag); +extern std::string relocate_gdb_directory (const char *initial, bool relocatable); /* Annotation stuff. */ @@ -300,24 +310,19 @@ EXTERN_C char *re_comp (const char *); extern void symbol_file_command (const char *, int); -/* * Remote targets may wish to use this as their load function. */ -extern void generic_load (const char *name, int from_tty); - /* From top.c */ typedef void initialize_file_ftype (void); extern char *gdb_readline_wrapper (const char *); -extern char *command_line_input (const char *, int, const char *); +extern const char *command_line_input (const char *, const char *); extern void print_prompt (void); struct ui; -extern int input_interactive_p (struct ui *); - -extern int info_verbose; +extern bool info_verbose; /* From printcmd.c */ @@ -327,39 +332,9 @@ extern int print_address_symbolic (struct gdbarch *, CORE_ADDR, struct ui_file *, int, const char *); -extern int build_address_symbolic (struct gdbarch *, - CORE_ADDR addr, - int do_demangle, - char **name, - int *offset, - char **filename, - int *line, - int *unmapped); - extern void print_address (struct gdbarch *, CORE_ADDR, struct ui_file *); extern const char *pc_prefix (CORE_ADDR); -/* From source.c */ - -/* See openp function definition for their description. */ -#define OPF_TRY_CWD_FIRST 0x01 -#define OPF_SEARCH_IN_PATH 0x02 -#define OPF_RETURN_REALPATH 0x04 - -extern int openp (const char *, int, const char *, int, char **); - -extern int source_full_path_of (const char *, char **); - -extern void mod_path (const char *, char **); - -extern void add_path (const char *, char **, int); - -extern void directory_switch (const char *, int); - -extern char *source_path; - -extern void init_source_path (void); - /* From exec.c */ /* * Process memory area starting at ADDR with length SIZE. Area is @@ -370,7 +345,8 @@ extern void init_source_path (void); typedef int (*find_memory_region_ftype) (CORE_ADDR addr, unsigned long size, int read, int write, int exec, - int modified, void *data); + int modified, bool memory_tagged, + void *data); /* * Possible lvalue types. Like enum language, this should be in value.h, but needs to be here for the same reason. */ @@ -419,14 +395,13 @@ enum info_proc_what /* * Display `info proc cwd'. */ IP_CWD, + /* * Display `info proc files'. */ + IP_FILES, + /* * Display all of the above. */ IP_ALL }; -/* * String containing the current directory (what getwd would return). */ - -extern char *current_directory; - /* * Default radixes for input and output. Only some values supported. */ extern unsigned input_radix; extern unsigned output_radix; @@ -503,37 +478,6 @@ enum val_prettyformat extern int longest_to_int (LONGEST); -/* * List of known OS ABIs. If you change this, make sure to update the - table in osabi.c. */ -enum gdb_osabi -{ - GDB_OSABI_UNINITIALIZED = -1, /* For struct gdbarch_info. */ - - GDB_OSABI_UNKNOWN = 0, /* keep this zero */ - - GDB_OSABI_SVR4, - GDB_OSABI_HURD, - GDB_OSABI_SOLARIS, - GDB_OSABI_LINUX, - GDB_OSABI_FREEBSD, - GDB_OSABI_NETBSD, - GDB_OSABI_OPENBSD, - GDB_OSABI_WINCE, - GDB_OSABI_GO32, - GDB_OSABI_QNXNTO, - GDB_OSABI_CYGWIN, - GDB_OSABI_AIX, - GDB_OSABI_DICOS, - GDB_OSABI_DARWIN, - GDB_OSABI_SYMBIAN, - GDB_OSABI_OPENVMS, - GDB_OSABI_LYNXOS178, - GDB_OSABI_NEWLIB, - GDB_OSABI_SDE, - - GDB_OSABI_INVALID /* keep this last */ -}; - /* Enumerate the requirements a symbol has in order to be evaluated. These are listed in order of "strength" -- a later entry subsumes earlier ones. This fine-grained distinction is important because @@ -553,31 +497,39 @@ enum symbol_needs_kind SYMBOL_NEEDS_FRAME }; -/* Dynamic target-system-dependent parameters for GDB. */ -#include "gdbarch.h" - -/* * Maximum size of a register. Something small, but large enough for - all known ISAs. If it turns out to be too small, make it bigger. */ - -enum { MAX_REGISTER_SIZE = 64 }; - /* In findvar.c. */ template> -T extract_integer (const gdb_byte *addr, int len, enum bfd_endian byte_order); +T extract_integer (gdb::array_view, enum bfd_endian byte_order); + +static inline LONGEST +extract_signed_integer (gdb::array_view buf, + enum bfd_endian byte_order) +{ + return extract_integer (buf, byte_order); +} static inline LONGEST extract_signed_integer (const gdb_byte *addr, int len, enum bfd_endian byte_order) { - return extract_integer (addr, len, byte_order); + return extract_signed_integer (gdb::array_view (addr, len), + byte_order); +} + +static inline ULONGEST +extract_unsigned_integer (gdb::array_view buf, + enum bfd_endian byte_order) +{ + return extract_integer (buf, byte_order); } static inline ULONGEST extract_unsigned_integer (const gdb_byte *addr, int len, enum bfd_endian byte_order) { - return extract_integer (addr, len, byte_order); + return extract_unsigned_integer (gdb::array_view (addr, len), + byte_order); } extern int extract_long_unsigned_integer (const gdb_byte *, int, @@ -614,19 +566,8 @@ extern void copy_integer_to_size (gdb_byte *dest, int dest_size, const gdb_byte *source, int source_size, bool is_signed, enum bfd_endian byte_order); -/* From valops.c */ - -extern int watchdog; - -/* From dwarf2read.c */ - -ULONGEST read_unsigned_leb128 (bfd *, const gdb_byte *, unsigned int *); - /* Hooks for alternate command interfaces. */ -/* * The name of the interpreter if specified on the command line. */ -extern char *interpreter_p; - struct target_waitstatus; struct cmd_list_element; @@ -647,7 +588,6 @@ extern int (*deprecated_query_hook) (const char *, va_list) ATTRIBUTE_FPTR_PRINTF(1,0); extern void (*deprecated_warning_hook) (const char *, va_list) ATTRIBUTE_FPTR_PRINTF(1,0); -extern void (*deprecated_interactive_hook) (void); extern void (*deprecated_readline_begin_hook) (const char *, ...) ATTRIBUTE_FPTR_PRINTF_1; extern char *(*deprecated_readline_hook) (const char *); @@ -688,7 +628,7 @@ enum block_enum FIRST_LOCAL_BLOCK = 2 }; -/* User selection used in observer.h and multiple print functions. */ +/* User selection used in observable.h and multiple print functions. */ enum user_selected_what_flag {