# Release notes for `perf-event-open-sys` ## 4.0.0 - Regenerated `x86_64` bindings from Fedora's `kernel-headers-5.19.4-200.fc36.x86_64` package. - Added support for 64-bit ARM (`aarch64`). - The `perf_event_open_sys` crate now builds on Windows and Mac. Although the system call and ioctl wrapper functions are not available, the types in the `bindings` module are still provided for use by code on other platforms that would like to parse perf data produced on Linux or Android. - Contrary to the documentation, `perf_event_open` does set `errno`. The documentation has been fixed. ## 3.0.0 - 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_