mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-03 04:12:10 +08:00
2011-05-27 Pedro Alves <pedro@codesourcery.com>
gdb/ * defs.h (continuation_ftype, continuation_free_arg_ftype): New typedefs. (add_continuation, add_intermediate_continuation) (add_inferior_continuation): Use them. * continuations.c (struct continuation): Use them. (make_continuation_ftype): Delete. (make_continuation, add_inferior_continuation, add_continuation) (add_intermediate_continuation): Use continuation_ftype and continuation_free_arg_ftype. Rename parameters to shorter names.
This commit is contained in:
parent
af1e9a32aa
commit
b0f260d61e
@ -1,3 +1,15 @@
|
||||
2011-05-27 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* defs.h (continuation_ftype, continuation_free_arg_ftype): New
|
||||
typedefs.
|
||||
(add_continuation, add_intermediate_continuation)
|
||||
(add_inferior_continuation): Use them.
|
||||
* continuations.c (struct continuation): Use them.
|
||||
(make_continuation_ftype): Delete.
|
||||
(make_continuation, add_inferior_continuation, add_continuation)
|
||||
(add_intermediate_continuation): Use continuation_ftype and
|
||||
continuation_free_arg_ftype. Rename parameters to shorter names.
|
||||
|
||||
2011-05-27 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* continuations.c (make_continuation): Make it return void.
|
||||
|
@ -26,20 +26,18 @@
|
||||
struct continuation
|
||||
{
|
||||
struct continuation *next;
|
||||
void (*function) (void *);
|
||||
void (*free_arg) (void *);
|
||||
continuation_ftype *function;
|
||||
continuation_free_arg_ftype *free_arg;
|
||||
void *arg;
|
||||
};
|
||||
|
||||
typedef void (make_continuation_ftype) (void *);
|
||||
|
||||
/* Add a new continuation to the continuation chain. Args are
|
||||
FUNCTION to run the continuation up with, and ARG to pass to
|
||||
it. */
|
||||
|
||||
static void
|
||||
make_continuation (struct continuation **pmy_chain,
|
||||
make_continuation_ftype *function,
|
||||
continuation_ftype *function,
|
||||
void *arg, void (*free_arg) (void *))
|
||||
{
|
||||
struct continuation *new = XNEW (struct continuation);
|
||||
@ -113,13 +111,12 @@ discard_my_continuations (struct continuation **list)
|
||||
continuation will be added at the front. */
|
||||
|
||||
void
|
||||
add_inferior_continuation (void (*continuation_hook) (void *), void *args,
|
||||
void (*continuation_free_args) (void *))
|
||||
add_inferior_continuation (continuation_ftype *hook, void *args,
|
||||
continuation_free_arg_ftype *free_arg)
|
||||
{
|
||||
struct inferior *inf = current_inferior ();
|
||||
|
||||
make_continuation (&inf->continuations, continuation_hook,
|
||||
args, continuation_free_args);
|
||||
make_continuation (&inf->continuations, hook, args, free_arg);
|
||||
}
|
||||
|
||||
/* Do all continuations of the current inferior. */
|
||||
@ -144,11 +141,10 @@ discard_all_inferior_continuations (struct inferior *inf)
|
||||
|
||||
void
|
||||
add_continuation (struct thread_info *thread,
|
||||
void (*continuation_hook) (void *), void *args,
|
||||
void (*continuation_free_args) (void *))
|
||||
continuation_ftype *hook, void *args,
|
||||
continuation_free_arg_ftype *free_arg)
|
||||
{
|
||||
make_continuation (&thread->continuations, continuation_hook,
|
||||
args, continuation_free_args);
|
||||
make_continuation (&thread->continuations, hook, args, free_arg);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -256,12 +252,12 @@ discard_all_continuations (void)
|
||||
|
||||
void
|
||||
add_intermediate_continuation (struct thread_info *thread,
|
||||
void (*continuation_hook)
|
||||
(void *), void *args,
|
||||
void (*continuation_free_args) (void *))
|
||||
continuation_ftype *hook,
|
||||
void *args,
|
||||
continuation_free_arg_ftype *free_arg)
|
||||
{
|
||||
make_continuation (&thread->intermediate_continuations, continuation_hook,
|
||||
args, continuation_free_args);
|
||||
make_continuation (&thread->intermediate_continuations, hook,
|
||||
args, free_arg);
|
||||
}
|
||||
|
||||
/* Walk down the cmd_continuation list, and execute all the
|
||||
|
22
gdb/defs.h
22
gdb/defs.h
@ -740,21 +740,29 @@ struct continuation;
|
||||
struct thread_info;
|
||||
struct inferior;
|
||||
|
||||
/* From utils.c */
|
||||
/* From continuations.c */
|
||||
|
||||
/* Prototype of the continuation callback functions. */
|
||||
typedef void (continuation_ftype) (void *);
|
||||
|
||||
/* Prototype of the function responsible for releasing the argument
|
||||
passed to the continuation callback functions, either when the
|
||||
continuation is called, or discarded. */
|
||||
typedef void (continuation_free_arg_ftype) (void *);
|
||||
|
||||
/* Thread specific continuations. */
|
||||
|
||||
extern void add_continuation (struct thread_info *,
|
||||
void (*)(void *), void *,
|
||||
void (*)(void *));
|
||||
continuation_ftype *, void *,
|
||||
continuation_free_arg_ftype *);
|
||||
extern void do_all_continuations (void);
|
||||
extern void do_all_continuations_thread (struct thread_info *);
|
||||
extern void discard_all_continuations (void);
|
||||
extern void discard_all_continuations_thread (struct thread_info *);
|
||||
|
||||
extern void add_intermediate_continuation (struct thread_info *,
|
||||
void (*)(void *), void *,
|
||||
void (*)(void *));
|
||||
continuation_ftype *, void *,
|
||||
continuation_free_arg_ftype *);
|
||||
extern void do_all_intermediate_continuations (void);
|
||||
extern void do_all_intermediate_continuations_thread (struct thread_info *);
|
||||
extern void discard_all_intermediate_continuations (void);
|
||||
@ -762,9 +770,9 @@ extern void discard_all_intermediate_continuations_thread (struct thread_info *)
|
||||
|
||||
/* Inferior specific (any thread) continuations. */
|
||||
|
||||
extern void add_inferior_continuation (void (*) (void *),
|
||||
extern void add_inferior_continuation (continuation_ftype *,
|
||||
void *,
|
||||
void (*) (void *));
|
||||
continuation_free_arg_ftype *);
|
||||
extern void do_all_inferior_continuations (void);
|
||||
extern void discard_all_inferior_continuations (struct inferior *inf);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user