perf probe: Rename probe finder functions
[deliverable/linux.git] / tools / perf / util / probe-finder.h
index bdebca6697d24a637f583295779f3c2697f8b319..b2a25241135af6701ac0053690fadb846678570b 100644 (file)
@@ -1,9 +1,11 @@
 #ifndef _PROBE_FINDER_H
 #define _PROBE_FINDER_H
 
-#define MAX_PATH_LEN 256
-#define MAX_PROBE_BUFFER 1024
-#define MAX_PROBES 128
+#include "util.h"
+
+#define MAX_PATH_LEN            256
+#define MAX_PROBE_BUFFER       1024
+#define MAX_PROBES              128
 
 static inline int is_c_varname(const char *name)
 {
@@ -12,46 +14,85 @@ static inline int is_c_varname(const char *name)
 }
 
 struct probe_point {
+       char                    *event;                 /* Event name */
+       char                    *group;                 /* Event group */
+
        /* Inputs */
-       char    *file;          /* File name */
-       int     line;           /* Line number */
+       char                    *file;                  /* File name */
+       int                     line;                   /* Line number */
 
-       char    *function;      /* Function name */
-       int     offset;         /* Offset bytes */
+       char                    *function;              /* Function name */
+       int                     offset;                 /* Offset bytes */
 
-       int     nr_args;        /* Number of arguments */
-       char    **args;         /* Arguments */
+       int                     nr_args;                /* Number of arguments */
+       char                    **args;                 /* Arguments */
 
-       int     retprobe;       /* Return probe */
+       int                     retprobe;               /* Return probe */
 
        /* Output */
-       int     found;          /* Number of found probe points */
-       char    *probes[MAX_PROBES];    /* Output buffers (will be allocated)*/
+       int                     found;                  /* Number of found probe points */
+       char                    *probes[MAX_PROBES];    /* Output buffers (will be allocated)*/
+};
+
+/* Line number container */
+struct line_node {
+       struct list_head        list;
+       unsigned int            line;
+};
+
+/* Line range */
+struct line_range {
+       char                    *file;                  /* File name */
+       char                    *function;              /* Function name */
+       unsigned int            start;                  /* Start line number */
+       unsigned int            end;                    /* End line number */
+       unsigned int            offset;                 /* Start line offset */
+       char                    *path;                  /* Real path name */
+       struct list_head        line_list;              /* Visible lines */
 };
 
 #ifndef NO_LIBDWARF
-extern int find_probepoint(int fd, struct probe_point *pp);
+extern int find_probe_point(int fd, struct probe_point *pp);
+extern int find_line_range(int fd, struct line_range *lr);
 
-#include <libdwarf/dwarf.h>
-#include <libdwarf/libdwarf.h>
+/* Workaround for undefined _MIPS_SZLONG bug in libdwarf.h: */
+#ifndef _MIPS_SZLONG
+# define _MIPS_SZLONG          0
+#endif
+
+#include <dwarf.h>
+#include <libdwarf.h>
 
 struct probe_finder {
-       struct probe_point      *pp;    /* Target probe point */
+       struct probe_point      *pp;                    /* Target probe point */
 
        /* For function searching */
-       Dwarf_Addr      addr;           /* Address */
-       Dwarf_Unsigned  fno;            /* File number */
-       Dwarf_Unsigned  lno;            /* Line number */
-       Dwarf_Off       inl_offs;       /* Inline offset */
-       Dwarf_Die       cu_die;         /* Current CU */
+       Dwarf_Addr              addr;                   /* Address */
+       Dwarf_Unsigned          fno;                    /* File number */
+       Dwarf_Unsigned          lno;                    /* Line number */
+       Dwarf_Off               inl_offs;               /* Inline offset */
+       Dwarf_Die               cu_die;                 /* Current CU */
 
        /* For variable searching */
-       Dwarf_Addr      cu_base;        /* Current CU base address */
-       Dwarf_Locdesc   fbloc;          /* Location of Current Frame Base */
-       const char      *var;           /* Current variable name */
-       char            *buf;           /* Current output buffer */
-       int             len;            /* Length of output buffer */
+       Dwarf_Addr              cu_base;                /* Current CU base address */
+       Dwarf_Locdesc           fbloc;                  /* Location of Current Frame Base */
+       const char              *var;                   /* Current variable name */
+       char                    *buf;                   /* Current output buffer */
+       int                     len;                    /* Length of output buffer */
 };
+
+struct line_finder {
+       struct line_range       *lr;                    /* Target line range */
+
+       Dwarf_Unsigned          fno;                    /* File number */
+       Dwarf_Unsigned          lno_s;                  /* Start line number */
+       Dwarf_Unsigned          lno_e;                  /* End line number */
+       Dwarf_Addr              addr_s;                 /* Start address */
+       Dwarf_Addr              addr_e;                 /* End address */
+       Dwarf_Die               cu_die;                 /* Current CU */
+       int                     found;
+};
+
 #endif /* NO_LIBDWARF */
 
 #endif /*_PROBE_FINDER_H */
This page took 0.027589 seconds and 5 git commands to generate.