X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gdb%2Fgdbserver%2Ftarget.h;h=be8925802fe333abce36503387fa326bf7602310;hb=2090129c36c7e582943b7d300968d19b46160d84;hp=9cd07bc2d945d13410e4431c6b357458a1e7d386;hpb=7d00775ece9e2364da5cfd65ebbfce515859667f;p=external%2Fbinutils.git diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h index 9cd07bc..be89258 100644 --- a/gdb/gdbserver/target.h +++ b/gdb/gdbserver/target.h @@ -1,5 +1,5 @@ /* Target operations for the remote server for GDB. - Copyright (C) 2002-2015 Free Software Foundation, Inc. + Copyright (C) 2002-2017 Free Software Foundation, Inc. Contributed by MontaVista Software. @@ -28,6 +28,7 @@ #include "target/waitstatus.h" #include "mem-break.h" #include "btrace-common.h" +#include struct emit_ops; struct buffer; @@ -67,16 +68,17 @@ struct target_ops /* Start a new process. PROGRAM is a path to the program to execute. - ARGS is a standard NULL-terminated array of arguments, - to be passed to the inferior as ``argv''. + PROGRAM_ARGS is a standard NULL-terminated array of arguments, + to be passed to the inferior as ``argv'' (along with PROGRAM). Returns the new PID on success, -1 on failure. Registers the new process with the process list. */ + int (*create_inferior) (const char *program, + const std::vector &program_args); - int (*create_inferior) (char *program, char **args); - - /* Architecture-specific setup. */ - void (*arch_setup) (void); + /* Do additional setup after a new process is created, including + exec-wrapper completion. */ + void (*post_create_inferior) (void); /* Attach to a running process. @@ -466,20 +468,27 @@ struct target_ops /* Returns true if the target can software single step. */ int (*supports_software_single_step) (void); + + /* Return 1 if the target supports catch syscall, 0 (or leave the + callback NULL) otherwise. */ + int (*supports_catch_syscall) (void); + + /* Return tdesc index for IPA. */ + int (*get_ipa_tdesc_idx) (void); }; extern struct target_ops *the_target; void set_target_ops (struct target_ops *); -#define create_inferior(program, args) \ - (*the_target->create_inferior) (program, args) +#define create_inferior(program, program_args) \ + (*the_target->create_inferior) (program, program_args) -#define target_arch_setup() \ - do \ - { \ - if (the_target->arch_setup != NULL) \ - (*the_target->arch_setup) (); \ +#define target_post_create_inferior() \ + do \ + { \ + if (the_target->post_create_inferior != NULL) \ + (*the_target->post_create_inferior) (); \ } while (0) #define myattach(pid) \ @@ -509,9 +518,6 @@ int kill_inferior (int); #define detach_inferior(pid) \ (*the_target->detach) (pid) -#define mourn_inferior(PROC) \ - (*the_target->mourn) (PROC) - #define mythread_alive(pid) \ (*the_target->thread_alive) (pid) @@ -530,10 +536,6 @@ int kill_inferior (int); #define target_async(enable) \ (the_target->async ? (*the_target->async) (enable) : 0) -#define target_supports_multi_process() \ - (the_target->supports_multi_process ? \ - (*the_target->supports_multi_process) () : 0) - #define target_process_qsupported(features, count) \ do \ { \ @@ -541,6 +543,14 @@ int kill_inferior (int); the_target->process_qsupported (features, count); \ } while (0) +#define target_supports_catch_syscall() \ + (the_target->supports_catch_syscall ? \ + (*the_target->supports_catch_syscall) () : 0) + +#define target_get_ipa_tdesc_idx() \ + (the_target->get_ipa_tdesc_idx \ + ? (*the_target->get_ipa_tdesc_idx) () : 0) + #define target_supports_tracepoints() \ (the_target->supports_tracepoints \ ? (*the_target->supports_tracepoints) () : 0)