RTEMS 6.1-rc2
Loading...
Searching...
No Matches
counter.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-2-Clause */
2
12/*
13 * Copyright (C) 2014, 2018 embedded brains GmbH & Co. KG
14 *
15 * Redistribution and use in source and binary forms, with or without
16 * modification, are permitted provided that the following conditions
17 * are met:
18 * 1. Redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer.
20 * 2. Redistributions in binary form must reproduce the above copyright
21 * notice, this list of conditions and the following disclaimer in the
22 * documentation and/or other materials provided with the distribution.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
28 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 * POSSIBILITY OF SUCH DAMAGE.
35 */
36
37#ifndef _RTEMS_SAPI_COUNTER_H
38#define _RTEMS_SAPI_COUNTER_H
39
40#include <rtems/score/cpu.h>
41
42#ifdef __cplusplus
43extern "C" {
44#endif /* __cplusplus */
45
76typedef CPU_Counter_ticks rtems_counter_ticks;
77
83static inline uint32_t rtems_counter_frequency( void )
84{
86}
87
93static inline rtems_counter_ticks rtems_counter_read( void )
94{
95 return _CPU_Counter_read();
96}
97
110static inline rtems_counter_ticks rtems_counter_difference(
111 rtems_counter_ticks second,
113)
114{
115 return second - first;
116}
117
128);
129
139 uint32_t nanoseconds
140);
141
151
161
172void rtems_counter_initialize_converter( uint32_t frequency );
173
185
196void rtems_counter_delay_nanoseconds( uint32_t nanoseconds );
197
200#ifdef __cplusplus
201}
202#endif /* __cplusplus */
203
204#endif /* _RTEMS_SAPI_COUNTER_H */
rtems_counter_ticks rtems_counter_sbintime_to_ticks(int64_t sbt)
Converts signed binary time (sbintime_t) into counter ticks.
Definition: cpucounterconverter.c:65
uint64_t rtems_counter_ticks_to_nanoseconds(rtems_counter_ticks ticks)
Converts counter ticks into nanoseconds.
Definition: cpucounterconverter.c:50
int64_t rtems_counter_ticks_to_sbintime(rtems_counter_ticks ticks)
Converts counter ticks into signed binary time (sbintime_t).
Definition: cpucounterconverter.c:60
rtems_counter_ticks rtems_counter_nanoseconds_to_ticks(uint32_t nanoseconds)
Converts nanoseconds into counter ticks.
Definition: cpucounterconverter.c:55
void rtems_counter_delay_nanoseconds(uint32_t nanoseconds)
Busy wait for some nanoseconds.
Definition: delaynano.c:43
void rtems_counter_initialize_converter(uint32_t frequency)
Initializes the counter ticks to/from nanoseconds converter functions.
Definition: cpucounterconverter.c:70
void rtems_counter_delay_ticks(rtems_counter_ticks ticks)
Busy wait for some counter ticks.
Definition: delayticks.c:43
CPU_Counter_ticks rtems_counter_ticks
Unsigned integer type for counter values.
Definition: counter.h:76
uint32_t _CPU_Counter_frequency(void)
Gets the current CPU counter frequency in Hz.
Definition: system-clocks.c:125
CPU_Counter_ticks _CPU_Counter_read(void)
Gets the current CPU counter value.
Definition: system-clocks.c:130