XenevaOS
Loading...
Searching...
No Matches
profile.h
Go to the documentation of this file.
1
32#ifndef __PROFILE_H__
33#define __PROFILE_H__
34
40#include <stdint.h>
41#include <Drivers/uart.h>
42
45
46
47#define PROFILE_START(name) \
48 uint64_t __start_profile = AuProfileReadCycles();
49
50#define PROFILE_END(name)\
51 uint64_t __end_profile = AuProfileReadCycles(); \
52 uint64_t diff = __end_profile - __start_profile; \
53 uint64_t freq = get_cntfrq_el0(); \
54 double sec = (double)diff / freq; \
55 double ms = (double)diff * 1000.0 / freq; \
56 UARTDebugOut("[AURORA-PROFILE]: %s : time: %f sec, time: %f ms, cpu cycles : %d\r\n", name, sec, ms, (__end_profile - __start_profile));
57
58
59
60#endif
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
uint64_t AuProfileReadFreq()
Definition profile.c:40
uint64_t AuProfileReadCycles()
Definition profile.c:35