summaryrefslogtreecommitdiff
path: root/src/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/include')
-rw-r--r--src/include/cpu/x86/tsc.h5
-rw-r--r--src/include/timestamp.h12
2 files changed, 13 insertions, 4 deletions
diff --git a/src/include/cpu/x86/tsc.h b/src/include/cpu/x86/tsc.h
index 7323599cce..71d253ba7f 100644
--- a/src/include/cpu/x86/tsc.h
+++ b/src/include/cpu/x86/tsc.h
@@ -53,6 +53,11 @@ static inline unsigned long long rdtscll(void)
);
return val;
}
+
+static inline uint64_t tsc_to_uint64(tsc_t tstamp)
+{
+ return (((uint64_t)tstamp.hi) << 32) + tstamp.lo;
+}
#endif
#if CONFIG_TSC_CONSTANT_RATE
diff --git a/src/include/timestamp.h b/src/include/timestamp.h
index 66c1d9ade5..ba73135258 100644
--- a/src/include/timestamp.h
+++ b/src/include/timestamp.h
@@ -20,6 +20,8 @@
#ifndef __TIMESTAMP_H__
#define __TIMESTAMP_H__
+#include <stdint.h>
+
struct timestamp_entry {
uint32_t entry_id;
uint64_t entry_stamp;
@@ -59,12 +61,10 @@ enum timestamp_id {
};
#if CONFIG_COLLECT_TIMESTAMPS && (CONFIG_EARLY_CBMEM_INIT || !defined(__PRE_RAM__))
-#include <cpu/x86/tsc.h>
-void timestamp_init(tsc_t base);
-void timestamp_add(enum timestamp_id id, tsc_t ts_time);
+void timestamp_init(uint64_t base);
+void timestamp_add(enum timestamp_id id, uint64_t ts_time);
void timestamp_add_now(enum timestamp_id id);
void timestamp_reinit(void);
-tsc_t get_initial_timestamp(void);
#else
#define timestamp_init(base)
#define timestamp_add(id, time)
@@ -72,4 +72,8 @@ tsc_t get_initial_timestamp(void);
#define timestamp_reinit()
#endif
+/* Implemented by the architecture code */
+uint64_t timestamp_get(void);
+uint64_t get_initial_timestamp(void);
+
#endif