| /* Copyright (c) 2015 Google Inc |
| * Davide Libenzi <dlibenzi@google.com> |
| * See LICENSE for details. |
| */ |
| |
| #pragma once |
| |
| #include <stdio.h> |
| #include <ros/profiler_records.h> |
| |
| struct hw_trapframe; |
| struct proc; |
| struct file_or_chan; |
| struct cmdbuf; |
| |
| int profiler_configure(struct cmdbuf *cb); |
| void profiler_append_configure_usage(char *msgbuf, size_t buflen); |
| void profiler_init(void); |
| void profiler_setup(void); |
| void profiler_cleanup(void); |
| void profiler_start(void); |
| void profiler_stop(void); |
| void profiler_push_kernel_backtrace(uintptr_t *pc_list, size_t nr_pcs, |
| uint64_t info); |
| void profiler_push_user_backtrace(uintptr_t *pc_list, size_t nr_pcs, |
| uint64_t info); |
| void profiler_trace_data_flush(void); |
| int profiler_size(void); |
| int profiler_read(void *va, int n); |
| void profiler_notify_mmap(struct proc *p, uintptr_t addr, size_t size, int prot, |
| int flags, struct file_or_chan *foc, size_t offset); |
| void profiler_notify_new_process(struct proc *p); |