56eb2915a011040b7552e9841c054addb34927a5
[o-du/phy.git] / fhi_lib / lib / api / xran_timer.h
1 /******************************************************************************\r
2 *\r
3 *   Copyright (c) 2019 Intel.\r
4 *\r
5 *   Licensed under the Apache License, Version 2.0 (the "License");\r
6 *   you may not use this file except in compliance with the License.\r
7 *   You may obtain a copy of the License at\r
8 *\r
9 *       http://www.apache.org/licenses/LICENSE-2.0\r
10 *\r
11 *   Unless required by applicable law or agreed to in writing, software\r
12 *   distributed under the License is distributed on an "AS IS" BASIS,\r
13 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14 *   See the License for the specific language governing permissions and\r
15 *   limitations under the License.\r
16 *\r
17 *******************************************************************************/\r
18 \r
19 /**\r
20  * @brief This file provides interface to Timing for XRAN.\r
21  *\r
22  * @file xran_timer.h\r
23  * @ingroup group_lte_source_xran\r
24  * @author Intel Corporation\r
25  *\r
26  **/\r
27 \r
28 #ifndef _XRAN_TIMER_H\r
29 #define _XRAN_TIMER_H\r
30 \r
31 #ifdef __cplusplus\r
32 extern "C" {\r
33 #endif\r
34 \r
35 #include <time.h>\r
36 #include <stdio.h>\r
37 #include <stdlib.h>\r
38 #include <stdint.h>\r
39 \r
40 #define MSEC_PER_SEC 1000L\r
41 \r
42 #define XranIncrementSymIdx(sym_idx, numSymPerMs)  (((uint32_t)sym_idx >= (((uint32_t)numSymPerMs * MSEC_PER_SEC) - 1)) ? 0 : (uint32_t)sym_idx+1)\r
43 #define XranDecrementSymIdx(sym_idx, numSymPerMs)  (((uint32_t)sym_idx == 0) ? (((uint32_t)numSymPerMs * MSEC_PER_SEC)) - 1) : (uint32_t)sym_idx-1)\r
44 \r
45 uint64_t xran_tick(void);\r
46 unsigned long get_ticks_diff(unsigned long curr_tick, unsigned long last_tick);\r
47 long poll_next_tick(long interval_ns, unsigned long *used_tick);\r
48 long sleep_next_tick(long interval);\r
49 int timing_set_debug_stop(int value, int count);\r
50 int timing_get_debug_stop(void);\r
51 inline uint64_t timing_get_current_second(void);\r
52 int timing_set_numerology(uint8_t value);\r
53 \r
54 #ifdef __cplusplus\r
55 }\r
56 #endif\r
57 \r
58 #endif\r