18 #ifndef _RTEMS_SCORE_TIMESTAMP_H 19 #define _RTEMS_SCORE_TIMESTAMP_H 75 _ts.tv_sec = _seconds;
76 _ts.tv_nsec = _nanoseconds;
78 timespec2bintime( &_ts, _time );
115 if ( _lhs->sec < _rhs->sec )
118 if ( _lhs->sec > _rhs->sec )
121 return _lhs->frac < _rhs->frac;
141 if ( _lhs->sec > _rhs->sec )
144 if ( _lhs->sec < _rhs->sec )
147 return _lhs->frac > _rhs->frac;
167 return _lhs->sec == _rhs->sec && _lhs->frac == _rhs->frac;
186 time_t seconds = _time->sec;
188 bintime_add( _time, _add );
190 return _time->sec - seconds;
212 _result->sec = _end->sec;
213 _result->frac = _end->frac;
215 bintime_sub( _result, _start );
234 uint32_t *_ival_percentage,
235 uint32_t *_fval_percentage
238 struct timespec _ts_left;
239 struct timespec _ts_right;
241 bintime2timespec( _lhs, &_ts_left );
242 bintime2timespec( _rhs, &_ts_right );
283 bintime2timespec( _time, &_ts );
303 bintime2timespec( _time, &_ts );
318 struct timespec *_timespec
321 bintime2timespec( _timestamp, _timespec );
332 struct timeval *_timeval
335 bintime2timeval( _timestamp, _timeval );
This include file contains helpers for manipulating timespecs.
RTEMS_INLINE_ROUTINE void _Timestamp_To_timeval(const Timestamp_Control *_timestamp, struct timeval *_timeval)
Convert timestamp to struct timeval.
Definition: timestamp.h:330
#define RTEMS_INLINE_ROUTINE
The following (in conjunction with compiler arguments) are used to choose between the use of static i...
Definition: basedefs.h:135
RTEMS_INLINE_ROUTINE bool _Timestamp_Equal_to(const Timestamp_Control *_lhs, const Timestamp_Control *_rhs)
Equal to than operator for timestamps.
Definition: timestamp.h:162
RTEMS_INLINE_ROUTINE uint32_t _Timestamp_Get_nanoseconds(const Timestamp_Control *_time)
Get nanoseconds portion of timestamp.
Definition: timestamp.h:277
RTEMS_INLINE_ROUTINE bool _Timestamp_Greater_than(const Timestamp_Control *_lhs, const Timestamp_Control *_rhs)
Greater than operator for timestamps.
Definition: timestamp.h:136
void _Timespec_Divide(const struct timespec *lhs, const struct timespec *rhs, uint32_t *ival_percentage, uint32_t *fval_percentage)
Divide a timespec by anonther timespec.
Definition: timespecdivide.c:24
RTEMS_INLINE_ROUTINE time_t _Timestamp_Add_to(Timestamp_Control *_time, const Timestamp_Control *_add)
Adds two timestamps.
Definition: timestamp.h:181
struct bintime Timestamp_Control
Define the Timestamp control type.
Definition: timestamp.h:55
RTEMS_INLINE_ROUTINE void _Timestamp_Subtract(const Timestamp_Control *_start, const Timestamp_Control *_end, Timestamp_Control *_result)
Subtracts two timestamps.
Definition: timestamp.h:206
RTEMS_INLINE_ROUTINE time_t _Timestamp_Get_seconds(const Timestamp_Control *_time)
Get seconds portion of timestamp.
Definition: timestamp.h:261
RTEMS_INLINE_ROUTINE uint64_t _Timestamp_Get_as_nanoseconds(const Timestamp_Control *_time)
Get the timestamp as nanoseconds.
Definition: timestamp.h:297
RTEMS_INLINE_ROUTINE void _Timestamp_Set(Timestamp_Control *_time, time_t _seconds, long _nanoseconds)
Set timestamp to specified seconds and nanoseconds.
Definition: timestamp.h:67
RTEMS_INLINE_ROUTINE void _Timestamp_Divide(const Timestamp_Control *_lhs, const Timestamp_Control *_rhs, uint32_t *_ival_percentage, uint32_t *_fval_percentage)
Divides a timestamp by another timestamp.
Definition: timestamp.h:231
RTEMS_INLINE_ROUTINE void _Timestamp_Set_to_zero(Timestamp_Control *_time)
Sets the timestamp to zero.
Definition: timestamp.h:90
RTEMS_INLINE_ROUTINE bool _Timestamp_Less_than(const Timestamp_Control *_lhs, const Timestamp_Control *_rhs)
Less than operator for timestamps.
Definition: timestamp.h:110
uint64_t _Timespec_Get_as_nanoseconds(const struct timespec *time)
Get the timestamp as nanoseconds.
Definition: timespecgetasnanoseconds.c:23
RTEMS_INLINE_ROUTINE void _Timestamp_To_timespec(const Timestamp_Control *_timestamp, struct timespec *_timespec)
Convert timestamp to struct timespec.
Definition: timestamp.h:316