From 9f0346dcbea363787186c94ef94dd01aaa215afa Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Sat, 5 Sep 2026 11:59:05 -0700 Subject: Merge tag 'driver-core-7.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core Pull driver core fixes from Danilo Krummrich: - Fix kernfs listxattr() not returning security xattr names (e.g. SELinux labels) when the kernfs node has no allocated kernfs_iattrs - Fix silent truncation of IRQ vector indices in the Rust PCI abstractions - Don't select OF from DRIVER_PE_KUNIT_TEST; skip the test when OF is disabled instead of silently enabling extra kernel functionality - Russ Weight is retiring from kernel development; update the Firmware Loader sysfs contact to the driver-core mailing list, add a CREDITS entry for Firmware Upload, and update MAINTAINERS accordingly * tag 'driver-core-7.3-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core: MAINTAINERS: Remove Russ Weight from Firmware Loader CREDITS: Add CREDITS entry for Firmware Upload firmware_loader: Change contact for sysfs nodes rust: pci: reject IRQ vector indices that do not fit in u32 kernfs: preserve security xattrs without allocating iattrs drivers: base: test: DRIVER_PE_KUNIT_TEST should not select OF --- tools/perf/util/tool.h | 116 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 tools/perf/util/tool.h (limited to 'tools/perf/util/tool.h') diff --git a/tools/perf/util/tool.h b/tools/perf/util/tool.h new file mode 100644 index 000000000..2a4f124ff --- /dev/null +++ b/tools/perf/util/tool.h @@ -0,0 +1,116 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef __PERF_TOOL_H +#define __PERF_TOOL_H + +#include + +#include + +struct perf_session; +union perf_event; +struct evlist; +struct perf_sample; +struct perf_tool; +struct machine; +struct ordered_events; + +typedef int (*event_sample)(const struct perf_tool *tool, union perf_event *event, + struct perf_sample *sample, + struct machine *machine); + +typedef int (*event_op)(const struct perf_tool *tool, union perf_event *event, + struct perf_sample *sample, struct machine *machine); + +typedef int (*event_attr_op)(const struct perf_tool *tool, + union perf_event *event, + struct evlist **pevlist); + +typedef int (*event_op2)(const struct perf_tool *tool, struct perf_session *session, + union perf_event *event); +typedef s64 (*event_op3)(const struct perf_tool *tool, struct perf_session *session, + union perf_event *event); +typedef int (*event_op4)(const struct perf_tool *tool, struct perf_session *session, + union perf_event *event, u64 data, const char *str); + +typedef int (*event_oe)(const struct perf_tool *tool, union perf_event *event, + struct ordered_events *oe); + +enum show_feature_header { + SHOW_FEAT_NO_HEADER = 0, + SHOW_FEAT_HEADER, + SHOW_FEAT_HEADER_FULL_INFO, +}; + +struct perf_tool { + event_sample sample, + read, + callchain_deferred; + event_op mmap, + mmap2, + comm, + namespaces, + cgroup, + fork, + exit, + lost, + lost_samples, + aux, + itrace_start, + aux_output_hw_id, + context_switch, + throttle, + unthrottle, + ksymbol, + bpf, + text_poke; + + event_attr_op attr; + event_attr_op event_update; + event_op2 tracing_data; + event_oe finished_round; + event_op2 build_id, + id_index, + auxtrace_info, + auxtrace_error, + time_conv, + thread_map, + cpu_map, + stat_config, + stat, + stat_round, + feature, + finished_init, + bpf_metadata, + schedstat_cpu, + schedstat_domain; + event_op4 compressed; + event_op3 auxtrace; + bool ordered_events; + bool ordering_requires_timestamps; + bool namespace_events; + bool cgroup_events; + bool no_warn; + bool dont_split_sample_group; + bool merge_deferred_callchains; + enum show_feature_header show_feat_hdr; +}; + +void perf_tool__init(struct perf_tool *tool, bool ordered_events); + +bool perf_tool__compressed_is_stub(const struct perf_tool *tool); + +int process_event_sample_stub(const struct perf_tool *tool, + union perf_event *event, + struct perf_sample *sample, + struct machine *machine); + +struct delegate_tool { + /** @tool: The actual tool that calls the delegate. */ + struct perf_tool tool; + /** @delegate: The tool that is delegated to. */ + struct perf_tool *delegate; +}; + +void delegate_tool__init(struct delegate_tool *tool, struct perf_tool *delegate); + +#endif /* __PERF_TOOL_H */ -- cgit v1.3.1