[PATCH 2/2] rtems: Add more clock tick functions

Sebastian Huber sebastian.huber at embedded-brains.de
Sun Aug 24 08:57:43 UTC 2014


On 08/24/2014 05:02 AM, Chris Johns wrote:
> On 23/08/2014 1:12 am, Sebastian Huber wrote:
>> Add rtems_clock_ticks_later(), rtems_clock_ticks_later_us() and
>> rtems_clock_ticks_later_us().
>>
>> FIXME: Patch is incomplete.  Documentation and tests are missing.  Just
>> for API review.
>> ---
>>   cpukit/rtems/include/rtems/rtems/clock.h | 66 
>> ++++++++++++++++++++++++++++++++
>>   1 file changed, 66 insertions(+)
>>
>> diff --git a/cpukit/rtems/include/rtems/rtems/clock.h 
>> b/cpukit/rtems/include/rtems/rtems/clock.h
>> index ff71665..cee930e 100644
>> --- a/cpukit/rtems/include/rtems/rtems/clock.h
>> +++ b/cpukit/rtems/include/rtems/rtems/clock.h
>> @@ -34,6 +34,7 @@
>>   #include <rtems/score/tod.h>
>>   #include <rtems/rtems/status.h>
>>   #include <rtems/rtems/types.h>
>> +#include <rtems/config.h>
>>
>>   #include <sys/time.h> /* struct timeval */
>>
>> @@ -160,6 +161,71 @@ RTEMS_INLINE_ROUTINE rtems_interval 
>> rtems_clock_get_ticks_since_boot(void)
>>   }
>>
>>   /**
>> + * @brief Returns the ticks counter value delta ticks in the future.
>> + *
>> + * @param[in] delta The ticks delta value.
>> + *
>> + * @return The tick counter value delta ticks in the future.
>> + */
>> +RTEMS_INLINE_ROUTINE rtems_interval rtems_clock_ticks_later(
>> +  rtems_interval delta
>> +)
>> +{
>> +  return _Watchdog_Ticks_since_boot + delta;
>> +}
>> +
>> +/**
>> + * @brief Returns the ticks counter value at least delta 
>> microseconds in the
>> + * future.
>> + *
>> + * @param[in] delta The delta value in microseconds.
>> + *
>> + * @return The tick counter value at least delta microseconds in the 
>> future.
>> + */
>> +RTEMS_INLINE_ROUTINE rtems_interval rtems_clock_ticks_later_us(
>
> This should be rtems_clock_ticks_later_usec. When I first saw this I 
> though it meant 'us' as in 'you and me'.

Ok.

>
> The calls names make sense from a programming point of view but from a 
> user point of view they are sort of forwards and backwards. For 
> example rtems_clock_ticks_later_us is the "the clock tick so many 
> micro-seconds later where later implies now" or 
> 'rtems_clock_tick_usecs_later' and following this I suppose 
> 'rtems_clock_ticks_later' becomes 'rtems_clock_tick_ticks_later' ?

What about rtems_clock_tick_later() and rtems_clock_tick_before()? In 
the context it should be clear what they do, e.g.

+ * @code
+ * status busy( void )
+ * {
+ *   rtems_interval timeout = rtems_clock_tick_later_usec( 10000 );
+ *
+ *   do {
+ *     if ( ok() ) {
+ *       return success;
+ *     }
+ *   } while ( rtems_clock_tick_before( timeout ) );
+ *
+ *   return timeout;
+ * }
+ * @endcode

-- 
Sebastian Huber, embedded brains GmbH

Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone   : +49 89 189 47 41-16
Fax     : +49 89 189 47 41-09
E-Mail  : sebastian.huber at embedded-brains.de
PGP     : Public key available on request.

Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.



More information about the devel mailing list