#include <config.h>
#include <benchmark/benchmark_track.h>
#include <model/statedata.h>
#ifdef CONFIG_BENCHMARK_TRACK_KERNEL_ENTRIES
timestamp_t ksEnter;
seL4_Word ksLogIndex;
seL4_Word ksLogIndexFinalized;
void benchmark_track_exit(void)
{
timestamp_t duration = 0;
timestamp_t ksExit = timestamp();
benchmark_track_kernel_entry_t *ksLog = (benchmark_track_kernel_entry_t *) KS_LOG_PPTR;
if (likely(ksUserLogBuffer != 0)) {
if (likely(ksLogIndex < MAX_LOG_SIZE)) {
duration = ksExit - ksEnter;
ksLog[ksLogIndex].entry = ksKernelEntry;
ksLog[ksLogIndex].start_time = ksEnter;
ksLog[ksLogIndex].duration = duration;
ksLogIndex++;
}
}
}
#endif