* defs.h: Fix cntl-C to read from the Windows message queue.

Add prototypes for make_final_cleanup (and the other cleanup
	routines.
	* remote-e7000.c: Fix sync code to timeout if unable to sync.
	Change sync code to report status while trying to sync-up
	with hardware.  Add debugging output and document.
	* ser-e7kpc.c: Swap order of len & offset to match implementation.
	Add debugging output and document.
	* serial.c: Add debugging output.
	* top.c: Add call to do_final_cleanups.
	Remove conditionals preventing Win32 from getting SIGQUIT.
	* utils.c: (*_cleanup): Modify cleanup routines to accept a cleanup
	chain as a parameter.  Extract this generic code from the cleanup
	routines into separate funtions (*_my_cleanup).  Keep old
	functionality by passing "cleanup_chain" to the new funtions.
	Define the cleanup chain "final_cleanup_chain" to be a cleanup
	chain which will be executed only when gdb exits.  Add functions
	(*_final_cleanup) to match the original (*_cleanup) functions.
	(pollquit, quit, notice_quit): Fix to read cntl-C from the
	Windows message queue.
This commit is contained in:
Dawn Perchik
1997-02-12 10:27:11 +00:00
parent 6fb47af036
commit 16a43bf443
6 changed files with 353 additions and 49 deletions

View File

@@ -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 (); \
@@ -230,8 +230,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 +251,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 **));
@@ -342,6 +354,10 @@ 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));
@@ -538,17 +554,17 @@ enum val_prettyprint
/* 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
# define ULONGEST unsigned long
# endif
#endif
@@ -819,7 +835,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 +843,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 +952,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
@@ -1047,4 +1063,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 */