diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-07-31 13:42:07 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2013-08-01 16:45:45 +0200 |
commit | f031df0e637e3194494e34e97b94fb02a3933526 (patch) | |
tree | c4f63796d79a9e045f9c524c2a4e8092c2ed7abb /cpukit/score/include/rtems/score/tod.h | |
parent | score: ISR lock API changes (diff) | |
download | rtems-f031df0e637e3194494e34e97b94fb02a3933526.tar.bz2 |
score: Rename tod.h to todimpl.h
Diffstat (limited to 'cpukit/score/include/rtems/score/tod.h')
-rw-r--r-- | cpukit/score/include/rtems/score/tod.h | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/cpukit/score/include/rtems/score/tod.h b/cpukit/score/include/rtems/score/tod.h deleted file mode 100644 index 0cbbe2f46a..0000000000 --- a/cpukit/score/include/rtems/score/tod.h +++ /dev/null @@ -1,328 +0,0 @@ -/** - * @file - * - * @ingroup ScoreTOD - * - * @brief Time of Day Handler API - */ - -/* - * COPYRIGHT (c) 1989-2009. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.com/license/LICENSE. - */ - -#ifndef _RTEMS_SCORE_TOD_H -#define _RTEMS_SCORE_TOD_H - -#include <rtems/score/basedefs.h> -#include <rtems/score/timestamp.h> - -#include <sys/time.h> -#include <time.h> - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup ScoreTOD Time of Day Handler - * - * @ingroup Score - * - * The following constants are related to the time of day and are - * independent of RTEMS. - */ -/**@{*/ - -/** - * This constant represents the number of seconds in a minute. - */ -#define TOD_SECONDS_PER_MINUTE (uint32_t)60 - -/** - * This constant represents the number of minutes per hour. - */ -#define TOD_MINUTES_PER_HOUR (uint32_t)60 - -/** - * This constant represents the number of months in a year. - */ -#define TOD_MONTHS_PER_YEAR (uint32_t)12 - -/** - * This constant represents the number of days in a non-leap year. - */ -#define TOD_DAYS_PER_YEAR (uint32_t)365 - -/** - * This constant represents the number of hours per day. - */ -#define TOD_HOURS_PER_DAY (uint32_t)24 - -/** - * This constant represents the number of seconds in a day which does - * not include a leap second. - */ -#define TOD_SECONDS_PER_DAY (uint32_t) (TOD_SECONDS_PER_MINUTE * \ - TOD_MINUTES_PER_HOUR * \ - TOD_HOURS_PER_DAY) - -/** - * This constant represents the number of seconds in a non-leap year. - */ -#define TOD_SECONDS_PER_NON_LEAP_YEAR (365 * TOD_SECONDS_PER_DAY) - -/** - * This constant represents the number of millisecond in a second. - */ -#define TOD_MILLISECONDS_PER_SECOND (uint32_t)1000 - -/** - * This constant represents the number of microseconds in a second. - */ -#define TOD_MICROSECONDS_PER_SECOND (uint32_t)1000000 - -/** - * This constant represents the number of nanoseconds in a second. - */ -#define TOD_NANOSECONDS_PER_SECOND (uint32_t)1000000000 - -/** - * This constant represents the number of nanoseconds in a mircosecond. - */ -#define TOD_NANOSECONDS_PER_MICROSECOND (uint32_t)1000 - -/**@}*/ - -/** - * Seconds from January 1, 1970 to January 1, 1988. Used to account for - * differences between POSIX API and RTEMS core. The timespec format time - * is kept in POSIX compliant form. - */ -#define TOD_SECONDS_1970_THROUGH_1988 \ - (((1987 - 1970 + 1) * TOD_SECONDS_PER_NON_LEAP_YEAR) + \ - (4 * TOD_SECONDS_PER_DAY)) - -/** - * @brief Earliest year to which an time of day can be initialized. - * - * The following constant define the earliest year to which an - * time of day can be initialized. This is considered the - * epoch. - */ -#define TOD_BASE_YEAR 1988 - -/** - * @defgroup ScoreTOD Time Of Day (TOD) Handler - * - * @ingroup Score - * - * This handler encapsulates functionality used to manage time of day. - */ -/**@{*/ - -/** - * @brief TOD control. - */ -typedef struct { - /** - * @brief Current time of day value. - */ - Timestamp_Control now; - - /** - * @brief System uptime. - */ - Timestamp_Control uptime; - - /** - * @brief Time of day seconds trigger. - * - * This value specifies the nanoseconds since the last time of day second. - * It is updated and evaluated in _TOD_Tickle_ticks(). It is set in - * _TOD_Set_with_timestamp(). - */ - uint32_t seconds_trigger; - - /** - * @brief Indicates if the time of day is set. - * - * This is true if the application has set the current - * time of day, and false otherwise. - */ - bool is_set; -} TOD_Control; - -SCORE_EXTERN TOD_Control _TOD; - -/** - * @brief Number of seconds Since RTEMS epoch. - * - * The following contains the number of seconds from 00:00:00 - * January 1, TOD_BASE_YEAR until the current time of day. - */ -#define _TOD_Seconds_since_epoch() \ - _Timestamp_Get_seconds(&_TOD.now) - -/** - * @brief Initializes the time of day handler. - * - * Performs the initialization necessary for the Time Of Day handler. - */ -void _TOD_Handler_initialization(void); - -/** - * @brief Sets the time of day from timestamp. - * - * The @a tod_as_timestamp timestamp represents the time since UNIX epoch. - * The watchdog seconds chain will be adjusted. - * - * @param[in] tod_as_timestamp is the constant of the time of day as a timestamp - */ -void _TOD_Set_with_timestamp( - const Timestamp_Control *tod_as_timestamp -); - -static inline void _TOD_Set( - const struct timespec *tod_as_timespec -) -{ - Timestamp_Control tod_as_timestamp; - - _Timestamp_Set( - &tod_as_timestamp, - tod_as_timespec->tv_sec, - tod_as_timespec->tv_nsec - ); - _TOD_Set_with_timestamp( &tod_as_timestamp ); -} - -/** - * @brief Returns a snapshot of a clock. - * - * This function invokes the nanoseconds extension. - * - * @param[out] snapshot points to an area that will contain the current - * TOD plus the BSP nanoseconds since last tick adjustment - * @param[in] clock contains the current TOD - * - * @retval @a snapshot - */ -Timestamp_Control *_TOD_Get_with_nanoseconds( - Timestamp_Control *snapshot, - const Timestamp_Control *clock -); - -static inline void _TOD_Get( - struct timespec *tod_as_timespec -) -{ - Timestamp_Control tod_as_timestamp; - Timestamp_Control *tod_as_timestamp_ptr; - - tod_as_timestamp_ptr = - _TOD_Get_with_nanoseconds( &tod_as_timestamp, &_TOD.now ); - _Timestamp_To_timespec( tod_as_timestamp_ptr, tod_as_timespec ); -} - -/** - * @brief Gets the system uptime with potential accuracy to the nanosecond. - * - * This routine returns the system uptime with potential accuracy - * to the nanosecond. - * - * @param[in] time is a pointer to the uptime to be returned - */ -static inline void _TOD_Get_uptime( - Timestamp_Control *time -) -{ - _TOD_Get_with_nanoseconds( time, &_TOD.uptime ); -} - -/** - * @brief Gets the system uptime with potential accuracy to the nanosecond. - * - * This routine returns the system uptime with potential accuracy - * to the nanosecond. - * - * @param[in] time is a pointer to the uptime to be returned - */ -void _TOD_Get_uptime_as_timespec( - struct timespec *time -); - -/** - * @brief Increments time of day at each clock tick. - * - * This routine increments the ticks field of the current time of - * day at each clock tick. - */ -void _TOD_Tickle_ticks( void ); - -/** - * @brief Gets number of ticks in a second. - * - * This method returns the number of ticks in a second. - * - * @note If the clock tick value does not multiply evenly into a second - * then this number of ticks will be slightly shorter than a second. - */ -uint32_t TOD_TICKS_PER_SECOND_method(void); - -/** - * @brief Gets number of ticks in a second. - * - * This method exists to hide the fact that TOD_TICKS_PER_SECOND can not - * be implemented as a macro in a .h file due to visibility issues. - * The Configuration Table is not available to SuperCore .h files but - * is available to their .c files. - */ -#define TOD_TICKS_PER_SECOND TOD_TICKS_PER_SECOND_method() - -/** - * This routine deactivates updating of the current time of day. - */ - -RTEMS_INLINE_ROUTINE void _TOD_Deactivate( void ) -{ - /* XXX do we need something now that we are using timespec for TOD */ -} - -/** - * This routine activates updating of the current time of day. - */ - -RTEMS_INLINE_ROUTINE void _TOD_Activate( void ) -{ - /* XXX do we need something now that we are using timespec for TOD */ -} - -/** - * This routine returns a timeval based upon the internal timespec format TOD. - */ - -RTEMS_INLINE_ROUTINE void _TOD_Get_timeval( - struct timeval *time -) -{ - Timestamp_Control snapshot_as_timestamp; - Timestamp_Control *snapshot_as_timestamp_ptr; - - snapshot_as_timestamp_ptr = - _TOD_Get_with_nanoseconds( &snapshot_as_timestamp, &_TOD.now ); - _Timestamp_To_timeval( snapshot_as_timestamp_ptr, time ); -} - -/**@}*/ - -#ifdef __cplusplus -} -#endif - -#endif -/* end of include file */ |