X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Finferior.h;h=391a5fdaa5c4cf18f453f2f70113948e2b514056;hb=a5b5adf529fa64391bc1ef733b3e78f15d94c4b9;hp=37252a695cd453685a93f1e1b64c1767e0349897;hpb=1d12d88f186fe1ae66deccf877b5509c506c4d39;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/inferior.h b/gdb/inferior.h index 37252a695c..391a5fdaa5 100644 --- a/gdb/inferior.h +++ b/gdb/inferior.h @@ -1,7 +1,7 @@ /* Variables that describe the inferior process running under GDB: Where it is, why it stopped, and how to step it. - Copyright (C) 1986-2017 Free Software Foundation, Inc. + Copyright (C) 1986-2018 Free Software Foundation, Inc. This file is part of GDB. @@ -70,7 +70,7 @@ extern struct cleanup *make_cleanup_restore_infcall_control_state extern void discard_infcall_suspend_state (struct infcall_suspend_state *); extern void discard_infcall_control_state (struct infcall_control_state *); -extern struct regcache * +extern readonly_detached_regcache * get_infcall_suspend_state_regcache (struct infcall_suspend_state *); extern void set_sigint_trap (void); @@ -129,10 +129,16 @@ extern void child_terminal_ours_for_output (struct target_ops *self); extern void child_terminal_inferior (struct target_ops *self); +extern void child_terminal_save_inferior (struct target_ops *self); + extern void child_terminal_init (struct target_ops *self); extern void child_terminal_init_with_pgrp (int pgrp); +extern void child_pass_ctrlc (struct target_ops *self); + +extern void child_interrupt (struct target_ops *self); + /* From fork-child.c */ /* Helper function to call STARTUP_INFERIOR with PID and NUM_TRAPS. @@ -263,7 +269,12 @@ enum stop_kind #define ON_STACK 1 #define AT_ENTRY_POINT 4 -struct private_inferior; +/* Base class for target-specific inferior data. */ + +struct private_inferior +{ + virtual ~private_inferior () = 0; +}; /* Inferior process specific part of `struct infcall_control_state'. @@ -362,6 +373,10 @@ public: /* The name of terminal device to use for I/O. */ char *terminal = NULL; + /* The terminal state as set by the last target_terminal::terminal_* + call. */ + target_terminal_state terminal_state = target_terminal_state::is_ours; + /* Environment to use for running inferior, in format described in environ.h. */ gdb_environ environment; @@ -403,7 +418,7 @@ public: bool needs_setup = false; /* Private data used by the target vector implementation. */ - private_inferior *priv = NULL; + std::unique_ptr priv; /* HAS_EXIT_CODE is true if the inferior exited with an exit code. In this case, the EXIT_CODE field is also valid. */ @@ -453,6 +468,9 @@ extern struct inferior *add_inferior_silent (int pid); extern void delete_inferior (struct inferior *todel); /* Delete an existing inferior list entry, due to inferior detaching. */ +extern void detach_inferior (inferior *inf); + +/* Same as the above, but with the inferior specified by PID. */ extern void detach_inferior (int pid); extern void exit_inferior (int pid);