Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
混口饭吃,
rt-thread
提交
4fa92ae3
R
rt-thread
项目概览
混口饭吃,
/
rt-thread
与 Fork 源项目一致
Fork自
Mr_Pangza / rt-thread
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rt-thread
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
4fa92ae3
编写于
6月 11, 2021
作者:
mysterywolf
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[kernel] 补充endif后缀注释(4)
上级
8b53609f
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
23 addition
and
23 deletion
+23
-23
src/mem.c
src/mem.c
+23
-23
未找到文件。
src/mem.c
浏览文件 @
4fa92ae3
...
@@ -52,7 +52,6 @@
...
@@ -52,7 +52,6 @@
#ifndef RT_USING_MEMHEAP_AS_HEAP
#ifndef RT_USING_MEMHEAP_AS_HEAP
/* #define RT_MEM_DEBUG */
#define RT_MEM_STATS
#define RT_MEM_STATS
#if defined (RT_USING_HEAP) && defined (RT_USING_SMALL_MEM)
#if defined (RT_USING_HEAP) && defined (RT_USING_SMALL_MEM)
...
@@ -90,7 +89,7 @@ void rt_free_sethook(void (*hook)(void *ptr))
...
@@ -90,7 +89,7 @@ void rt_free_sethook(void (*hook)(void *ptr))
/**@}*/
/**@}*/
#endif
#endif
/* RT_USING_HOOK */
#define HEAP_MAGIC 0x1ea0
#define HEAP_MAGIC 0x1ea0
struct
heap_mem
struct
heap_mem
...
@@ -100,7 +99,7 @@ struct heap_mem
...
@@ -100,7 +99,7 @@ struct heap_mem
rt_uint16_t
used
;
rt_uint16_t
used
;
#ifdef ARCH_CPU_64BIT
#ifdef ARCH_CPU_64BIT
rt_uint32_t
resv
;
rt_uint32_t
resv
;
#endif
#endif
/* ARCH_CPU_64BIT */
rt_size_t
next
,
prev
;
rt_size_t
next
,
prev
;
...
@@ -109,8 +108,8 @@ struct heap_mem
...
@@ -109,8 +108,8 @@ struct heap_mem
rt_uint8_t
thread
[
8
];
rt_uint8_t
thread
[
8
];
#else
#else
rt_uint8_t
thread
[
4
];
/* thread name */
rt_uint8_t
thread
[
4
];
/* thread name */
#endif
#endif
/* ARCH_CPU_64BIT */
#endif
#endif
/* RT_USING_MEMTRACE */
};
};
/** pointer to the heap: for alignment, heap_ptr is now a pointer instead of an array */
/** pointer to the heap: for alignment, heap_ptr is now a pointer instead of an array */
...
@@ -123,7 +122,7 @@ static struct heap_mem *heap_end;
...
@@ -123,7 +122,7 @@ static struct heap_mem *heap_end;
#define MIN_SIZE 24
#define MIN_SIZE 24
#else
#else
#define MIN_SIZE 12
#define MIN_SIZE 12
#endif
#endif
/* ARCH_CPU_64BIT */
#define MIN_SIZE_ALIGNED RT_ALIGN(MIN_SIZE, RT_ALIGN_SIZE)
#define MIN_SIZE_ALIGNED RT_ALIGN(MIN_SIZE, RT_ALIGN_SIZE)
#define SIZEOF_STRUCT_MEM RT_ALIGN(sizeof(struct heap_mem), RT_ALIGN_SIZE)
#define SIZEOF_STRUCT_MEM RT_ALIGN(sizeof(struct heap_mem), RT_ALIGN_SIZE)
...
@@ -135,7 +134,8 @@ static rt_size_t mem_size_aligned;
...
@@ -135,7 +134,8 @@ static rt_size_t mem_size_aligned;
#ifdef RT_MEM_STATS
#ifdef RT_MEM_STATS
static
rt_size_t
used_mem
,
max_mem
;
static
rt_size_t
used_mem
,
max_mem
;
#endif
#endif
/* RT_MEM_STATS */
#ifdef RT_USING_MEMTRACE
#ifdef RT_USING_MEMTRACE
rt_inline
void
rt_mem_setname
(
struct
heap_mem
*
mem
,
const
char
*
name
)
rt_inline
void
rt_mem_setname
(
struct
heap_mem
*
mem
,
const
char
*
name
)
{
{
...
@@ -151,7 +151,7 @@ rt_inline void rt_mem_setname(struct heap_mem *mem, const char *name)
...
@@ -151,7 +151,7 @@ rt_inline void rt_mem_setname(struct heap_mem *mem, const char *name)
mem
->
thread
[
index
]
=
' '
;
mem
->
thread
[
index
]
=
' '
;
}
}
}
}
#endif
#endif
/* RT_USING_MEMTRACE */
static
void
plug_holes
(
struct
heap_mem
*
mem
)
static
void
plug_holes
(
struct
heap_mem
*
mem
)
{
{
...
@@ -238,7 +238,7 @@ void rt_system_heap_init(void *begin_addr, void *end_addr)
...
@@ -238,7 +238,7 @@ void rt_system_heap_init(void *begin_addr, void *end_addr)
mem
->
used
=
0
;
mem
->
used
=
0
;
#ifdef RT_USING_MEMTRACE
#ifdef RT_USING_MEMTRACE
rt_mem_setname
(
mem
,
"INIT"
);
rt_mem_setname
(
mem
,
"INIT"
);
#endif
#endif
/* RT_USING_MEMTRACE */
/* initialize the end of the heap */
/* initialize the end of the heap */
heap_end
=
(
struct
heap_mem
*
)
&
heap_ptr
[
mem
->
next
];
heap_end
=
(
struct
heap_mem
*
)
&
heap_ptr
[
mem
->
next
];
...
@@ -248,7 +248,7 @@ void rt_system_heap_init(void *begin_addr, void *end_addr)
...
@@ -248,7 +248,7 @@ void rt_system_heap_init(void *begin_addr, void *end_addr)
heap_end
->
prev
=
mem_size_aligned
+
SIZEOF_STRUCT_MEM
;
heap_end
->
prev
=
mem_size_aligned
+
SIZEOF_STRUCT_MEM
;
#ifdef RT_USING_MEMTRACE
#ifdef RT_USING_MEMTRACE
rt_mem_setname
(
heap_end
,
"INIT"
);
rt_mem_setname
(
heap_end
,
"INIT"
);
#endif
#endif
/* RT_USING_MEMTRACE */
rt_sem_init
(
&
heap_sem
,
"heap"
,
1
,
RT_IPC_FLAG_FIFO
);
rt_sem_init
(
&
heap_sem
,
"heap"
,
1
,
RT_IPC_FLAG_FIFO
);
...
@@ -336,7 +336,7 @@ void *rt_malloc(rt_size_t size)
...
@@ -336,7 +336,7 @@ void *rt_malloc(rt_size_t size)
mem2
->
prev
=
ptr
;
mem2
->
prev
=
ptr
;
#ifdef RT_USING_MEMTRACE
#ifdef RT_USING_MEMTRACE
rt_mem_setname
(
mem2
,
" "
);
rt_mem_setname
(
mem2
,
" "
);
#endif
#endif
/* RT_USING_MEMTRACE */
/* and insert it between mem and mem->next */
/* and insert it between mem and mem->next */
mem
->
next
=
ptr2
;
mem
->
next
=
ptr2
;
...
@@ -350,7 +350,7 @@ void *rt_malloc(rt_size_t size)
...
@@ -350,7 +350,7 @@ void *rt_malloc(rt_size_t size)
used_mem
+=
(
size
+
SIZEOF_STRUCT_MEM
);
used_mem
+=
(
size
+
SIZEOF_STRUCT_MEM
);
if
(
max_mem
<
used_mem
)
if
(
max_mem
<
used_mem
)
max_mem
=
used_mem
;
max_mem
=
used_mem
;
#endif
#endif
/* RT_MEM_STATS */
}
}
else
else
{
{
...
@@ -366,7 +366,7 @@ void *rt_malloc(rt_size_t size)
...
@@ -366,7 +366,7 @@ void *rt_malloc(rt_size_t size)
used_mem
+=
mem
->
next
-
((
rt_uint8_t
*
)
mem
-
heap_ptr
);
used_mem
+=
mem
->
next
-
((
rt_uint8_t
*
)
mem
-
heap_ptr
);
if
(
max_mem
<
used_mem
)
if
(
max_mem
<
used_mem
)
max_mem
=
used_mem
;
max_mem
=
used_mem
;
#endif
#endif
/* RT_MEM_STATS */
}
}
/* set memory block magic */
/* set memory block magic */
mem
->
magic
=
HEAP_MAGIC
;
mem
->
magic
=
HEAP_MAGIC
;
...
@@ -375,7 +375,7 @@ void *rt_malloc(rt_size_t size)
...
@@ -375,7 +375,7 @@ void *rt_malloc(rt_size_t size)
rt_mem_setname
(
mem
,
rt_thread_self
()
->
name
);
rt_mem_setname
(
mem
,
rt_thread_self
()
->
name
);
else
else
rt_mem_setname
(
mem
,
"NONE"
);
rt_mem_setname
(
mem
,
"NONE"
);
#endif
#endif
/* RT_USING_MEMTRACE */
if
(
mem
==
lfree
)
if
(
mem
==
lfree
)
{
{
...
@@ -473,7 +473,7 @@ void *rt_realloc(void *rmem, rt_size_t newsize)
...
@@ -473,7 +473,7 @@ void *rt_realloc(void *rmem, rt_size_t newsize)
/* split memory block */
/* split memory block */
#ifdef RT_MEM_STATS
#ifdef RT_MEM_STATS
used_mem
-=
(
size
-
newsize
);
used_mem
-=
(
size
-
newsize
);
#endif
#endif
/* RT_MEM_STATS */
ptr2
=
ptr
+
SIZEOF_STRUCT_MEM
+
newsize
;
ptr2
=
ptr
+
SIZEOF_STRUCT_MEM
+
newsize
;
mem2
=
(
struct
heap_mem
*
)
&
heap_ptr
[
ptr2
];
mem2
=
(
struct
heap_mem
*
)
&
heap_ptr
[
ptr2
];
...
@@ -483,7 +483,7 @@ void *rt_realloc(void *rmem, rt_size_t newsize)
...
@@ -483,7 +483,7 @@ void *rt_realloc(void *rmem, rt_size_t newsize)
mem2
->
prev
=
ptr
;
mem2
->
prev
=
ptr
;
#ifdef RT_USING_MEMTRACE
#ifdef RT_USING_MEMTRACE
rt_mem_setname
(
mem2
,
" "
);
rt_mem_setname
(
mem2
,
" "
);
#endif
#endif
/* RT_USING_MEMTRACE */
mem
->
next
=
ptr2
;
mem
->
next
=
ptr2
;
if
(
mem2
->
next
!=
mem_size_aligned
+
SIZEOF_STRUCT_MEM
)
if
(
mem2
->
next
!=
mem_size_aligned
+
SIZEOF_STRUCT_MEM
)
{
{
...
@@ -597,7 +597,7 @@ void rt_free(void *rmem)
...
@@ -597,7 +597,7 @@ void rt_free(void *rmem)
mem
->
magic
=
HEAP_MAGIC
;
mem
->
magic
=
HEAP_MAGIC
;
#ifdef RT_USING_MEMTRACE
#ifdef RT_USING_MEMTRACE
rt_mem_setname
(
mem
,
" "
);
rt_mem_setname
(
mem
,
" "
);
#endif
#endif
/* RT_USING_MEMTRACE */
if
(
mem
<
lfree
)
if
(
mem
<
lfree
)
{
{
...
@@ -607,7 +607,7 @@ void rt_free(void *rmem)
...
@@ -607,7 +607,7 @@ void rt_free(void *rmem)
#ifdef RT_MEM_STATS
#ifdef RT_MEM_STATS
used_mem
-=
(
mem
->
next
-
((
rt_uint8_t
*
)
mem
-
heap_ptr
));
used_mem
-=
(
mem
->
next
-
((
rt_uint8_t
*
)
mem
-
heap_ptr
));
#endif
#endif
/* RT_MEM_STATS */
/* finally, see if prev or next are free also */
/* finally, see if prev or next are free also */
plug_holes
(
mem
);
plug_holes
(
mem
);
...
@@ -706,12 +706,12 @@ int memtrace(int argc, char **argv)
...
@@ -706,12 +706,12 @@ int memtrace(int argc, char **argv)
return
0
;
return
0
;
}
}
MSH_CMD_EXPORT
(
memtrace
,
dump
memory
trace
information
);
MSH_CMD_EXPORT
(
memtrace
,
dump
memory
trace
information
);
#endif
/*
end of
RT_USING_MEMTRACE */
#endif
/* RT_USING_MEMTRACE */
#endif
/*
end of RT_USING_FINSH
*/
#endif
/*
RT_USING_FINSH
*/
#endif
#endif
/* defined (RT_USING_HEAP) && defined (RT_USING_SMALL_MEM) */
/**@}*/
/**@}*/
#endif
/*
end of RT_USING_HEAP
*/
#endif
/*
RT_MEM_STATS
*/
#endif
/*
end of
RT_USING_MEMHEAP_AS_HEAP */
#endif
/* RT_USING_MEMHEAP_AS_HEAP */
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录