• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2009-2022 Huawei Technologies Co., Ltd. All rights reserved.
3  *
4  * UniProton is licensed under Mulan PSL v2.
5  * You can use this software according to the terms and conditions of the Mulan PSL v2.
6  * You may obtain a copy of Mulan PSL v2 at:
7  *          http://license.coscl.org.cn/MulanPSL2
8  * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
9  * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
10  * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
11  * See the Mulan PSL v2 for more details.
12  * Create: 2009-12-22
13  * Description: Tick中断的对外头文件。
14  */
15 #ifndef PRT_TICK_H
16 #define PRT_TICK_H
17 
18 #include "prt_module.h"
19 #include "prt_errno.h"
20 
21 #ifdef __cplusplus
22 #if __cplusplus
23 extern "C" {
24 #endif /* __cpluscplus */
25 #endif /* __cpluscplus */
26 
27 /*
28  * Tick中断错误码:tick的周期错误
29  *
30  * 值: 0x02000501
31  *
32  * 解决方案:确认经过转换后的tick周期(多少cycle/tick)是否区间(0,0x00FFFFFF]内。
33  */
34 #define OS_ERRNO_TICK_PERIOD OS_ERRNO_BUILD_ERROR(OS_MID_TICK, 0x01)
35 
36 /*
37  * Tick中断错误码:每秒的Tick中断计数配置不合法。
38  *
39  * 值: 0x02000502
40  *
41  * 解决方案:确保配置的每秒Tick中断计数小于系统时钟数,并且不等于0。
42  */
43 #define OS_ERRNO_TICK_PER_SECOND_ERROR OS_ERRNO_BUILD_ERROR(OS_MID_TICK, 0x02)
44 
45 /*
46  * Tick中断模块配置信息的结构体定义。
47  *
48  * 保存Tick中断模块的配置项信息。
49  */
50 struct TickModInfo {
51     /* Tick中断的优先级配置 */
52     U32 tickPriority;
53     /* 每秒产生的TICK中断数 */
54     U32 tickPerSecond;
55 };
56 
57 /*
58  * @brief Tick中断用户钩子函数。
59  *
60  * @par 描述
61  * Tick中断处理函数。
62  *
63  * @attention
64  * <ul>
65  * <li>用户调用的Tick中断处理钩子。</li>
66  * <li>Tick模块裁剪开关未打开,调用此接口无效。</li>
67  * </ul>
68  *
69  * @param 无。
70  *
71  * @retval 无。
72  * @par 依赖
73  * <ul><li>prt_tick.h:该接口声明所在的头文件。</li></ul>
74  * @see 无
75  */
76 typedef void (*TickHandleFunc)(void);
77 
78 /*
79  * @brief 获取每秒钟对应的Tick数。
80  *
81  * @par 描述
82  * 获取当前的tick计数。
83  *
84  * @attention 无
85  *
86  * @param 无。
87  *
88  * @retval  [0,0xFFFFFFFFFFFFFFFF] 当前的tick计数。
89  * @par 依赖
90  * <ul><li>prt_tick.h:该接口声明所在的头文件。</li></ul>
91  * @see 无
92  */
93 extern U64 PRT_TickGetCount(void);
94 
95 #ifdef __cplusplus
96 #if __cplusplus
97 }
98 #endif /* __cpluscplus */
99 #endif /* __cpluscplus */
100 
101 #endif /* PRT_TICK_H */
102