1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- /*
- * time.c
- *
- * Copyright 2013-2022 Michael Zillgith
- *
- * This file is part of Platform Abstraction Layer (libpal)
- * for libiec61850, libmms, and lib60870.
- */
- #ifndef HAL_C_
- #define HAL_C_
- #include "hal_base.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * \file hal_time.h
- * \brief Abstraction layer for system time access
- */
- /*! \addtogroup hal
- *
- * @{
- */
- /**
- * @defgroup HAL_TIME Time related functions
- *
- * @{
- */
- typedef uint64_t nsSinceEpoch;
- typedef uint64_t msSinceEpoch;
- /**
- * Get the system time in milliseconds.
- *
- * The time value returned as 64-bit unsigned integer should represent the milliseconds
- * since the UNIX epoch (1970/01/01 00:00 UTC).
- *
- * \return the system time with millisecond resolution.
- */
- PAL_API msSinceEpoch
- Hal_getTimeInMs(void);
- /**
- * Get the system time in nanoseconds.
- *
- * The time value returned as 64-bit unsigned integer should represent the nanoseconds
- * since the UNIX epoch (1970/01/01 00:00 UTC).
- *
- * \return the system time with nanosecond resolution.
- */
- PAL_API nsSinceEpoch
- Hal_getTimeInNs(void);
- /**
- * Set the system time from ns time
- *
- * The time value returned as 64-bit unsigned integer should represent the nanoseconds
- * since the UNIX epoch (1970/01/01 00:00 UTC).
- *
- * \return true on success, otherwise false
- */
- PAL_API bool
- Hal_setTimeInNs(nsSinceEpoch nsTime);
- /*! @} */
- /*! @} */
- #ifdef __cplusplus
- }
- #endif
- #endif /* HAL_C_ */
|