Update version-controlled scripts for bash
[akaros.git] / kern / include / profiler.h
1 /* Copyright (c) 2015 Google Inc
2  * Davide Libenzi <dlibenzi@google.com>
3  * See LICENSE for details.
4  */
5
6 #pragma once
7
8 #include <stdio.h>
9 #include <ros/profiler_records.h>
10
11 struct hw_trapframe;
12 struct proc;
13 struct file;
14 struct cmdbuf;
15
16 int profiler_configure(struct cmdbuf *cb);
17 void profiler_append_configure_usage(char *msgbuf, size_t buflen);
18 void profiler_init(void);
19 void profiler_setup(void);
20 void profiler_cleanup(void);
21 void profiler_start(void);
22 void profiler_stop(void);
23 void profiler_add_kernel_backtrace(uintptr_t pc, uintptr_t fp, uint64_t info);
24 void profiler_add_user_backtrace(uintptr_t pc, uintptr_t fp, uint64_t info);
25 void profiler_add_trace(uintptr_t pc, uint64_t info);
26 void profiler_trace_data_flush(void);
27 void profiler_add_hw_sample(struct hw_trapframe *hw_tf, uint64_t info);
28 int profiler_size(void);
29 int profiler_read(void *va, int n);
30 void profiler_notify_mmap(struct proc *p, uintptr_t addr, size_t size, int prot,
31                                                   int flags, struct file *f, size_t offset);
32 void profiler_notify_new_process(struct proc *p);