Added ability to declare local per CPU variables
[akaros.git] / kern / include / time.h
index aa03136..b3b9c13 100644 (file)
@@ -1,30 +1,11 @@
-#ifndef ROS_KERN_TIME_H
-#define ROS_KERN_TIME_H
+#pragma once
 
 #include <ros/common.h>
+#include <ros/time.h>
 #include <arch/time.h>
 
-/* (newlib) Time Value Specification Structures, P1003.1b-1993, p. 261 */
-typedef long time_t; /* TODO: this is fucked.  Thanks POSIX. */
-
-struct timespec {
-  time_t  tv_sec;   /* Seconds */
-  long    tv_nsec;  /* Nanoseconds */
-};
-
-struct itimerspec {
-  struct timespec  it_interval;  /* Timer period */
-  struct timespec  it_value;     /* Timer expiration */
-};
-
-struct timeval {
-       time_t tv_sec;  /* seconds */
-       time_t tv_usec; /* microseconds */
-};
-
 void train_timing();
 void udelay(uint64_t usec);    /* done in arch-specific files */
-void udelay_sched(uint64_t usec);
 uint64_t tsc2sec(uint64_t tsc_time);
 uint64_t tsc2msec(uint64_t tsc_time);
 uint64_t tsc2usec(uint64_t tsc_time);
@@ -33,7 +14,11 @@ uint64_t sec2tsc(uint64_t sec);
 uint64_t msec2tsc(uint64_t msec);
 uint64_t usec2tsc(uint64_t usec);
 uint64_t nsec2tsc(uint64_t nsec);
-uint64_t epoch_seconds(void);
+uint64_t epoch_tsc(void);
+uint64_t epoch_sec(void);
+uint64_t epoch_msec(void);
+uint64_t epoch_usec(void);
+uint64_t epoch_nsec(void);
 void tsc2timespec(uint64_t tsc_time, struct timespec *ts);
 
 /* Just takes a time measurement.  Meant to be paired with stop_timing.  Use
@@ -100,4 +85,3 @@ typedef struct Timer{
 })
 
 #endif
-#endif /* ROS_KERN_TIME_H */