Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
鸿蒙内核源码分析
注释鸿蒙内核源码
提交
881bdc7e
注释鸿蒙内核源码
项目概览
鸿蒙内核源码分析
/
注释鸿蒙内核源码
通知
270
Star
29
Fork
11
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
106
Wiki
分析
仓库
DevOps
项目成员
Pages
注释鸿蒙内核源码
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
106
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
881bdc7e
编写于
10月 23, 2020
作者:
鸿蒙内核源码分析
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
鸿蒙源码分析系列篇
https://blog.csdn.net/kuangyufei
https://my.oschina.net/u/3751245
上级
3231b208
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
10 addition
and
10 deletion
+10
-10
README.md
README.md
+1
-1
kernel/base/sched/sched_sq/los_priqueue.c
kernel/base/sched/sched_sq/los_priqueue.c
+9
-9
未找到文件。
README.md
浏览文件 @
881bdc7e
...
...
@@ -19,7 +19,7 @@
系列篇文章查看: 进入>> 鸿蒙源码分析系列篇 [CSDN站](https://blog.csdn.net/kuangyufei) | [OSCHINA站](https://my.oschina.net/u/3751245) 查看, 正在持续更新中..., 感谢CSDN, OSCHINA 对博文的推荐.
注释中文版查看: 进入>> 鸿蒙内核源码注释中文版 [CSDN仓库](https://codechina.csdn.net/kuangyufei/kernel_liteos_a_note) | [Gitee仓库 ](https://gitee.com/weharmony/kernel_liteos_a_note) | [Github仓库](https://github.com/kuangyufei/kernel_liteos_a_note)
[c
oding仓库](https://weharmony.coding.net/public/harmony/kernel_liteos_a_note/git/files) 查看,四大仓库同步更新. 正在持续加注中....
注释中文版查看: 进入>> 鸿蒙内核源码注释中文版 [CSDN仓库](https://codechina.csdn.net/kuangyufei/kernel_liteos_a_note) | [Gitee仓库 ](https://gitee.com/weharmony/kernel_liteos_a_note) | [Github仓库](https://github.com/kuangyufei/kernel_liteos_a_note)
| [C
oding仓库](https://weharmony.coding.net/public/harmony/kernel_liteos_a_note/git/files) 查看,四大仓库同步更新. 正在持续加注中....
精读内核源码当然是件很困难的事,但正因为很难才值得去做! 内心不渴望的永远不可能靠近自己.别再去纠结而没有行动.笔者一直坚信兴趣是最好的老师,加注就是在做自己感兴趣的事, 希望感兴趣的各位能看到.如果能让更多人参与到内核的研究,减少学习的成本,哪怕就节省一天的时间,这么多人能节省多少时间, 这是件多好玩,多有意义的事情啊.
...
...
kernel/base/sched/sched_sq/los_priqueue.c
浏览文件 @
881bdc7e
...
...
@@ -44,32 +44,32 @@ extern "C" {
//*kfy 0x80000000U = 10000000000000000000000000000000(32个0)
#define PRIQUEUE_PRIOR0_BIT 0x80000000U
LITE_OS_SEC_BSS
LOS_DL_LIST
*
g_priQueueList
=
NULL
;
LITE_OS_SEC_BSS
UINT32
g_priQueueBitmap
;
LITE_OS_SEC_BSS
LOS_DL_LIST
*
g_priQueueList
=
NULL
;
//队列链表
LITE_OS_SEC_BSS
UINT32
g_priQueueBitmap
;
//队列位图
//内部队列初始化
UINT32
OsPriQueueInit
(
VOID
)
{
UINT32
priority
;
/* system resident resource */
g_priQueueList
=
(
LOS_DL_LIST
*
)
LOS_MemAlloc
(
m_aucSysMem0
,
(
OS_PRIORITY_QUEUE_NUM
*
sizeof
(
LOS_DL_LIST
)));
/* system resident resource */
//常驻内存
g_priQueueList
=
(
LOS_DL_LIST
*
)
LOS_MemAlloc
(
m_aucSysMem0
,
(
OS_PRIORITY_QUEUE_NUM
*
sizeof
(
LOS_DL_LIST
)));
//分配32个队列头节点
if
(
g_priQueueList
==
NULL
)
{
return
LOS_NOK
;
}
for
(
priority
=
0
;
priority
<
OS_PRIORITY_QUEUE_NUM
;
++
priority
)
{
LOS_ListInit
(
&
g_priQueueList
[
priority
]);
LOS_ListInit
(
&
g_priQueueList
[
priority
]);
//队列初始化,前后指针指向自己
}
return
LOS_OK
;
}
//获取位图中最高优先级对应链表的第一个节点
LOS_DL_LIST
*
OsPriQueueTop
(
LOS_DL_LIST
*
priQueueList
,
UINT32
*
bitMap
)
{
UINT32
priority
;
if
(
*
bitMap
!=
0
)
{
priority
=
CLZ
(
*
bitMap
);
return
LOS_DL_LIST_FIRST
(
&
priQueueList
[
priority
]);
priority
=
CLZ
(
*
bitMap
);
//比如 bitmap = 0b00110101000 返回 4 ,意思是从右到左找到第一个出现1的索引位
return
LOS_DL_LIST_FIRST
(
&
priQueueList
[
priority
]);
//取出第一个节点
}
return
NULL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录