X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fdefs.h;h=aa5dd5f1484e2561877ecd083cf06affaf066e96;hb=c246596af760bc57c2af7c5a10afbe5ec0dd9fc2;hp=039bb6ae4791cb5e13c31f111c17867de25b6ed8;hpb=cad9cd605caf93d182a55ce929374ab706b9e876;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/defs.h b/gdb/defs.h index 039bb6ae47..aa5dd5f148 100644 --- a/gdb/defs.h +++ b/gdb/defs.h @@ -96,8 +96,8 @@ extern void quit PARAMS ((void)); #ifdef QUIT /* do twice to force compiler warning */ -#define FIXME "FIXME" -#define FIXME "ignoring redefinition of QUIT" +#define QUIT_FIXME "FIXME" +#define QUIT_FIXME "ignoring redefinition of QUIT" #else #define QUIT { \ if (quit_flag) quit (); \ @@ -118,7 +118,7 @@ enum command_class all_classes = -2, all_commands = -1, /* Classes of commands */ no_class = -1, class_run = 0, class_vars, class_stack, - class_files, class_support, class_info, class_breakpoint, + class_files, class_support, class_info, class_breakpoint, class_trace, class_alias, class_obscure, class_user, class_maintenance, class_pseudo }; @@ -134,6 +134,7 @@ enum language language_auto, /* Placeholder for automatic setting */ language_c, /* C */ language_cplus, /* C++ */ + language_java, /* Java */ language_chill, /* Chill */ language_fortran, /* Fortran */ language_m2, /* Modula-2 */ @@ -230,8 +231,12 @@ extern void init_malloc PARAMS ((void *)); extern void request_quit PARAMS ((int)); extern void do_cleanups PARAMS ((struct cleanup *)); +extern void do_final_cleanups PARAMS ((struct cleanup *)); +extern void do_my_cleanups PARAMS ((struct cleanup **, struct cleanup *)); extern void discard_cleanups PARAMS ((struct cleanup *)); +extern void discard_final_cleanups PARAMS ((struct cleanup *)); +extern void discard_my_cleanups PARAMS ((struct cleanup **, struct cleanup *)); /* The bare make_cleanup function is one of those rare beasts that takes almost any type of function as the first arg and anything that @@ -247,10 +252,18 @@ make_cleanup PARAMS ((void (*function) (void *), void *)); wrong. */ extern struct cleanup *make_cleanup (); +extern struct cleanup * +make_final_cleanup PARAMS ((void (*function) (void *), void *)); +extern struct cleanup * +make_my_cleanup PARAMS ((struct cleanup **, void (*function) (void *), void *)); extern struct cleanup *save_cleanups PARAMS ((void)); +extern struct cleanup *save_final_cleanups PARAMS ((void)); +extern struct cleanup *save_my_cleanups PARAMS ((struct cleanup **)); extern void restore_cleanups PARAMS ((struct cleanup *)); +extern void restore_final_cleanups PARAMS ((struct cleanup *)); +extern void restore_my_cleanups PARAMS ((struct cleanup **, struct cleanup *)); extern void free_current_contents PARAMS ((char **)); @@ -296,6 +309,8 @@ extern void puts_filtered PARAMS ((const char *)); extern void puts_unfiltered PARAMS ((const char *)); +extern void puts_debug PARAMS ((char *prefix, char *string, char *suffix)); + extern void vprintf_filtered PARAMS ((const char *, va_list)) ATTR_FORMAT(printf, 1, 0); @@ -342,10 +357,14 @@ extern char* paddr PARAMS ((t_addr addr)); extern char* preg PARAMS ((t_reg reg)); +extern char* paddr_nz PARAMS ((t_addr addr)); + +extern char* preg_nz PARAMS ((t_reg reg)); + extern void fprintf_symbol_filtered PARAMS ((GDB_FILE *, char *, enum language, int)); -extern void perror_with_name PARAMS ((char *)); +extern NORETURN void perror_with_name PARAMS ((char *)) ATTR_NORETURN; extern void print_sys_errmsg PARAMS ((char *, int)); @@ -533,27 +552,36 @@ enum val_prettyprint #define LONG_MAX ((long)(ULONG_MAX >> 1)) /* 0x7FFFFFFF for 32-bits */ #endif +#ifndef LONGEST + #ifdef BFD64 /* This is to make sure that LONGEST is at least as big as CORE_ADDR. */ #define LONGEST BFD_HOST_64_BIT +#define ULONGEST BFD_HOST_U_64_BIT #else /* No BFD64 */ -/* LONGEST should not be a typedef, because "unsigned LONGEST" needs to work. - CC_HAS_LONG_LONG is defined if the host compiler supports "long long" */ - -#ifndef LONGEST # ifdef CC_HAS_LONG_LONG # define LONGEST long long +# define ULONGEST unsigned long long # else -# define LONGEST long +/* BFD_HOST_64_BIT is defined for some hosts that don't have long long + (e.g. i386-windows) so try it. */ +# ifdef BFD_HOST_64_BIT +# define LONGEST BFD_HOST_64_BIT +# define ULONGEST BFD_HOST_U_64_BIT +# else +# define LONGEST long +# define ULONGEST unsigned long +# endif # endif -#endif #endif /* No BFD64 */ +#endif /* ! LONGEST */ + /* Convert a LONGEST to an int. This is used in contexts (e.g. number of arguments to a function, number in a value history, register number, etc.) where the value must not be larger than can fit in an int. */ @@ -597,7 +625,7 @@ extern char *quit_pre_print; extern char *warning_pre_print; -extern NORETURN void error PARAMS((char *, ...)) ATTR_NORETURN; +extern NORETURN void error PARAMS((const char *, ...)) ATTR_NORETURN; extern void error_begin PARAMS ((void)); @@ -627,7 +655,7 @@ catch_errors PARAMS ((int (*) (char *), void *, char *, return_mask)); extern void warning_begin PARAMS ((void)); -extern void warning PARAMS ((char *, ...)) +extern void warning PARAMS ((const char *, ...)) ATTR_FORMAT(printf, 1, 2); /* Global functions from other, non-gdb GNU thingies. @@ -732,10 +760,21 @@ extern void free (); #undef TARGET_BYTE_ORDER #define TARGET_BYTE_ORDER target_byte_order extern int target_byte_order; +/* Nonzero when target_byte_order auto-detected */ +extern int target_byte_order_auto; #endif extern void set_endian_from_file PARAMS ((bfd *)); +/* The target architecture can be set at run-time. */ +extern int target_architecture_auto; +extern const bfd_arch_info_type *target_architecture; +extern void set_architecture_from_file PARAMS ((bfd *)); +/* Notify target of a change to the selected architecture. Zero return + status indicates that the target did not like the change. */ +extern int (*target_architecture_hook) PARAMS ((const bfd_arch_info_type *ap)); +extern void set_architecture_from_arch_mach PARAMS ((enum bfd_architecture arch, unsigned long mach)); + /* 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) @@ -819,7 +858,7 @@ extern void set_endian_from_file PARAMS ((bfd *)); extern LONGEST extract_signed_integer PARAMS ((void *, int)); -extern unsigned LONGEST extract_unsigned_integer PARAMS ((void *, int)); +extern ULONGEST extract_unsigned_integer PARAMS ((void *, int)); extern int extract_long_unsigned_integer PARAMS ((void *, int, LONGEST *)); @@ -827,7 +866,7 @@ extern CORE_ADDR extract_address PARAMS ((void *, int)); extern void store_signed_integer PARAMS ((void *, int, LONGEST)); -extern void store_unsigned_integer PARAMS ((void *, int, unsigned LONGEST)); +extern void store_unsigned_integer PARAMS ((void *, int, ULONGEST)); extern void store_address PARAMS ((void *, int, CORE_ADDR)); @@ -936,7 +975,7 @@ extern void store_floating PARAMS ((void *, int, DOUBLEST)); extern CORE_ADDR push_bytes PARAMS ((CORE_ADDR, char *, int)); -extern CORE_ADDR push_word PARAMS ((CORE_ADDR, unsigned LONGEST)); +extern CORE_ADDR push_word PARAMS ((CORE_ADDR, ULONGEST)); /* Some parts of gdb might be considered optional, in the sense that they are not essential for being able to build a working, usable debugger @@ -978,7 +1017,7 @@ struct target_waitstatus; struct cmd_list_element; #endif -extern void (*init_ui_hook) PARAMS ((void)); +extern void (*init_ui_hook) PARAMS ((char *argv0)); extern void (*command_loop_hook) PARAMS ((void)); extern void (*fputs_unfiltered_hook) PARAMS ((const char *linebuffer, FILE *stream)); @@ -1047,4 +1086,13 @@ extern int use_windows; #define ROOTED_P(X) (SLASH_P((X)[0])) #endif +/* On some systems, PIDGET is defined to extract the inferior pid from + an internal pid that has the thread id and pid in seperate bit + fields. If not defined, then just use the entire internal pid as + the actual pid. */ + +#ifndef PIDGET +#define PIDGET(pid) (pid) +#endif + #endif /* #ifndef DEFS_H */