xref: /aosp_15_r20/external/crosvm/perfetto/README.md (revision bb4ee6a4ae7042d18b07a98463b9c8b875e44b39)
1*bb4ee6a4SAndroid Build Coastguard Worker# Perfetto Rust wrapper
2*bb4ee6a4SAndroid Build Coastguard Worker
3*bb4ee6a4SAndroid Build Coastguard WorkerThe following instructions are based on `tools/impl/bindgen-common.sh`
4*bb4ee6a4SAndroid Build Coastguard Worker
5*bb4ee6a4SAndroid Build Coastguard WorkerWhen the Perfetto C API is updated, in order to regenerate the bindings:
6*bb4ee6a4SAndroid Build Coastguard Worker
7*bb4ee6a4SAndroid Build Coastguard Worker1. [Download the bindgen cmdline tool.](https://rust-lang.github.io/rust-bindgen/command-line-usage.html)
8*bb4ee6a4SAndroid Build Coastguard Worker1. Run the bindgen command. If you are in crosvm:
9*bb4ee6a4SAndroid Build Coastguard Worker   ```
10*bb4ee6a4SAndroid Build Coastguard Worker   $ bindgen third_party/perfetto/include/perfetto/tracing/ctrace.h --disable-header-comment --no-layout-tests --no-doc-comments --with-derive-default --size_t-is-usize -o ./perfetto/src/bindings.rs
11*bb4ee6a4SAndroid Build Coastguard Worker   ```
12*bb4ee6a4SAndroid Build Coastguard Worker1. Add the following to the top of the new bindings.rs file:
13*bb4ee6a4SAndroid Build Coastguard Worker   ```
14*bb4ee6a4SAndroid Build Coastguard Worker   #![allow(clippy::missing_safety_doc)]
15*bb4ee6a4SAndroid Build Coastguard Worker   #![allow(clippy::upper_case_acronyms)]
16*bb4ee6a4SAndroid Build Coastguard Worker   #![allow(non_upper_case_globals)]
17*bb4ee6a4SAndroid Build Coastguard Worker   #![allow(non_camel_case_types)]
18*bb4ee6a4SAndroid Build Coastguard Worker   #![allow(non_snake_case)]
19*bb4ee6a4SAndroid Build Coastguard Worker   #![allow(dead_code)]
20*bb4ee6a4SAndroid Build Coastguard Worker   ```
21*bb4ee6a4SAndroid Build Coastguard Worker1. Finally, add a copyright header to the bindings.
22