libperf: Rename the PERF_RECORD_ structs to have a "perf" suffix

Even more, to have a "perf_record_" prefix, so that they match the
PERF_RECORD_ enum they map to.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Link: https://lkml.kernel.org/n/tip-qbabmcz2a0pkzt72liyuz3p8@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent b1fcd190
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#include <linux/limits.h> #include <linux/limits.h>
#include <linux/bpf.h> #include <linux/bpf.h>
struct mmap_event { struct perf_record_mmap {
struct perf_event_header header; struct perf_event_header header;
__u32 pid, tid; __u32 pid, tid;
__u64 start; __u64 start;
...@@ -16,7 +16,7 @@ struct mmap_event { ...@@ -16,7 +16,7 @@ struct mmap_event {
char filename[PATH_MAX]; char filename[PATH_MAX];
}; };
struct mmap2_event { struct perf_record_mmap2 {
struct perf_event_header header; struct perf_event_header header;
__u32 pid, tid; __u32 pid, tid;
__u64 start; __u64 start;
...@@ -31,33 +31,33 @@ struct mmap2_event { ...@@ -31,33 +31,33 @@ struct mmap2_event {
char filename[PATH_MAX]; char filename[PATH_MAX];
}; };
struct comm_event { struct perf_record_comm {
struct perf_event_header header; struct perf_event_header header;
__u32 pid, tid; __u32 pid, tid;
char comm[16]; char comm[16];
}; };
struct namespaces_event { struct perf_record_namespaces {
struct perf_event_header header; struct perf_event_header header;
__u32 pid, tid; __u32 pid, tid;
__u64 nr_namespaces; __u64 nr_namespaces;
struct perf_ns_link_info link_info[]; struct perf_ns_link_info link_info[];
}; };
struct fork_event { struct perf_record_fork {
struct perf_event_header header; struct perf_event_header header;
__u32 pid, ppid; __u32 pid, ppid;
__u32 tid, ptid; __u32 tid, ptid;
__u64 time; __u64 time;
}; };
struct lost_event { struct perf_record_lost {
struct perf_event_header header; struct perf_event_header header;
__u64 id; __u64 id;
__u64 lost; __u64 lost;
}; };
struct lost_samples_event { struct perf_record_lost_samples {
struct perf_event_header header; struct perf_event_header header;
__u64 lost; __u64 lost;
}; };
...@@ -65,7 +65,7 @@ struct lost_samples_event { ...@@ -65,7 +65,7 @@ struct lost_samples_event {
/* /*
* PERF_FORMAT_ENABLED | PERF_FORMAT_RUNNING | PERF_FORMAT_ID * PERF_FORMAT_ENABLED | PERF_FORMAT_RUNNING | PERF_FORMAT_ID
*/ */
struct read_event { struct perf_record_read {
struct perf_event_header header; struct perf_event_header header;
__u32 pid, tid; __u32 pid, tid;
__u64 value; __u64 value;
...@@ -74,7 +74,7 @@ struct read_event { ...@@ -74,7 +74,7 @@ struct read_event {
__u64 id; __u64 id;
}; };
struct throttle_event { struct perf_record_throttle {
struct perf_event_header header; struct perf_event_header header;
__u64 time; __u64 time;
__u64 id; __u64 id;
...@@ -85,7 +85,7 @@ struct throttle_event { ...@@ -85,7 +85,7 @@ struct throttle_event {
#define KSYM_NAME_LEN 256 #define KSYM_NAME_LEN 256
#endif #endif
struct ksymbol_event { struct perf_record_ksymbol {
struct perf_event_header header; struct perf_event_header header;
__u64 addr; __u64 addr;
__u32 len; __u32 len;
...@@ -94,7 +94,7 @@ struct ksymbol_event { ...@@ -94,7 +94,7 @@ struct ksymbol_event {
char name[KSYM_NAME_LEN]; char name[KSYM_NAME_LEN];
}; };
struct bpf_event { struct perf_record_bpf_event {
struct perf_event_header header; struct perf_event_header header;
__u16 type; __u16 type;
__u16 flags; __u16 flags;
...@@ -104,7 +104,7 @@ struct bpf_event { ...@@ -104,7 +104,7 @@ struct bpf_event {
__u8 tag[BPF_TAG_SIZE]; // prog tag __u8 tag[BPF_TAG_SIZE]; // prog tag
}; };
struct sample_event { struct perf_record_sample {
struct perf_event_header header; struct perf_event_header header;
__u64 array[]; __u64 array[];
}; };
......
...@@ -87,10 +87,10 @@ int test__parse_no_sample_id_all(struct test *test __maybe_unused, int subtest _ ...@@ -87,10 +87,10 @@ int test__parse_no_sample_id_all(struct test *test __maybe_unused, int subtest _
}, },
.id = 2, .id = 2,
}; };
struct mmap_event event3 = { struct perf_record_mmap event3 = {
.header = { .header = {
.type = PERF_RECORD_MMAP, .type = PERF_RECORD_MMAP,
.size = sizeof(struct mmap_event), .size = sizeof(struct perf_record_mmap),
}, },
}; };
union perf_event *events[] = { union perf_event *events[] = {
......
...@@ -161,8 +161,8 @@ static int perf_event__synthesize_one_bpf_prog(struct perf_session *session, ...@@ -161,8 +161,8 @@ static int perf_event__synthesize_one_bpf_prog(struct perf_session *session,
union perf_event *event, union perf_event *event,
struct record_opts *opts) struct record_opts *opts)
{ {
struct ksymbol_event *ksymbol_event = &event->ksymbol_event; struct perf_record_ksymbol *ksymbol_event = &event->ksymbol_event;
struct bpf_event *bpf_event = &event->bpf_event; struct perf_record_bpf_event *bpf_event = &event->bpf_event;
struct bpf_prog_info_linear *info_linear; struct bpf_prog_info_linear *info_linear;
struct perf_tool *tool = session->tool; struct perf_tool *tool = session->tool;
struct bpf_prog_info_node *info_node; struct bpf_prog_info_node *info_node;
...@@ -230,10 +230,10 @@ static int perf_event__synthesize_one_bpf_prog(struct perf_session *session, ...@@ -230,10 +230,10 @@ static int perf_event__synthesize_one_bpf_prog(struct perf_session *session,
__u64 *prog_addrs = (__u64 *)(uintptr_t)(info->jited_ksyms); __u64 *prog_addrs = (__u64 *)(uintptr_t)(info->jited_ksyms);
int name_len; int name_len;
*ksymbol_event = (struct ksymbol_event){ *ksymbol_event = (struct perf_record_ksymbol) {
.header = { .header = {
.type = PERF_RECORD_KSYMBOL, .type = PERF_RECORD_KSYMBOL,
.size = offsetof(struct ksymbol_event, name), .size = offsetof(struct perf_record_ksymbol, name),
}, },
.addr = prog_addrs[i], .addr = prog_addrs[i],
.len = prog_lens[i], .len = prog_lens[i],
...@@ -254,10 +254,10 @@ static int perf_event__synthesize_one_bpf_prog(struct perf_session *session, ...@@ -254,10 +254,10 @@ static int perf_event__synthesize_one_bpf_prog(struct perf_session *session,
if (!opts->no_bpf_event) { if (!opts->no_bpf_event) {
/* Synthesize PERF_RECORD_BPF_EVENT */ /* Synthesize PERF_RECORD_BPF_EVENT */
*bpf_event = (struct bpf_event){ *bpf_event = (struct perf_record_bpf_event) {
.header = { .header = {
.type = PERF_RECORD_BPF_EVENT, .type = PERF_RECORD_BPF_EVENT,
.size = sizeof(struct bpf_event), .size = sizeof(struct perf_record_bpf_event),
}, },
.type = PERF_BPF_EVENT_PROG_LOAD, .type = PERF_BPF_EVENT_PROG_LOAD,
.flags = 0, .flags = 0,
......
...@@ -305,18 +305,18 @@ static inline void *perf_synth__raw_data(void *p) ...@@ -305,18 +305,18 @@ static inline void *perf_synth__raw_data(void *p)
* when possible sends this number in a PERF_RECORD_LOST event. The number of * when possible sends this number in a PERF_RECORD_LOST event. The number of
* such "chunks" of lost events is stored in .nr_events[PERF_EVENT_LOST] while * such "chunks" of lost events is stored in .nr_events[PERF_EVENT_LOST] while
* total_lost tells exactly how many events the kernel in fact lost, i.e. it is * total_lost tells exactly how many events the kernel in fact lost, i.e. it is
* the sum of all struct lost_event.lost fields reported. * the sum of all struct perf_record_lost.lost fields reported.
* *
* The kernel discards mixed up samples and sends the number in a * The kernel discards mixed up samples and sends the number in a
* PERF_RECORD_LOST_SAMPLES event. The number of lost-samples events is stored * PERF_RECORD_LOST_SAMPLES event. The number of lost-samples events is stored
* in .nr_events[PERF_RECORD_LOST_SAMPLES] while total_lost_samples tells * in .nr_events[PERF_RECORD_LOST_SAMPLES] while total_lost_samples tells
* exactly how many samples the kernel in fact dropped, i.e. it is the sum of * exactly how many samples the kernel in fact dropped, i.e. it is the sum of
* all struct lost_samples_event.lost fields reported. * all struct perf_record_lost_samples.lost fields reported.
* *
* The total_period is needed because by default auto-freq is used, so * The total_period is needed because by default auto-freq is used, so
* multipling nr_events[PERF_EVENT_SAMPLE] by a frequency isn't possible to get * multipling nr_events[PERF_EVENT_SAMPLE] by a frequency isn't possible to get
* the total number of low level events, it is necessary to to sum all struct * the total number of low level events, it is necessary to to sum all struct
* sample_event.period and stash the result in total_period. * perf_record_sample.period and stash the result in total_period.
*/ */
struct events_stats { struct events_stats {
u64 total_period; u64 total_period;
...@@ -550,16 +550,18 @@ struct compressed_event { ...@@ -550,16 +550,18 @@ struct compressed_event {
union perf_event { union perf_event {
struct perf_event_header header; struct perf_event_header header;
struct mmap_event mmap; struct perf_record_mmap mmap;
struct mmap2_event mmap2; struct perf_record_mmap2 mmap2;
struct comm_event comm; struct perf_record_comm comm;
struct namespaces_event namespaces; struct perf_record_namespaces namespaces;
struct fork_event fork; struct perf_record_fork fork;
struct lost_event lost; struct perf_record_lost lost;
struct lost_samples_event lost_samples; struct perf_record_lost_samples lost_samples;
struct read_event read; struct perf_record_read read;
struct throttle_event throttle; struct perf_record_throttle throttle;
struct sample_event sample; struct perf_record_sample sample;
struct perf_record_bpf_event bpf_event;
struct perf_record_ksymbol ksymbol_event;
struct attr_event attr; struct attr_event attr;
struct event_update_event event_update; struct event_update_event event_update;
struct event_type_event event_type; struct event_type_event event_type;
...@@ -579,8 +581,6 @@ union perf_event { ...@@ -579,8 +581,6 @@ union perf_event {
struct stat_round_event stat_round; struct stat_round_event stat_round;
struct time_conv_event time_conv; struct time_conv_event time_conv;
struct feature_event feat; struct feature_event feat;
struct ksymbol_event ksymbol_event;
struct bpf_event bpf_event;
struct compressed_event pack; struct compressed_event pack;
}; };
......
...@@ -117,7 +117,7 @@ int __perf_evsel__sample_size(u64 sample_type) ...@@ -117,7 +117,7 @@ int __perf_evsel__sample_size(u64 sample_type)
* *
* This function returns the position of the event id (PERF_SAMPLE_ID or * This function returns the position of the event id (PERF_SAMPLE_ID or
* PERF_SAMPLE_IDENTIFIER) in a sample event i.e. in the array of struct * PERF_SAMPLE_IDENTIFIER) in a sample event i.e. in the array of struct
* sample_event. * perf_record_sample.
*/ */
static int __perf_evsel__calc_id_pos(u64 sample_type) static int __perf_evsel__calc_id_pos(u64 sample_type)
{ {
...@@ -2420,7 +2420,7 @@ int perf_evsel__parse_sample_timestamp(struct evsel *evsel, ...@@ -2420,7 +2420,7 @@ int perf_evsel__parse_sample_timestamp(struct evsel *evsel,
size_t perf_event__sample_event_size(const struct perf_sample *sample, u64 type, size_t perf_event__sample_event_size(const struct perf_sample *sample, u64 type,
u64 read_format) u64 read_format)
{ {
size_t sz, result = sizeof(struct sample_event); size_t sz, result = sizeof(struct perf_record_sample);
if (type & PERF_SAMPLE_IDENTIFIER) if (type & PERF_SAMPLE_IDENTIFIER)
result += sizeof(u64); result += sizeof(u64);
......
...@@ -107,7 +107,7 @@ struct xyarray; ...@@ -107,7 +107,7 @@ struct xyarray;
* show the name used, not some alias. * show the name used, not some alias.
* @id_pos: the position of the event id (PERF_SAMPLE_ID or * @id_pos: the position of the event id (PERF_SAMPLE_ID or
* PERF_SAMPLE_IDENTIFIER) in a sample event i.e. in the array of * PERF_SAMPLE_IDENTIFIER) in a sample event i.e. in the array of
* struct sample_event * struct perf_record_sample
* @is_pos: the position (counting backwards) of the event id (PERF_SAMPLE_ID or * @is_pos: the position (counting backwards) of the event id (PERF_SAMPLE_ID or
* PERF_SAMPLE_IDENTIFIER) in a non-sample event i.e. if sample_id_all * PERF_SAMPLE_IDENTIFIER) in a non-sample event i.e. if sample_id_all
* is used there is an id sample appended to non-sample events * is used there is an id sample appended to non-sample events
......
...@@ -818,7 +818,7 @@ static int intel_bts_synth_events(struct intel_bts *bts, ...@@ -818,7 +818,7 @@ static int intel_bts_synth_events(struct intel_bts *bts,
* We only use sample types from PERF_SAMPLE_MASK so we can use * We only use sample types from PERF_SAMPLE_MASK so we can use
* __perf_evsel__sample_size() here. * __perf_evsel__sample_size() here.
*/ */
bts->branches_event_size = sizeof(struct sample_event) + bts->branches_event_size = sizeof(struct perf_record_sample) +
__perf_evsel__sample_size(attr.sample_type); __perf_evsel__sample_size(attr.sample_type);
} }
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include <asm/bug.h> #include <asm/bug.h>
#include <linux/zalloc.h> #include <linux/zalloc.h>
struct namespaces *namespaces__new(struct namespaces_event *event) struct namespaces *namespaces__new(struct perf_record_namespaces *event)
{ {
struct namespaces *namespaces; struct namespaces *namespaces;
u64 link_info_size = ((event ? event->nr_namespaces : NR_NAMESPACES) * u64 link_info_size = ((event ? event->nr_namespaces : NR_NAMESPACES) *
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
int setns(int fd, int nstype); int setns(int fd, int nstype);
#endif #endif
struct namespaces_event; struct perf_record_namespaces;
struct namespaces { struct namespaces {
struct list_head list; struct list_head list;
...@@ -25,7 +25,7 @@ struct namespaces { ...@@ -25,7 +25,7 @@ struct namespaces {
struct perf_ns_link_info link_info[]; struct perf_ns_link_info link_info[];
}; };
struct namespaces *namespaces__new(struct namespaces_event *event); struct namespaces *namespaces__new(struct perf_record_namespaces *event);
void namespaces__free(struct namespaces *namespaces); void namespaces__free(struct namespaces *namespaces);
struct nsinfo { struct nsinfo {
......
...@@ -116,12 +116,12 @@ static PyMemberDef pyrf_mmap_event__members[] = { ...@@ -116,12 +116,12 @@ static PyMemberDef pyrf_mmap_event__members[] = {
sample_members sample_members
member_def(perf_event_header, type, T_UINT, "event type"), member_def(perf_event_header, type, T_UINT, "event type"),
member_def(perf_event_header, misc, T_UINT, "event misc"), member_def(perf_event_header, misc, T_UINT, "event misc"),
member_def(mmap_event, pid, T_UINT, "event pid"), member_def(perf_record_mmap, pid, T_UINT, "event pid"),
member_def(mmap_event, tid, T_UINT, "event tid"), member_def(perf_record_mmap, tid, T_UINT, "event tid"),
member_def(mmap_event, start, T_ULONGLONG, "start of the map"), member_def(perf_record_mmap, start, T_ULONGLONG, "start of the map"),
member_def(mmap_event, len, T_ULONGLONG, "map length"), member_def(perf_record_mmap, len, T_ULONGLONG, "map length"),
member_def(mmap_event, pgoff, T_ULONGLONG, "page offset"), member_def(perf_record_mmap, pgoff, T_ULONGLONG, "page offset"),
member_def(mmap_event, filename, T_STRING_INPLACE, "backing store"), member_def(perf_record_mmap, filename, T_STRING_INPLACE, "backing store"),
{ .name = NULL, }, { .name = NULL, },
}; };
...@@ -159,11 +159,11 @@ static char pyrf_task_event__doc[] = PyDoc_STR("perf task (fork/exit) event obje ...@@ -159,11 +159,11 @@ static char pyrf_task_event__doc[] = PyDoc_STR("perf task (fork/exit) event obje
static PyMemberDef pyrf_task_event__members[] = { static PyMemberDef pyrf_task_event__members[] = {
sample_members sample_members
member_def(perf_event_header, type, T_UINT, "event type"), member_def(perf_event_header, type, T_UINT, "event type"),
member_def(fork_event, pid, T_UINT, "event pid"), member_def(perf_record_fork, pid, T_UINT, "event pid"),
member_def(fork_event, ppid, T_UINT, "event ppid"), member_def(perf_record_fork, ppid, T_UINT, "event ppid"),
member_def(fork_event, tid, T_UINT, "event tid"), member_def(perf_record_fork, tid, T_UINT, "event tid"),
member_def(fork_event, ptid, T_UINT, "event ptid"), member_def(perf_record_fork, ptid, T_UINT, "event ptid"),
member_def(fork_event, time, T_ULONGLONG, "timestamp"), member_def(perf_record_fork, time, T_ULONGLONG, "timestamp"),
{ .name = NULL, }, { .name = NULL, },
}; };
...@@ -194,9 +194,9 @@ static char pyrf_comm_event__doc[] = PyDoc_STR("perf comm event object."); ...@@ -194,9 +194,9 @@ static char pyrf_comm_event__doc[] = PyDoc_STR("perf comm event object.");
static PyMemberDef pyrf_comm_event__members[] = { static PyMemberDef pyrf_comm_event__members[] = {
sample_members sample_members
member_def(perf_event_header, type, T_UINT, "event type"), member_def(perf_event_header, type, T_UINT, "event type"),
member_def(comm_event, pid, T_UINT, "event pid"), member_def(perf_record_comm, pid, T_UINT, "event pid"),
member_def(comm_event, tid, T_UINT, "event tid"), member_def(perf_record_comm, tid, T_UINT, "event tid"),
member_def(comm_event, comm, T_STRING_INPLACE, "process name"), member_def(perf_record_comm, comm, T_STRING_INPLACE, "process name"),
{ .name = NULL, }, { .name = NULL, },
}; };
...@@ -223,15 +223,15 @@ static char pyrf_throttle_event__doc[] = PyDoc_STR("perf throttle event object." ...@@ -223,15 +223,15 @@ static char pyrf_throttle_event__doc[] = PyDoc_STR("perf throttle event object."
static PyMemberDef pyrf_throttle_event__members[] = { static PyMemberDef pyrf_throttle_event__members[] = {
sample_members sample_members
member_def(perf_event_header, type, T_UINT, "event type"), member_def(perf_event_header, type, T_UINT, "event type"),
member_def(throttle_event, time, T_ULONGLONG, "timestamp"), member_def(perf_record_throttle, time, T_ULONGLONG, "timestamp"),
member_def(throttle_event, id, T_ULONGLONG, "event id"), member_def(perf_record_throttle, id, T_ULONGLONG, "event id"),
member_def(throttle_event, stream_id, T_ULONGLONG, "event stream id"), member_def(perf_record_throttle, stream_id, T_ULONGLONG, "event stream id"),
{ .name = NULL, }, { .name = NULL, },
}; };
static PyObject *pyrf_throttle_event__repr(struct pyrf_event *pevent) static PyObject *pyrf_throttle_event__repr(struct pyrf_event *pevent)
{ {
struct throttle_event *te = (struct throttle_event *)(&pevent->event.header + 1); struct perf_record_throttle *te = (struct perf_record_throttle *)(&pevent->event.header + 1);
return _PyUnicode_FromFormat("{ type: %sthrottle, time: %" PRI_lu64 ", id: %" PRI_lu64 return _PyUnicode_FromFormat("{ type: %sthrottle, time: %" PRI_lu64 ", id: %" PRI_lu64
", stream_id: %" PRI_lu64 " }", ", stream_id: %" PRI_lu64 " }",
...@@ -253,8 +253,8 @@ static char pyrf_lost_event__doc[] = PyDoc_STR("perf lost event object."); ...@@ -253,8 +253,8 @@ static char pyrf_lost_event__doc[] = PyDoc_STR("perf lost event object.");
static PyMemberDef pyrf_lost_event__members[] = { static PyMemberDef pyrf_lost_event__members[] = {
sample_members sample_members
member_def(lost_event, id, T_ULONGLONG, "event id"), member_def(perf_record_lost, id, T_ULONGLONG, "event id"),
member_def(lost_event, lost, T_ULONGLONG, "number of lost events"), member_def(perf_record_lost, lost, T_ULONGLONG, "number of lost events"),
{ .name = NULL, }, { .name = NULL, },
}; };
...@@ -288,8 +288,8 @@ static char pyrf_read_event__doc[] = PyDoc_STR("perf read event object."); ...@@ -288,8 +288,8 @@ static char pyrf_read_event__doc[] = PyDoc_STR("perf read event object.");
static PyMemberDef pyrf_read_event__members[] = { static PyMemberDef pyrf_read_event__members[] = {
sample_members sample_members
member_def(read_event, pid, T_UINT, "event pid"), member_def(perf_record_read, pid, T_UINT, "event pid"),
member_def(read_event, tid, T_UINT, "event tid"), member_def(perf_record_read, tid, T_UINT, "event tid"),
{ .name = NULL, }, { .name = NULL, },
}; };
......
...@@ -1254,7 +1254,7 @@ static void dump_sample(struct evsel *evsel, union perf_event *event, ...@@ -1254,7 +1254,7 @@ static void dump_sample(struct evsel *evsel, union perf_event *event,
static void dump_read(struct evsel *evsel, union perf_event *event) static void dump_read(struct evsel *evsel, union perf_event *event)
{ {
struct read_event *read_event = &event->read; struct perf_record_read *read_event = &event->read;
u64 read_format; u64 read_format;
if (!dump_trace) if (!dump_trace)
......
...@@ -169,7 +169,7 @@ struct namespaces *thread__namespaces(struct thread *thread) ...@@ -169,7 +169,7 @@ struct namespaces *thread__namespaces(struct thread *thread)
} }
static int __thread__set_namespaces(struct thread *thread, u64 timestamp, static int __thread__set_namespaces(struct thread *thread, u64 timestamp,
struct namespaces_event *event) struct perf_record_namespaces *event)
{ {
struct namespaces *new, *curr = __thread__namespaces(thread); struct namespaces *new, *curr = __thread__namespaces(thread);
...@@ -193,7 +193,7 @@ static int __thread__set_namespaces(struct thread *thread, u64 timestamp, ...@@ -193,7 +193,7 @@ static int __thread__set_namespaces(struct thread *thread, u64 timestamp,
} }
int thread__set_namespaces(struct thread *thread, u64 timestamp, int thread__set_namespaces(struct thread *thread, u64 timestamp,
struct namespaces_event *event) struct perf_record_namespaces *event)
{ {
int ret; int ret;
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
struct addr_location; struct addr_location;
struct map; struct map;
struct namespaces_event; struct perf_record_namespaces;
struct thread_stack; struct thread_stack;
struct unwind_libunwind_ops; struct unwind_libunwind_ops;
...@@ -74,7 +74,7 @@ static inline void thread__exited(struct thread *thread) ...@@ -74,7 +74,7 @@ static inline void thread__exited(struct thread *thread)
struct namespaces *thread__namespaces(struct thread *thread); struct namespaces *thread__namespaces(struct thread *thread);
int thread__set_namespaces(struct thread *thread, u64 timestamp, int thread__set_namespaces(struct thread *thread, u64 timestamp,
struct namespaces_event *event); struct perf_record_namespaces *event);
int __thread__set_comm(struct thread *thread, const char *comm, u64 timestamp, int __thread__set_comm(struct thread *thread, const char *comm, u64 timestamp,
bool exec); bool exec);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment