diff options
Diffstat (limited to 'tools/perf/util/python.c')
| -rw-r--r-- | tools/perf/util/python.c | 26 | 
1 files changed, 15 insertions, 11 deletions
| diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 5be5fa2391de..212031b97910 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -5,7 +5,9 @@  #include <poll.h>  #include <linux/err.h>  #include <perf/cpumap.h> +#ifdef HAVE_LIBTRACEEVENT  #include <traceevent/event-parse.h> +#endif  #include <perf/mmap.h>  #include "evlist.h"  #include "callchain.h" @@ -417,6 +419,7 @@ static PyObject *pyrf_sample_event__repr(struct pyrf_event *pevent)  	return ret;  } +#ifdef HAVE_LIBTRACEEVENT  static bool is_tracepoint(struct pyrf_event *pevent)  {  	return pevent->evsel->core.attr.type == PERF_TYPE_TRACEPOINT; @@ -439,8 +442,10 @@ tracepoint_field(struct pyrf_event *pe, struct tep_format_field *field)  			offset  = val;  			len     = offset >> 16;  			offset &= 0xffff; +#ifdef HAVE_LIBTRACEEVENT_TEP_FIELD_IS_RELATIVE  			if (field->flags & TEP_FIELD_IS_RELATIVE)  				offset += field->offset + field->size; +#endif  		}  		if (field->flags & TEP_FIELD_IS_STRING &&  		    is_printable_array(data + offset, len)) { @@ -486,14 +491,17 @@ get_tracepoint_field(struct pyrf_event *pevent, PyObject *attr_name)  	return tracepoint_field(pevent, field);  } +#endif /* HAVE_LIBTRACEEVENT */  static PyObject*  pyrf_sample_event__getattro(struct pyrf_event *pevent, PyObject *attr_name)  {  	PyObject *obj = NULL; +#ifdef HAVE_LIBTRACEEVENT  	if (is_tracepoint(pevent))  		obj = get_tracepoint_field(pevent, attr_name); +#endif  	return obj ?: PyObject_GenericGetAttr((PyObject *) pevent, attr_name);  } @@ -718,17 +726,17 @@ static Py_ssize_t pyrf_thread_map__length(PyObject *obj)  {  	struct pyrf_thread_map *pthreads = (void *)obj; -	return pthreads->threads->nr; +	return perf_thread_map__nr(pthreads->threads);  }  static PyObject *pyrf_thread_map__item(PyObject *obj, Py_ssize_t i)  {  	struct pyrf_thread_map *pthreads = (void *)obj; -	if (i >= pthreads->threads->nr) +	if (i >= perf_thread_map__nr(pthreads->threads))  		return NULL; -	return Py_BuildValue("i", pthreads->threads->map[i]); +	return Py_BuildValue("i", perf_thread_map__pid(pthreads->threads, i));  }  static PySequenceMethods pyrf_thread_map__sequence_methods = { @@ -1134,14 +1142,6 @@ static PyObject *pyrf_evlist__open(struct pyrf_evlist *pevlist,  				   PyObject *args, PyObject *kwargs)  {  	struct evlist *evlist = &pevlist->evlist; -	int group = 0; -	static char *kwlist[] = { "group", NULL }; - -	if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOii", kwlist, &group)) -		return NULL; - -	if (group) -		evlist__set_leader(evlist);  	if (evlist__open(evlist) < 0) {  		PyErr_SetFromErrno(PyExc_OSError); @@ -1326,6 +1326,9 @@ static struct {  static PyObject *pyrf__tracepoint(struct pyrf_evsel *pevsel,  				  PyObject *args, PyObject *kwargs)  { +#ifndef HAVE_LIBTRACEEVENT +	return NULL; +#else  	struct tep_event *tp_format;  	static char *kwlist[] = { "sys", "name", NULL };  	char *sys  = NULL; @@ -1340,6 +1343,7 @@ static PyObject *pyrf__tracepoint(struct pyrf_evsel *pevsel,  		return _PyLong_FromLong(-1);  	return _PyLong_FromLong(tp_format->id); +#endif // HAVE_LIBTRACEEVENT  }  static PyMethodDef perf__methods[] = { |