提交 01fd6b85 编写于 作者: 鸿蒙内核源码分析's avatar 鸿蒙内核源码分析

注解钩子函数的宏实现

    百万汉字注解 + 百篇博客分析 => 挖透鸿蒙内核源码
    鸿蒙研究站 | http://weharmonyos.com (国内)
              | https://weharmony.github.io (国外)
    oschina | https://my.oschina.net/weharmony
    博客园 | https://www.cnblogs.com/weharmony/
    知乎 | https://www.zhihu.com/people/weharmonyos
    csdn | https://blog.csdn.net/kuangyufei
    51cto | https://harmonyos.51cto.com/column/34
    掘金 | https://juejin.cn/user/756888642000808
    公众号 | 鸿蒙研究站 (weharmonyos)
上级 b0a3902c
......@@ -80,14 +80,14 @@ extern "C" {
原子操作中,操作数及其结果不能超过函数所支持位数的最大值。目前原子操作接口只支持整型数据。
参考
https://gitee.com/LiteOS/LiteOS/blob/master/doc/Huawei_LiteOS_Kernel_Developer_Guide_zh.md#setup
http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-basic-atomic.html
*/
typedef volatile INT32 Atomic; //原子数据包含两种类型Atomic(有符号32位数)与 Atomic64(有符号64位数)
typedef volatile INT64 Atomic64;
/**
* @ingroup los_atomic
* @brief Atomic read.
* @brief Atomic read. | 读取32bit原子数据
*
* @par Description:
* This API is used to implement the atomic read and return the result value of the read.
......@@ -356,7 +356,7 @@ STATIC INLINE INT32 LOS_AtomicDecRet(Atomic *v)
/**
* @ingroup los_atomic
* @brief Atomic64 read.
* @brief Atomic64 read. | 读取64bit原子数据
*
* @par Description:
* This API is used to implement the atomic64 read and return the result value of the read.
......
......@@ -33,10 +33,11 @@
#include "los_sched_pri.h"
/*!
* @file los_sys.c
* @brief 系统时间转化
* @details
* @attention @verbatim
* @file los_sys.c
* @brief 系统时间转化
* @details
* @link kernel-small-basic-time http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-basic-time.html @endlink
* @verbatim
基本概念
时间管理以系统时钟为基础,给应用程序提供所有和时间有关的服务。
......@@ -61,15 +62,15 @@
根据实际需求,在板级配置适配时确认是否使能LOSCFG_BASE_CORE_TICK_HW_TIME宏选择外部定时器,
并配置系统主时钟频率OS_SYS_CLOCK(单位Hz)。OS_SYS_CLOCK的默认值基于硬件平台配置。
通过make menuconfig配置LOSCFG_BASE_CORE_TICK_PER_SECOND。
注意事项
时间管理不是单独的功能模块,依赖于OS_SYS_CLOCK和LOSCFG_BASE_CORE_TICK_PER_SECOND两个配置选项。
系统的Tick数在关中断的情况下不进行计数,故系统Tick数不能作为准确时间使用。
参考
https://gitee.com/LiteOS/LiteOS/blob/master/doc/Huawei_LiteOS_Kernel_Developer_Guide_zh.md#setup
@endverbatim
*/
http://weharmonyos.com/openharmony/zh-cn/device-dev/kernel/kernel-small-basic-time.html
@endverbatim
* @attention
获取系统Tick数需要在系统时钟使能之后。
时间管理不是单独的功能模块,依赖于los_config.h中的OS_SYS_CLOCK和LOSCFG_BASE_CORE_TICK_PER_SECOND两个配置选项。
系统的Tick数在关中断的情况下不进行计数,故系统Tick数不能作为准确时间计算。
*/
#define OS_MAX_VALUE 0xFFFFFFFFUL
......
......@@ -636,7 +636,7 @@ EXIT_ERR:
EXIT_UNLOCK_ERR:
return futexRet;
}
/// 向Futex表中插入代表被阻塞的线程的node
INT32 OsFutexWait(const UINT32 *userVaddr, UINT32 flags, UINT32 val, UINT32 absTime)
{
INT32 ret;
......@@ -745,7 +745,7 @@ STATIC INT32 OsFutexWakeTask(UINTPTR futexKey, UINT32 flags, INT32 wakeNumber, F
return LOS_OK;
}
/// 唤醒一个被指定锁阻塞的线程
INT32 OsFutexWake(const UINT32 *userVaddr, UINT32 flags, INT32 wakeNumber)
{
INT32 ret, futexRet;
......@@ -952,7 +952,7 @@ STATIC INT32 OsFutexRequeueParamCheck(const UINT32 *oldUserVaddr, UINT32 flags,
return LOS_OK;
}
/// 调整指定锁在Futex表中的位置
INT32 OsFutexRequeue(const UINT32 *userVaddr, UINT32 flags, INT32 wakeNumber, INT32 count, const UINT32 *newUserVaddr)
{
INT32 ret;
......
......@@ -49,7 +49,7 @@ BOOL LOS_RwlockIsValid(const LosRwlock *rwlock)
return FALSE;
}
/// 创建读写锁
UINT32 LOS_RwlockInit(LosRwlock *rwlock)
{
UINT32 intSave;
......
......@@ -1120,7 +1120,7 @@ VOID OsSchedResched(VOID)
}
/*!
* @brief LOS_Schedule 任务调度主函数
* @brief LOS_Schedule 任务调度主函数,触发系统调度
*
* @return
*
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册