RTEMS  5.0.0
Typedefs | Functions
Score Timestamp

Typedefs

typedef int64_t Timestamp_Control
 

Functions

RTEMS_INLINE_ROUTINE void _Timestamp_Set (Timestamp_Control *_time, time_t _seconds, long _nanoseconds)
 Set timestamp to specified seconds and nanoseconds. More...
 
RTEMS_INLINE_ROUTINE void _Timestamp_Set_to_zero (Timestamp_Control *_time)
 Sets the timestamp to zero. More...
 
RTEMS_INLINE_ROUTINE bool _Timestamp_Less_than (const Timestamp_Control *_lhs, const Timestamp_Control *_rhs)
 Less than operator for timestamps. More...
 
RTEMS_INLINE_ROUTINE bool _Timestamp_Greater_than (const Timestamp_Control *_lhs, const Timestamp_Control *_rhs)
 Greater than operator for timestamps. More...
 
RTEMS_INLINE_ROUTINE bool _Timestamp_Equal_to (const Timestamp_Control *_lhs, const Timestamp_Control *_rhs)
 Equal to than operator for timestamps. More...
 
RTEMS_INLINE_ROUTINE void _Timestamp_Add_to (Timestamp_Control *_time, const Timestamp_Control *_add)
 Adds two timestamps. More...
 
RTEMS_INLINE_ROUTINE void _Timestamp_Subtract (const Timestamp_Control *_start, const Timestamp_Control *_end, Timestamp_Control *_result)
 Subtracts two timestamps. More...
 
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. More...
 
RTEMS_INLINE_ROUTINE time_t _Timestamp_Get_seconds (const Timestamp_Control *_time)
 Get seconds portion of timestamp. More...
 
RTEMS_INLINE_ROUTINE uint32_t _Timestamp_Get_nanoseconds (const Timestamp_Control *_time)
 Get nanoseconds portion of timestamp. More...
 
RTEMS_INLINE_ROUTINE uint64_t _Timestamp_Get_as_nanoseconds (const Timestamp_Control *_time)
 Get the timestamp as nanoseconds. More...
 
RTEMS_INLINE_ROUTINE void _Timestamp_To_timespec (const Timestamp_Control *_timestamp, struct timespec *_timespec)
 Convert timestamp to struct timespec. More...
 
RTEMS_INLINE_ROUTINE void _Timestamp_To_timeval (const Timestamp_Control *_timestamp, struct timeval *_timeval)
 Convert timestamp to struct timeval. More...
 

Detailed Description

This handler encapsulates functionality related to manipulating SuperCore Timestamps. SuperCore Timestamps may be used to represent time of day, uptime, or intervals.

The key attribute of the SuperCore Timestamp handler is that it is a completely opaque handler. There can be multiple implementations of the required functionality and with a recompile, RTEMS can use any implementation. It is intended to be a simple wrapper.

This handler can be implemented as either struct timespec or unsigned64 bit numbers. The use of a wrapper class allows the the implementation of timestamps to change on a per architecture basis. This is an important option as the performance of this handler is critical.

Typedef Documentation

◆ Timestamp_Control

typedef int64_t Timestamp_Control

Define the Timestamp control type.

Function Documentation

◆ _Timestamp_Add_to()

RTEMS_INLINE_ROUTINE void _Timestamp_Add_to ( Timestamp_Control _time,
const Timestamp_Control _add 
)

Adds two timestamps.

This routine adds two timestamps. The second argument is added to the first.

Parameters
[in]_timepoints to the base time to be added to
[in]_addpoints to the timestamp to add to the first argument

◆ _Timestamp_Divide()

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.

This routine divides a timestamp by another timestamp. The intended use is for calculating percentages to three decimal points.

Parameters
[in]_lhspoints to the left hand number
[in]_rhspoints to the right hand number
[in]_ival_percentagepoints to the integer portion of the average
[in]_fval_percentagepoints to the thousandths of percentage
Return values
Thismethod fills in result.

◆ _Timestamp_Equal_to()

RTEMS_INLINE_ROUTINE bool _Timestamp_Equal_to ( const Timestamp_Control _lhs,
const Timestamp_Control _rhs 
)

Equal to than operator for timestamps.

This method is the is equal to than operator for timestamps.

Parameters
[in]_lhspoints to the left hand side timestamp
[in]_rhspoints to the right hand side timestamp
Return values
Thismethod returns true if _lhs is equal to _rhs and false otherwise.

◆ _Timestamp_Get_as_nanoseconds()

RTEMS_INLINE_ROUTINE uint64_t _Timestamp_Get_as_nanoseconds ( const Timestamp_Control _time)

Get the timestamp as nanoseconds.

This method returns the timestamp as nanoseconds.

Parameters
[in]_timepoints to the timestamp
Return values
Thetime in nanoseconds.

◆ _Timestamp_Get_nanoseconds()

RTEMS_INLINE_ROUTINE uint32_t _Timestamp_Get_nanoseconds ( const Timestamp_Control _time)

Get nanoseconds portion of timestamp.

This method returns the nanoseconds portion of the specified timestamp

Parameters
[in]_timepoints to the timestamp
Return values
Thenanoseconds portion of _time.

◆ _Timestamp_Get_seconds()

RTEMS_INLINE_ROUTINE time_t _Timestamp_Get_seconds ( const Timestamp_Control _time)

Get seconds portion of timestamp.

This method returns the seconds portion of the specified timestamp

Parameters
[in]_timepoints to the timestamp
Return values
Theseconds portion of _time.

◆ _Timestamp_Greater_than()

RTEMS_INLINE_ROUTINE bool _Timestamp_Greater_than ( const Timestamp_Control _lhs,
const Timestamp_Control _rhs 
)

Greater than operator for timestamps.

This method is the greater than operator for timestamps.

Parameters
[in]_lhspoints to the left hand side timestamp
[in]_rhspoints to the right hand side timestamp
Return values
Thismethod returns true if _lhs is greater than the _rhs and false otherwise.

◆ _Timestamp_Less_than()

RTEMS_INLINE_ROUTINE bool _Timestamp_Less_than ( const Timestamp_Control _lhs,
const Timestamp_Control _rhs 
)

Less than operator for timestamps.

This method is the less than operator for timestamps.

Parameters
[in]_lhspoints to the left hand side timestamp
[in]_rhspoints to the right hand side timestamp
Return values
Thismethod returns true if _lhs is less than the _rhs and false otherwise.

◆ _Timestamp_Set()

RTEMS_INLINE_ROUTINE void _Timestamp_Set ( Timestamp_Control _time,
time_t  _seconds,
long  _nanoseconds 
)

Set timestamp to specified seconds and nanoseconds.

This method sets the timestamp to the specified _seconds and _nanoseconds value.

Parameters
[in]_timepoints to the timestamp instance to validate.
[in]_secondsis the seconds portion of the timestamp
[in]_nanosecondsis the nanoseconds portion of the timestamp

◆ _Timestamp_Set_to_zero()

RTEMS_INLINE_ROUTINE void _Timestamp_Set_to_zero ( Timestamp_Control _time)

Sets the timestamp to zero.

This method sets the timestamp to zero. value.

Parameters
[in]_timepoints to the timestamp instance to zero.

◆ _Timestamp_Subtract()

RTEMS_INLINE_ROUTINE void _Timestamp_Subtract ( const Timestamp_Control _start,
const Timestamp_Control _end,
Timestamp_Control _result 
)

Subtracts two timestamps.

This routine subtracts two timestamps. result is set to end - start.

Parameters
[in]_startpoints to the starting time
[in]_endpoints to the ending time
[in]_resultpoints to the difference between starting and ending time.
Return values
Thismethod fills in _result.

◆ _Timestamp_To_timespec()

RTEMS_INLINE_ROUTINE void _Timestamp_To_timespec ( const Timestamp_Control _timestamp,
struct timespec *  _timespec 
)

Convert timestamp to struct timespec.

This method returns the seconds portion of the specified _timestamp.

Parameters
[in]_timestamppoints to the timestamp
[in]_timespecpoints to the timespec

◆ _Timestamp_To_timeval()

RTEMS_INLINE_ROUTINE void _Timestamp_To_timeval ( const Timestamp_Control _timestamp,
struct timeval *  _timeval 
)

Convert timestamp to struct timeval.

Parameters
[in]_timestamppoints to the timestamp
[in]_timevalpoints to the timeval