diff options
Diffstat (limited to 'cpukit/sapi/include/rtems/counter.h')
-rw-r--r-- | cpukit/sapi/include/rtems/counter.h | 160 |
1 files changed, 0 insertions, 160 deletions
diff --git a/cpukit/sapi/include/rtems/counter.h b/cpukit/sapi/include/rtems/counter.h deleted file mode 100644 index 3b428402a8..0000000000 --- a/cpukit/sapi/include/rtems/counter.h +++ /dev/null @@ -1,160 +0,0 @@ -/** - * @file - * - * @ingroup ClassicCounter - * - * @brief Free-Running Counter and Busy Wait Delay API - */ - -/* - * Copyright (c) 2014 embedded brains GmbH. All rights reserved. - * - * embedded brains GmbH - * Dornierstr. 4 - * 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.org/license/LICENSE. - */ - -#ifndef _RTEMS_SAPI_COUNTER_H -#define _RTEMS_SAPI_COUNTER_H - -#include <rtems/score/cpu.h> - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/** - * @defgroup ClassicCounter Free-Running Counter and Busy Wait Delay - * - * @ingroup ClassicRTEMS - * - * @brief Free-running counter and busy wait delay functions. - * - * The RTEMS counter is some free-running counter. It ticks usually with a - * frequency close to the CPU or system bus clock. - * - * The counter can be used in case the overhead of the - * rtems_clock_get_uptime_nanoseconds() is too high. The step from counter - * ticks to/from nanoseconds is explicit in this API unlike to - * rtems_clock_get_uptime_nanoseconds() which performs the conversion on each - * invocation. - * - * This counter works without a clock driver and during system initialization. - * - * The counter can be used to profile low-level operations like SMP locks or - * interrupt disabled critical sections. The counter can act also as an - * entropy source for a random number generator. - * - * The period of the counter depends on the actual hardware. - * - * @{ - */ - -/** - * @brief Unsigned integer type for counter values. - */ -typedef CPU_Counter_ticks rtems_counter_ticks; - -/** - * @brief Reads the current counter values. - * - * @return The current counter values. - */ -static inline rtems_counter_ticks rtems_counter_read( void ) -{ - return _CPU_Counter_read(); -} - -/** - * @brief Returns the difference between the second and first CPU counter - * value. - * - * This operation may be carried out as a modulo operation depending on the - * range of the CPU counter device. - * - * @param[in] second The second CPU counter value. - * @param[in] first The first CPU counter value. - * - * @return Returns second minus first modulo counter period. - */ -static inline rtems_counter_ticks rtems_counter_difference( - rtems_counter_ticks second, - rtems_counter_ticks first -) -{ - return _CPU_Counter_difference( second, first ); -} - -/** - * @brief Converts counter ticks into nanoseconds. - * - * @param[in] ticks Some counter ticks. - * - * @return The nanoseconds corresponding to the counter ticks. The value is - * rounded up. - */ -uint64_t rtems_counter_ticks_to_nanoseconds( - rtems_counter_ticks ticks -); - -/** - * @brief Converts nanoseconds into counter ticks. - * - * @param[in] nanoseconds Some nanoseconds. - * - * @return The counter ticks corresponding to the nanoseconds. The value is - * rounded up. - */ -rtems_counter_ticks rtems_counter_nanoseconds_to_ticks( - uint32_t nanoseconds -); - -/** - * @brief Initializes the counter ticks to/from nanoseconds converter functions. - * - * This function must be used to initialize the - * rtems_counter_ticks_to_nanoseconds() and - * rtems_counter_nanoseconds_to_ticks() functions. It should be called during - * system initialization by the board support package. - * - * @param[in] frequency The current counter frequency in Hz. - */ -void rtems_counter_initialize_converter( uint32_t frequency ); - -/** - * @brief Busy wait for some counter ticks. - * - * This function does not disable interrupts. Thus task switches and - * interrupts can interfere with this busy wait may prolong the delay. This - * function busy waits at least the specified time. Due to some overhead the - * actual delay may be longer. - * - * @param[in] ticks The minimum busy wait time in counter ticks. - */ -void rtems_counter_delay_ticks( rtems_counter_ticks ticks ); - -/** - * @brief Busy wait for some nanoseconds. - * - * This function does not disable interrupts. Thus task switches and - * interrupts can interfere with this busy wait may prolong the delay. This - * function busy waits at least the specified time. Due to some overhead the - * actual delay may be longer. - * - * @param[in] nanoseconds The minimum busy wait time in nanoseconds. - */ -void rtems_counter_delay_nanoseconds( uint32_t nanoseconds ); - -/** @} */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _RTEMS_SAPI_COUNTER_H */ |