diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2011-01-19 16:22:15 -0800 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2011-01-19 16:22:15 -0800 |
commit | 23bab6783b8fb4401543941983c36c41cd24b4ef (patch) | |
tree | 829b258359d9a2548f8a4a32c882ac3cb821520c /src/base | |
parent | a368fba7d4fa01b58d5c2d9b3cafd56e1102287c (diff) | |
download | gem5-23bab6783b8fb4401543941983c36c41cd24b4ef.tar.xz |
Time: Add setTick and getTick functions to the Time class.
Diffstat (limited to 'src/base')
-rw-r--r-- | src/base/time.cc | 14 | ||||
-rw-r--r-- | src/base/time.hh | 14 |
2 files changed, 28 insertions, 0 deletions
diff --git a/src/base/time.cc b/src/base/time.cc index b9bbb0830..0fab938a4 100644 --- a/src/base/time.cc +++ b/src/base/time.cc @@ -33,6 +33,7 @@ #include "base/time.hh" #include "config/use_posix_clock.hh" +#include "sim/core.hh" using namespace std; @@ -48,6 +49,19 @@ Time::_set(bool monotonic) #endif } +void +Time::setTick(Tick ticks) +{ + uint64_t nsecs = ticks / SimClock::Int::ns; + set(nsecs / NSEC_PER_SEC, nsecs % NSEC_PER_SEC); +} + +Tick +Time::getTick() const +{ + return (nsec() + sec() * NSEC_PER_SEC) * SimClock::Int::ns; +} + string Time::date(const string &format) const { diff --git a/src/base/time.hh b/src/base/time.hh index 2c54f2675..4fc3dd3ef 100644 --- a/src/base/time.hh +++ b/src/base/time.hh @@ -42,6 +42,8 @@ #include <iosfwd> #include <string> +#include "base/types.hh" + class Time { protected: @@ -99,6 +101,18 @@ class Time */ void set(time_t _sec, long _nsec) { sec(_sec); nsec(_nsec); } + /** + * Set the current time from a value measured in Ticks + * @param ticks Number of ticks to convert into a time. + */ + void setTick(Tick ticks); + + /** + * Get the current time from a value measured in Ticks + * @return Time value measured in Ticks. + */ + Tick getTick() const; + const Time & operator=(const Time &other) { |