blob: 81b622f54bd698b4dd42b6428e75747720138691 [file] [log] [blame]
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -08001/* Copyright (C) 2006-2007 The Android Open Source Project
2**
3** This software is licensed under the terms of the GNU General Public
4** License version 2, as published by the Free Software Foundation, and
5** may be copied, distributed, and modified under those terms.
6**
7** This program is distributed in the hope that it will be useful,
8** but WITHOUT ANY WARRANTY; without even the implied warranty of
9** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10** GNU General Public License for more details.
11*/
12
13#ifndef TRACE_H
14#define TRACE_H
15
16#include <inttypes.h>
17#include "trace_common.h"
18
19extern uint64_t start_time, end_time;
20extern uint64_t elapsed_usecs;
David 'Digit' Turner6eaacfb2011-05-10 10:57:17 +020021extern uint64_t Now();
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080022
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080023struct TranslationBlock;
24
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080025// The simulated time, in clock ticks, starting with one.
26extern uint64_t sim_time;
David 'Digit' Turner8ee4e5e2011-05-09 13:57:15 +020027extern uint64_t trace_static_bb_num(void);;
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080028
29// This variable == 1 if we are currently tracing, otherwise == 0.
30extern int tracing;
31extern int trace_all_addr;
32extern int trace_cache_miss;
33
34extern void start_tracing();
35extern void stop_tracing();
36extern void trace_init(const char *filename);
37extern void trace_bb_start(uint32_t bb_addr);
Jack Veenstra01397862009-05-18 16:02:07 -070038extern void trace_add_insn(uint32_t insn, int is_thumb);
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080039extern void trace_bb_end();
40
41extern int get_insn_ticks_arm(uint32_t insn);
42extern int get_insn_ticks_thumb(uint32_t insn);
43
David 'Digit' Turner6eaacfb2011-05-10 10:57:17 +020044extern void trace_exception(uint32_t pc);
45extern void trace_bb_helper(uint64_t bb_num, struct TranslationBlock *tb);
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080046extern void trace_insn_helper();
47extern void sim_dcache_load(uint32_t addr);
48extern void sim_dcache_store(uint32_t addr, uint32_t val);
49extern void sim_dcache_swp(uint32_t addr);
50extern void trace_interpreted_method(uint32_t addr, int call_type);
51
52extern const char *trace_filename;
53extern int tracing;
54extern int trace_cache_miss;
55extern int trace_all_addr;
56
David 'Digit' Turner4e024bb2010-09-22 14:19:28 +020057// Trace process/thread operations
58extern void trace_switch(int pid);
59extern void trace_fork(int tgid, int pid);
60extern void trace_clone(int tgid, int pid);
61extern void trace_exit(int exitcode);
62extern void trace_name(char *name);
63
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -080064#endif /* TRACE_H */