| # 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_ |
| |