rtems: Add rtems_clock_get_uptime_timeval()

This commit is contained in:
Sebastian Huber
2012-11-16 14:02:12 +01:00
parent 62181b21c2
commit bfddb0478c
6 changed files with 74 additions and 0 deletions

View File

@@ -154,6 +154,7 @@ librtems_a_SOURCES += src/clockgettickssinceboot.c
librtems_a_SOURCES += src/clockgettod.c
librtems_a_SOURCES += src/clockgettodtimeval.c
librtems_a_SOURCES += src/clockgetuptime.c
librtems_a_SOURCES += src/clockgetuptimetimeval.c
librtems_a_SOURCES += src/clockset.c
librtems_a_SOURCES += src/clocksetnsecshandler.c
librtems_a_SOURCES += src/clocktick.c

View File

@@ -227,6 +227,13 @@ rtems_status_code rtems_clock_get_uptime(
struct timespec *uptime
);
/**
* @brief Gets the system uptime in the struct timeval format.
*
* @param[out] Returns the system uptime. Pointer must not be NULL.
*/
void rtems_clock_get_uptime_timeval( struct timeval *uptime );
/**
* @brief _TOD_Validate
*

View File

@@ -0,0 +1,27 @@
/*
* Copyright (c) 2012 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Obere Lagerstr. 30
* 82178 Puchheim
* Germany
* <rtems@embedded-brains.de>
*
* 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.
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif
#include <rtems/rtems/clock.h>
void rtems_clock_get_uptime_timeval( struct timeval *uptime )
{
Timestamp_Control snapshot_as_timestamp;
_TOD_Get_uptime( &snapshot_as_timestamp );
_Timestamp_To_timeval( &snapshot_as_timestamp, uptime );
}

View File

@@ -22,6 +22,7 @@ the clock manager are:
@item @code{@value{DIRPREFIX}clock_get_ticks_per_second} - Get ticks per second
@item @code{@value{DIRPREFIX}clock_get_ticks_since_boot} - Get ticks since boot
@item @code{@value{DIRPREFIX}clock_get_uptime} - Get time since boot
@item @code{@value{DIRPREFIX}clock_get_uptime_timeval} - Get time since boot in timeval format
@item @code{@value{DIRPREFIX}clock_set_nanoseconds_extension} - Install the nanoseconds since last tick handler
@item @code{@value{DIRPREFIX}clock_tick} - Announce a clock tick
@end itemize
@@ -665,6 +666,40 @@ call.
This directive may be called from an ISR.
@c
@c
@c
@page
@subsection CLOCK_GET_UPTIME_TIMEVAL - Get the time since boot in timeval format
@cindex clock get uptime
@cindex uptime
@subheading CALLING SEQUENCE:
@ifset is-C
@findex rtems_clock_get_uptime_timeval
@example
void rtems_clock_get_uptime_timeval(
struct timeval *uptime
);
@end example
@end ifset
@subheading DIRECTIVE STATUS CODES:
NONE
@subheading DESCRIPTION:
This directive returns the seconds and microseconds since the
system was booted. If the BSP supports nanosecond clock
accuracy, the time reported will probably be different on every
call.
@subheading NOTES:
This directive may be called from an ISR.
@c
@c

View File

@@ -83,6 +83,9 @@ void Screen2()
"rtems_clock_get_uptime NULL param"
);
puts( "TA1 - rtems_clock_get_uptime_timeval" );
rtems_clock_get_uptime_timeval( &tv );
puts( "TA1 - rtems_clock_get_tod_timeval - RTEMS_INVALID_ADDRESS" );
status = rtems_clock_get_tod_timeval( NULL );
fatal_directive_status(

View File

@@ -31,6 +31,7 @@ TA1 - rtems_clock_get_tod - RTEMS_NOT_DEFINED
TA1 - rtems_clock_get_seconds_since_epoch - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_seconds_since_epoch - RTEMS_NOT_DEFINED
TA1 - rtems_clock_get_uptime - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_uptime_timeval
TA1 - rtems_clock_get_tod_timeval - RTEMS_INVALID_ADDRESS
TA1 - rtems_clock_get_tod_timeval - RTEMS_NOT_DEFINED
TA1 - rtems_clock_set_nanoseconds_extension - RTEMS_INVALID_ADDRESS