/* *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.
#include "common-defs.h"
#include <sys/types.h>
-#include <errno.h> /* System call error return status. */
#include <limits.h>
-#include <stdint.h>
/* The libdecnumber library, on which GDB depends, includes a header file
called gstdint.h instead of relying directly on stdint.h. GDB, on the
#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
#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
#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;
extern void quit (void);
-/* FIXME: cagney/2000-03-13: It has been suggested that the peformance
- benefits of having a ``QUIT'' macro rather than a function are
- marginal. If the overhead of a QUIT function call is proving
- significant then its calling frequency should probably be reduced
- [kingdon]. A profile analyzing the current situtation is
- needed. */
+/* Helper for the QUIT macro. */
-#define QUIT { \
- if (check_quit_flag () || sync_quit_force_run) quit (); \
- if (deprecated_interactive_hook) deprecated_interactive_hook (); \
-}
+extern void maybe_quit (void);
+
+/* Check whether a Ctrl-C was typed, and if so, call quit. The target
+ is given a chance to process the Ctrl-C. E.g., it may detect that
+ repeated Ctrl-C requests were issued, and choose to close the
+ connection. */
+#define QUIT maybe_quit ()
/* * Languages represented in the symbol table and elsewhere.
This should probably be in language.h, but since enum's can't
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,
"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 */
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);
if_control,
commands_control,
python_control,
+ compile_control,
guile_control,
while_stepping_control,
invalid_control
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
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
GDB_OSABI_SVR4,
GDB_OSABI_HURD,
GDB_OSABI_SOLARIS,
- GDB_OSABI_OSF1,
GDB_OSABI_LINUX,
GDB_OSABI_FREEBSD_AOUT,
GDB_OSABI_FREEBSD_ELF,
GDB_OSABI_OPENVMS,
GDB_OSABI_LYNXOS178,
GDB_OSABI_NEWLIB,
+ GDB_OSABI_SDE,
GDB_OSABI_INVALID /* keep this last */
};
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 <alloca.h>
-#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"
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 <limits.h> 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 <limits.h>) 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,
/* * 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;
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,
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,