perf-event-open-sys
Based on Linux kernel headers packaged by Fedora as kernel-headers-5.18.4-200.fc36
.
Fix build for Android, x86_64-unknown-linux-musl.
Remove redundant prefixes from bindings
constants derived from enums in the Linux kernel headers.
For example, the kernel headers have the definition:
/* * attr.type */ enum perf_type_id { PERF_TYPE_HARDWARE = 0, PERF_TYPE_SOFTWARE = 1, PERF_TYPE_TRACEPOINT = 2, ... };
This crate used to render the above as constants like this:
pub const perf_type_id_PERF_TYPE_HARDWARE: perf_type_id = 0; pub const perf_type_id_PERF_TYPE_SOFTWARE: perf_type_id = 1; pub const perf_type_id_PERF_TYPE_TRACEPOINT: perf_type_id = 2; ...
The names incorporate the names of both the C enum and its constants. But since the constants' names are already prefixed (necessary because C places enumeration constants in the ‘ordinary identifier’ namespace), this is redundant.
In v3.0.0, these constants are rendered in Rust like this:
pub const PERF_TYPE_HARDWARE: perf_type_id = 0; pub const PERF_TYPE_SOFTWARE: perf_type_id = 1; pub const PERF_TYPE_TRACEPOINT: perf_type_id = 2;
Here's the full list of prefixes that were stripped, in case you want to sed
your way through a conversion:
bp_type_idx_ perf_bpf_event_type_ perf_branch_sample_type_ perf_branch_sample_type_shift_ perf_callchain_context_ perf_event_ioc_flags_ perf_event_ioctls_ perf_event_read_format_ perf_event_sample_format_ perf_event_type_ perf_hw_cache_id_ perf_hw_cache_op_result_id_ perf_hw_id_ perf_record_ksymbol_type_ perf_sample_regs_abi_ perf_sw_ids_ perf_type_id_