light_program_profiler/
lib.rs1#![allow(unused_variables)]
2pub use light_profiler_macro::profile;
3
4#[inline(always)]
5pub fn log_compute_units_start(id: &str, id_len: u64) {
6 #[cfg(target_os = "solana")]
7 unsafe {
8 sol_log_compute_units_start(id.as_ptr() as u64, id_len, 0, 0, 0);
9 }
10}
11
12#[inline(always)]
13pub fn log_compute_units_end(id: &str, id_len: u64) {
14 #[cfg(target_os = "solana")]
15 unsafe {
16 sol_log_compute_units_end(id.as_ptr() as u64, id_len, 0, 0, 0);
17 }
18}
19
20#[cfg(feature = "profile-heap")]
21pub fn log_compute_units_start_with_heap(id: &str, id_len: u64, heap_value: u64) {
22 #[cfg(target_os = "solana")]
23 unsafe {
24 sol_log_compute_units_start(id.as_ptr() as u64, id_len, heap_value, 1, 0);
25 }
26}
27
28#[cfg(feature = "profile-heap")]
29pub fn log_compute_units_end_with_heap(id: &str, id_len: u64, heap_value: u64) {
30 #[cfg(target_os = "solana")]
31 unsafe {
32 sol_log_compute_units_end(id.as_ptr() as u64, id_len, heap_value, 1, 0);
33 }
34}
35
36#[cfg(target_os = "solana")]
37unsafe extern "C" {
38 fn sol_log_compute_units_start(
39 id_addr: u64,
40 id_len: u64,
41 heap_value: u64,
42 with_heap: u64,
43 _arg5: u64,
44 );
45}
46
47#[cfg(target_os = "solana")]
48unsafe extern "C" {
49
50 fn sol_log_compute_units_end(
51 id_addr: u64,
52 id_len: u64,
53 heap_value: u64,
54 with_heap: u64,
55 _arg5: u64,
56 );
57}