| Index: gdb/probe.h
 | 
| diff --git a/gdb/probe.h b/gdb/probe.h
 | 
| index 8d44ca2855de16e3dbe75d94b375928677f08fca..dd5387b091bc04fe6ccf5578644e4679ab522e30 100644
 | 
| --- a/gdb/probe.h
 | 
| +++ b/gdb/probe.h
 | 
| @@ -1,6 +1,6 @@
 | 
|  /* Generic SDT probe support for GDB.
 | 
|  
 | 
| -   Copyright (C) 2012 Free Software Foundation, Inc.
 | 
| +   Copyright (C) 2012-2013 Free Software Foundation, Inc.
 | 
|  
 | 
|     This file is part of GDB.
 | 
|  
 | 
| @@ -22,6 +22,11 @@
 | 
|  
 | 
|  #include "gdb_vecs.h"
 | 
|  
 | 
| +/* Definition of a vector of probes.  */
 | 
| +
 | 
| +typedef struct probe *probe_p;
 | 
| +DEF_VEC_P (probe_p);
 | 
| +
 | 
|  struct linespec_result;
 | 
|  
 | 
|  /* Structure useful for passing the header names in the method
 | 
| @@ -66,21 +71,24 @@ struct probe_ops
 | 
|  
 | 
|      /* Return the number of arguments of PROBE.  */
 | 
|  
 | 
| -    unsigned (*get_probe_argument_count) (struct probe *probe,
 | 
| -					  struct objfile *objfile);
 | 
| +    unsigned (*get_probe_argument_count) (struct probe *probe);
 | 
| +
 | 
| +    /* Return 1 if the probe interface can evaluate the arguments of probe
 | 
| +       PROBE, zero otherwise.  See the comments on
 | 
| +       sym_probe_fns:can_evaluate_probe_arguments for more details.  */
 | 
| +
 | 
| +    int (*can_evaluate_probe_arguments) (struct probe *probe);
 | 
|  
 | 
|      /* Evaluate the Nth argument from the PROBE, returning a value
 | 
|         corresponding to it.  The argument number is represented N.  */
 | 
|  
 | 
|      struct value *(*evaluate_probe_argument) (struct probe *probe,
 | 
| -					      struct objfile *objfile,
 | 
|  					      unsigned n);
 | 
|  
 | 
|      /* Compile the Nth argument of the PROBE to an agent expression.
 | 
|         The argument number is represented by N.  */
 | 
|  
 | 
| -    void (*compile_to_ax) (struct probe *probe, struct objfile *objfile,
 | 
| -			   struct agent_expr *aexpr,
 | 
| +    void (*compile_to_ax) (struct probe *probe, struct agent_expr *aexpr,
 | 
|  			   struct axs_value *axs_value, unsigned n);
 | 
|  
 | 
|      /* Set the semaphore associated with the PROBE.  This function only makes
 | 
| @@ -108,8 +116,8 @@ struct probe_ops
 | 
|      void (*gen_info_probes_table_header) (VEC (info_probe_column_s) **heads);
 | 
|  
 | 
|      /* Function that will fill VALUES with the values of the extra fields
 | 
| -       to be printed for PROBE  and OBJFILE.  If the backend implements
 | 
| -       the `gen_ui_out_table_header' method, then it should implement
 | 
| +       to be printed for PROBE.  If the backend implements the
 | 
| +       `gen_ui_out_table_header' method, then it should implement
 | 
|         this method as well.  The backend should also guarantee that the
 | 
|         order and the number of values in the vector is exactly the same
 | 
|         as the order of the extra fields provided in the method
 | 
| @@ -118,7 +126,6 @@ struct probe_ops
 | 
|         position in the vector.  */
 | 
|  
 | 
|      void (*gen_info_probes_table_values) (struct probe *probe,
 | 
| -					  struct objfile *objfile,
 | 
|  					  VEC (const_char_ptr) **values);
 | 
|    };
 | 
|  
 | 
| @@ -157,6 +164,11 @@ struct probe
 | 
|      /* The operations associated with this probe.  */
 | 
|      const struct probe_ops *pops;
 | 
|  
 | 
| +    /* The objfile which contains this probe.  Even if the probe is also
 | 
| +       present in a separate debug objfile, this variable always points to
 | 
| +       the non-separate debug objfile.  */
 | 
| +    struct objfile *objfile;
 | 
| +
 | 
|      /* The name of the probe.  */
 | 
|      const char *name;
 | 
|  
 | 
| @@ -181,11 +193,9 @@ extern struct symtabs_and_lines parse_probes (char **argptr,
 | 
|  extern void register_probe_ops (struct probe *probe);
 | 
|  
 | 
|  /* Given a PC, find an associated probe with type PTYPE.  If a probe is
 | 
| -   found, set *OBJFILE_OUT to the probe's objfile, and return the
 | 
| -   probe.  If no probe is found, return NULL.  */
 | 
| +   found, return it.  If no probe is found, return NULL.  */
 | 
|  
 | 
| -extern struct probe *find_probe_by_pc (CORE_ADDR pc,
 | 
| -				       struct objfile **objfile_out);
 | 
| +extern struct probe *find_probe_by_pc (CORE_ADDR pc);
 | 
|  
 | 
|  /* Search OBJFILE for a probe with the given PROVIDER, NAME and PTYPE.
 | 
|     Return a VEC of all probes that were found.  If no matching probe
 | 
| @@ -210,6 +220,22 @@ extern void info_probes_for_ops (char *arg, int from_tty,
 | 
|  
 | 
|  extern struct cmd_list_element **info_probes_cmdlist_get (void);
 | 
|  
 | 
| +/* Return the argument count of the specified probe.  */
 | 
| +
 | 
| +extern unsigned get_probe_argument_count (struct probe *probe);
 | 
| +
 | 
| +/* Return 1 if the probe interface associated with PROBE can evaluate
 | 
| +   arguments, zero otherwise.  See the comments on the definition of
 | 
| +   sym_probe_fns:can_evaluate_probe_arguments for more details.  */
 | 
| +
 | 
| +extern int can_evaluate_probe_arguments (struct probe *probe);
 | 
| +
 | 
| +/* Evaluate argument N of the specified probe.  N must be between 0
 | 
| +   inclusive and get_probe_argument_count exclusive.  */
 | 
| +
 | 
| +extern struct value *evaluate_probe_argument (struct probe *probe,
 | 
| +					      unsigned n);
 | 
| +
 | 
|  /* A convenience function that finds a probe at the PC in FRAME and
 | 
|     evaluates argument N, with 0 <= N < number_of_args.  If there is no
 | 
|     probe at that location, or if the probe does not have enough arguments,
 | 
| 
 |