| #include "bmc_epoch.hpp" |
| |
| #include <phosphor-logging/log.hpp> |
| |
| namespace phosphor |
| { |
| namespace time |
| { |
| namespace server = sdbusplus::xyz::openbmc_project::Time::server; |
| using namespace phosphor::logging; |
| |
| BmcEpoch::BmcEpoch(sdbusplus::bus::bus& bus, |
| const char* objPath) |
| : EpochBase(bus, objPath) |
| { |
| // Empty |
| } |
| |
| uint64_t BmcEpoch::elapsed() const |
| { |
| // It does not needs to check owner when getting time |
| return getTime().count(); |
| } |
| |
| uint64_t BmcEpoch::elapsed(uint64_t value) |
| { |
| // TODO: set time based on current time mode and owner |
| auto time = std::chrono::microseconds(value); |
| switch (timeOwner) |
| { |
| case Owner::BMC: |
| { |
| setTime(time); |
| break; |
| } |
| // TODO: below cases are to be implemented |
| case Owner::HOST: |
| break; |
| case Owner::SPLIT: |
| break; |
| case Owner::BOTH: |
| break; |
| } |
| server::EpochTime::elapsed(value); |
| return value; |
| } |
| |
| } |
| } |
| |