Opportunistically constify variables and parameters when possible.
Signed-off-by: Ian Rogers <irogers@google.com>
---
tools/perf/util/python.c | 55 +++++++++++++++++++++-------------------
1 file changed, 29 insertions(+), 26 deletions(-)
diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c
index 02279ab4967c..13dad27169a0 100644
--- a/tools/perf/util/python.c
+++ b/tools/perf/util/python.c
@@ -62,7 +62,7 @@ struct pyrf_event {
sample_member_def(sample_period, period, T_ULONGLONG, "event period"), \
sample_member_def(sample_cpu, cpu, T_UINT, "event cpu"),
-static char pyrf_mmap_event__doc[] = PyDoc_STR("perf mmap event object.");
+static const char pyrf_mmap_event__doc[] = PyDoc_STR("perf mmap event object.");
static PyMemberDef pyrf_mmap_event__members[] = {
sample_members
@@ -77,7 +77,7 @@ static PyMemberDef pyrf_mmap_event__members[] = {
{ .name = NULL, },
};
-static PyObject *pyrf_mmap_event__repr(struct pyrf_event *pevent)
+static PyObject *pyrf_mmap_event__repr(const struct pyrf_event *pevent)
{
PyObject *ret;
char *s;
@@ -106,7 +106,7 @@ static PyTypeObject pyrf_mmap_event__type = {
.tp_repr = (reprfunc)pyrf_mmap_event__repr,
};
-static char pyrf_task_event__doc[] = PyDoc_STR("perf task (fork/exit) event object.");
+static const char pyrf_task_event__doc[] = PyDoc_STR("perf task (fork/exit) event object.");
static PyMemberDef pyrf_task_event__members[] = {
sample_members
@@ -119,7 +119,7 @@ static PyMemberDef pyrf_task_event__members[] = {
{ .name = NULL, },
};
-static PyObject *pyrf_task_event__repr(struct pyrf_event *pevent)
+static PyObject *pyrf_task_event__repr(const struct pyrf_event *pevent)
{
return PyUnicode_FromFormat("{ type: %s, pid: %u, ppid: %u, tid: %u, "
"ptid: %u, time: %" PRI_lu64 "}",
@@ -141,7 +141,7 @@ static PyTypeObject pyrf_task_event__type = {
.tp_repr = (reprfunc)pyrf_task_event__repr,
};
-static char pyrf_comm_event__doc[] = PyDoc_STR("perf comm event object.");
+static const char pyrf_comm_event__doc[] = PyDoc_STR("perf comm event object.");
static PyMemberDef pyrf_comm_event__members[] = {
sample_members
@@ -152,7 +152,7 @@ static PyMemberDef pyrf_comm_event__members[] = {
{ .name = NULL, },
};
-static PyObject *pyrf_comm_event__repr(struct pyrf_event *pevent)
+static PyObject *pyrf_comm_event__repr(const struct pyrf_event *pevent)
{
return PyUnicode_FromFormat("{ type: comm, pid: %u, tid: %u, comm: %s }",
pevent->event.comm.pid,
@@ -170,7 +170,7 @@ static PyTypeObject pyrf_comm_event__type = {
.tp_repr = (reprfunc)pyrf_comm_event__repr,
};
-static char pyrf_throttle_event__doc[] = PyDoc_STR("perf throttle event object.");
+static const char pyrf_throttle_event__doc[] = PyDoc_STR("perf throttle event object.");
static PyMemberDef pyrf_throttle_event__members[] = {
sample_members
@@ -181,9 +181,10 @@ static PyMemberDef pyrf_throttle_event__members[] = {
{ .name = NULL, },
};
-static PyObject *pyrf_throttle_event__repr(struct pyrf_event *pevent)
+static PyObject *pyrf_throttle_event__repr(const struct pyrf_event *pevent)
{
- struct perf_record_throttle *te = (struct perf_record_throttle *)(&pevent->event.header + 1);
+ const struct perf_record_throttle *te = (const struct perf_record_throttle *)
+ (&pevent->event.header + 1);
return PyUnicode_FromFormat("{ type: %sthrottle, time: %" PRI_lu64 ", id: %" PRI_lu64
", stream_id: %" PRI_lu64 " }",
@@ -201,7 +202,7 @@ static PyTypeObject pyrf_throttle_event__type = {
.tp_repr = (reprfunc)pyrf_throttle_event__repr,
};
-static char pyrf_lost_event__doc[] = PyDoc_STR("perf lost event object.");
+static const char pyrf_lost_event__doc[] = PyDoc_STR("perf lost event object.");
static PyMemberDef pyrf_lost_event__members[] = {
sample_members
@@ -210,7 +211,7 @@ static PyMemberDef pyrf_lost_event__members[] = {
{ .name = NULL, },
};
-static PyObject *pyrf_lost_event__repr(struct pyrf_event *pevent)
+static PyObject *pyrf_lost_event__repr(const struct pyrf_event *pevent)
{
PyObject *ret;
char *s;
@@ -236,7 +237,7 @@ static PyTypeObject pyrf_lost_event__type = {
.tp_repr = (reprfunc)pyrf_lost_event__repr,
};
-static char pyrf_read_event__doc[] = PyDoc_STR("perf read event object.");
+static const char pyrf_read_event__doc[] = PyDoc_STR("perf read event object.");
static PyMemberDef pyrf_read_event__members[] = {
sample_members
@@ -245,7 +246,7 @@ static PyMemberDef pyrf_read_event__members[] = {
{ .name = NULL, },
};
-static PyObject *pyrf_read_event__repr(struct pyrf_event *pevent)
+static PyObject *pyrf_read_event__repr(const struct pyrf_event *pevent)
{
return PyUnicode_FromFormat("{ type: read, pid: %u, tid: %u }",
pevent->event.read.pid,
@@ -266,7 +267,7 @@ static PyTypeObject pyrf_read_event__type = {
.tp_repr = (reprfunc)pyrf_read_event__repr,
};
-static char pyrf_sample_event__doc[] = PyDoc_STR("perf sample event object.");
+static const char pyrf_sample_event__doc[] = PyDoc_STR("perf sample event object.");
static PyMemberDef pyrf_sample_event__members[] = {
sample_members
@@ -274,7 +275,7 @@ static PyMemberDef pyrf_sample_event__members[] = {
{ .name = NULL, },
};
-static PyObject *pyrf_sample_event__repr(struct pyrf_event *pevent)
+static PyObject *pyrf_sample_event__repr(const struct pyrf_event *pevent)
{
PyObject *ret;
char *s;
@@ -289,13 +290,13 @@ static PyObject *pyrf_sample_event__repr(struct pyrf_event *pevent)
}
#ifdef HAVE_LIBTRACEEVENT
-static bool is_tracepoint(struct pyrf_event *pevent)
+static bool is_tracepoint(const struct pyrf_event *pevent)
{
return pevent->evsel->core.attr.type == PERF_TYPE_TRACEPOINT;
}
static PyObject*
-tracepoint_field(struct pyrf_event *pe, struct tep_format_field *field)
+tracepoint_field(const struct pyrf_event *pe, struct tep_format_field *field)
{
struct tep_handle *pevent = field->event->tep;
void *data = pe->sample.raw_data;
@@ -384,7 +385,7 @@ static PyTypeObject pyrf_sample_event__type = {
.tp_getattro = (getattrofunc) pyrf_sample_event__getattro,
};
-static char pyrf_context_switch_event__doc[] = PyDoc_STR("perf context_switch event object.");
+static const char pyrf_context_switch_event__doc[] = PyDoc_STR("perf context_switch event object.");
static PyMemberDef pyrf_context_switch_event__members[] = {
sample_members
@@ -394,7 +395,7 @@ static PyMemberDef pyrf_context_switch_event__members[] = {
{ .name = NULL, },
};
-static PyObject *pyrf_context_switch_event__repr(struct pyrf_event *pevent)
+static PyObject *pyrf_context_switch_event__repr(const struct pyrf_event *pevent)
{
PyObject *ret;
char *s;
@@ -474,7 +475,7 @@ static PyTypeObject *pyrf_event__type[] = {
[PERF_RECORD_SWITCH_CPU_WIDE] = &pyrf_context_switch_event__type,
};
-static PyObject *pyrf_event__new(union perf_event *event)
+static PyObject *pyrf_event__new(const union perf_event *event)
{
struct pyrf_event *pevent;
PyTypeObject *ptype;
@@ -542,7 +543,7 @@ static PySequenceMethods pyrf_cpu_map__sequence_methods = {
.sq_item = pyrf_cpu_map__item,
};
-static char pyrf_cpu_map__doc[] = PyDoc_STR("cpu map object.");
+static const char pyrf_cpu_map__doc[] = PyDoc_STR("cpu map object.");
static PyTypeObject pyrf_cpu_map__type = {
PyVarObject_HEAD_INIT(NULL, 0)
@@ -611,7 +612,7 @@ static PySequenceMethods pyrf_thread_map__sequence_methods = {
.sq_item = pyrf_thread_map__item,
};
-static char pyrf_thread_map__doc[] = PyDoc_STR("thread map object.");
+static const char pyrf_thread_map__doc[] = PyDoc_STR("thread map object.");
static PyTypeObject pyrf_thread_map__type = {
PyVarObject_HEAD_INIT(NULL, 0)
@@ -795,7 +796,7 @@ static PyMethodDef pyrf_evsel__methods[] = {
{ .ml_name = NULL, }
};
-static char pyrf_evsel__doc[] = PyDoc_STR("perf event selector list object.");
+static const char pyrf_evsel__doc[] = PyDoc_STR("perf event selector list object.");
static PyTypeObject pyrf_evsel__type = {
PyVarObject_HEAD_INIT(NULL, 0)
@@ -1078,7 +1079,7 @@ static PySequenceMethods pyrf_evlist__sequence_methods = {
.sq_item = pyrf_evlist__item,
};
-static char pyrf_evlist__doc[] = PyDoc_STR("perf event selector list object.");
+static const char pyrf_evlist__doc[] = PyDoc_STR("perf event selector list object.");
static PyTypeObject pyrf_evlist__type = {
PyVarObject_HEAD_INIT(NULL, 0)
@@ -1100,10 +1101,12 @@ static int pyrf_evlist__setup_types(void)
#define PERF_CONST(name) { #name, PERF_##name }
-static struct {
+struct perf_constant {
const char *name;
int value;
-} perf__constants[] = {
+};
+
+static const struct perf_constant perf__constants[] = {
PERF_CONST(TYPE_HARDWARE),
PERF_CONST(TYPE_SOFTWARE),
PERF_CONST(TYPE_TRACEPOINT),
--
2.46.0.662.g92d0881bb0-goog
On 18/09/2024 11:54 pm, Ian Rogers wrote: > Opportunistically constify variables and parameters when possible. > > Signed-off-by: Ian Rogers <irogers@google.com> Reviewed-by: James Clark <james.clark@linaro.org> > --- > tools/perf/util/python.c | 55 +++++++++++++++++++++------------------- > 1 file changed, 29 insertions(+), 26 deletions(-) > > diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c > index 02279ab4967c..13dad27169a0 100644 > --- a/tools/perf/util/python.c > +++ b/tools/perf/util/python.c > @@ -62,7 +62,7 @@ struct pyrf_event { > sample_member_def(sample_period, period, T_ULONGLONG, "event period"), \ > sample_member_def(sample_cpu, cpu, T_UINT, "event cpu"), > > -static char pyrf_mmap_event__doc[] = PyDoc_STR("perf mmap event object."); > +static const char pyrf_mmap_event__doc[] = PyDoc_STR("perf mmap event object."); > > static PyMemberDef pyrf_mmap_event__members[] = { > sample_members > @@ -77,7 +77,7 @@ static PyMemberDef pyrf_mmap_event__members[] = { > { .name = NULL, }, > }; > > -static PyObject *pyrf_mmap_event__repr(struct pyrf_event *pevent) > +static PyObject *pyrf_mmap_event__repr(const struct pyrf_event *pevent) > { > PyObject *ret; > char *s; > @@ -106,7 +106,7 @@ static PyTypeObject pyrf_mmap_event__type = { > .tp_repr = (reprfunc)pyrf_mmap_event__repr, > }; > > -static char pyrf_task_event__doc[] = PyDoc_STR("perf task (fork/exit) event object."); > +static const char pyrf_task_event__doc[] = PyDoc_STR("perf task (fork/exit) event object."); > > static PyMemberDef pyrf_task_event__members[] = { > sample_members > @@ -119,7 +119,7 @@ static PyMemberDef pyrf_task_event__members[] = { > { .name = NULL, }, > }; > > -static PyObject *pyrf_task_event__repr(struct pyrf_event *pevent) > +static PyObject *pyrf_task_event__repr(const struct pyrf_event *pevent) > { > return PyUnicode_FromFormat("{ type: %s, pid: %u, ppid: %u, tid: %u, " > "ptid: %u, time: %" PRI_lu64 "}", > @@ -141,7 +141,7 @@ static PyTypeObject pyrf_task_event__type = { > .tp_repr = (reprfunc)pyrf_task_event__repr, > }; > > -static char pyrf_comm_event__doc[] = PyDoc_STR("perf comm event object."); > +static const char pyrf_comm_event__doc[] = PyDoc_STR("perf comm event object."); > > static PyMemberDef pyrf_comm_event__members[] = { > sample_members > @@ -152,7 +152,7 @@ static PyMemberDef pyrf_comm_event__members[] = { > { .name = NULL, }, > }; > > -static PyObject *pyrf_comm_event__repr(struct pyrf_event *pevent) > +static PyObject *pyrf_comm_event__repr(const struct pyrf_event *pevent) > { > return PyUnicode_FromFormat("{ type: comm, pid: %u, tid: %u, comm: %s }", > pevent->event.comm.pid, > @@ -170,7 +170,7 @@ static PyTypeObject pyrf_comm_event__type = { > .tp_repr = (reprfunc)pyrf_comm_event__repr, > }; > > -static char pyrf_throttle_event__doc[] = PyDoc_STR("perf throttle event object."); > +static const char pyrf_throttle_event__doc[] = PyDoc_STR("perf throttle event object."); > > static PyMemberDef pyrf_throttle_event__members[] = { > sample_members > @@ -181,9 +181,10 @@ static PyMemberDef pyrf_throttle_event__members[] = { > { .name = NULL, }, > }; > > -static PyObject *pyrf_throttle_event__repr(struct pyrf_event *pevent) > +static PyObject *pyrf_throttle_event__repr(const struct pyrf_event *pevent) > { > - struct perf_record_throttle *te = (struct perf_record_throttle *)(&pevent->event.header + 1); > + const struct perf_record_throttle *te = (const struct perf_record_throttle *) > + (&pevent->event.header + 1); > > return PyUnicode_FromFormat("{ type: %sthrottle, time: %" PRI_lu64 ", id: %" PRI_lu64 > ", stream_id: %" PRI_lu64 " }", > @@ -201,7 +202,7 @@ static PyTypeObject pyrf_throttle_event__type = { > .tp_repr = (reprfunc)pyrf_throttle_event__repr, > }; > > -static char pyrf_lost_event__doc[] = PyDoc_STR("perf lost event object."); > +static const char pyrf_lost_event__doc[] = PyDoc_STR("perf lost event object."); > > static PyMemberDef pyrf_lost_event__members[] = { > sample_members > @@ -210,7 +211,7 @@ static PyMemberDef pyrf_lost_event__members[] = { > { .name = NULL, }, > }; > > -static PyObject *pyrf_lost_event__repr(struct pyrf_event *pevent) > +static PyObject *pyrf_lost_event__repr(const struct pyrf_event *pevent) > { > PyObject *ret; > char *s; > @@ -236,7 +237,7 @@ static PyTypeObject pyrf_lost_event__type = { > .tp_repr = (reprfunc)pyrf_lost_event__repr, > }; > > -static char pyrf_read_event__doc[] = PyDoc_STR("perf read event object."); > +static const char pyrf_read_event__doc[] = PyDoc_STR("perf read event object."); > > static PyMemberDef pyrf_read_event__members[] = { > sample_members > @@ -245,7 +246,7 @@ static PyMemberDef pyrf_read_event__members[] = { > { .name = NULL, }, > }; > > -static PyObject *pyrf_read_event__repr(struct pyrf_event *pevent) > +static PyObject *pyrf_read_event__repr(const struct pyrf_event *pevent) > { > return PyUnicode_FromFormat("{ type: read, pid: %u, tid: %u }", > pevent->event.read.pid, > @@ -266,7 +267,7 @@ static PyTypeObject pyrf_read_event__type = { > .tp_repr = (reprfunc)pyrf_read_event__repr, > }; > > -static char pyrf_sample_event__doc[] = PyDoc_STR("perf sample event object."); > +static const char pyrf_sample_event__doc[] = PyDoc_STR("perf sample event object."); > > static PyMemberDef pyrf_sample_event__members[] = { > sample_members > @@ -274,7 +275,7 @@ static PyMemberDef pyrf_sample_event__members[] = { > { .name = NULL, }, > }; > > -static PyObject *pyrf_sample_event__repr(struct pyrf_event *pevent) > +static PyObject *pyrf_sample_event__repr(const struct pyrf_event *pevent) > { > PyObject *ret; > char *s; > @@ -289,13 +290,13 @@ static PyObject *pyrf_sample_event__repr(struct pyrf_event *pevent) > } > > #ifdef HAVE_LIBTRACEEVENT > -static bool is_tracepoint(struct pyrf_event *pevent) > +static bool is_tracepoint(const struct pyrf_event *pevent) > { > return pevent->evsel->core.attr.type == PERF_TYPE_TRACEPOINT; > } > > static PyObject* > -tracepoint_field(struct pyrf_event *pe, struct tep_format_field *field) > +tracepoint_field(const struct pyrf_event *pe, struct tep_format_field *field) > { > struct tep_handle *pevent = field->event->tep; > void *data = pe->sample.raw_data; > @@ -384,7 +385,7 @@ static PyTypeObject pyrf_sample_event__type = { > .tp_getattro = (getattrofunc) pyrf_sample_event__getattro, > }; > > -static char pyrf_context_switch_event__doc[] = PyDoc_STR("perf context_switch event object."); > +static const char pyrf_context_switch_event__doc[] = PyDoc_STR("perf context_switch event object."); > > static PyMemberDef pyrf_context_switch_event__members[] = { > sample_members > @@ -394,7 +395,7 @@ static PyMemberDef pyrf_context_switch_event__members[] = { > { .name = NULL, }, > }; > > -static PyObject *pyrf_context_switch_event__repr(struct pyrf_event *pevent) > +static PyObject *pyrf_context_switch_event__repr(const struct pyrf_event *pevent) > { > PyObject *ret; > char *s; > @@ -474,7 +475,7 @@ static PyTypeObject *pyrf_event__type[] = { > [PERF_RECORD_SWITCH_CPU_WIDE] = &pyrf_context_switch_event__type, > }; > > -static PyObject *pyrf_event__new(union perf_event *event) > +static PyObject *pyrf_event__new(const union perf_event *event) > { > struct pyrf_event *pevent; > PyTypeObject *ptype; > @@ -542,7 +543,7 @@ static PySequenceMethods pyrf_cpu_map__sequence_methods = { > .sq_item = pyrf_cpu_map__item, > }; > > -static char pyrf_cpu_map__doc[] = PyDoc_STR("cpu map object."); > +static const char pyrf_cpu_map__doc[] = PyDoc_STR("cpu map object."); > > static PyTypeObject pyrf_cpu_map__type = { > PyVarObject_HEAD_INIT(NULL, 0) > @@ -611,7 +612,7 @@ static PySequenceMethods pyrf_thread_map__sequence_methods = { > .sq_item = pyrf_thread_map__item, > }; > > -static char pyrf_thread_map__doc[] = PyDoc_STR("thread map object."); > +static const char pyrf_thread_map__doc[] = PyDoc_STR("thread map object."); > > static PyTypeObject pyrf_thread_map__type = { > PyVarObject_HEAD_INIT(NULL, 0) > @@ -795,7 +796,7 @@ static PyMethodDef pyrf_evsel__methods[] = { > { .ml_name = NULL, } > }; > > -static char pyrf_evsel__doc[] = PyDoc_STR("perf event selector list object."); > +static const char pyrf_evsel__doc[] = PyDoc_STR("perf event selector list object."); > > static PyTypeObject pyrf_evsel__type = { > PyVarObject_HEAD_INIT(NULL, 0) > @@ -1078,7 +1079,7 @@ static PySequenceMethods pyrf_evlist__sequence_methods = { > .sq_item = pyrf_evlist__item, > }; > > -static char pyrf_evlist__doc[] = PyDoc_STR("perf event selector list object."); > +static const char pyrf_evlist__doc[] = PyDoc_STR("perf event selector list object."); > > static PyTypeObject pyrf_evlist__type = { > PyVarObject_HEAD_INIT(NULL, 0) > @@ -1100,10 +1101,12 @@ static int pyrf_evlist__setup_types(void) > > #define PERF_CONST(name) { #name, PERF_##name } > > -static struct { > +struct perf_constant { > const char *name; > int value; > -} perf__constants[] = { > +}; > + > +static const struct perf_constant perf__constants[] = { > PERF_CONST(TYPE_HARDWARE), > PERF_CONST(TYPE_SOFTWARE), > PERF_CONST(TYPE_TRACEPOINT),
© 2016 - 2024 Red Hat, Inc.