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