Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2345VOR
rt-thread
提交
5213fd0e
R
rt-thread
项目概览
2345VOR
/
rt-thread
与 Fork 源项目一致
Fork自
RT-Thread / 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,发现更多精彩内容 >>
提交
5213fd0e
编写于
7月 07, 2018
作者:
L
liang yongxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[kernel] splite rt_device_unregister() and rt_device_destroy(), add assert to device object
上级
7b984c2f
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
17 addition
and
5 deletion
+17
-5
src/device.c
src/device.c
+17
-5
未找到文件。
src/device.c
浏览文件 @
5213fd0e
...
@@ -94,6 +94,8 @@ RTM_EXPORT(rt_device_register);
...
@@ -94,6 +94,8 @@ RTM_EXPORT(rt_device_register);
rt_err_t
rt_device_unregister
(
rt_device_t
dev
)
rt_err_t
rt_device_unregister
(
rt_device_t
dev
)
{
{
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
rt_object_get_type
(
&
dev
->
parent
)
==
RT_Object_Class_Device
);
RT_ASSERT
(
rt_object_is_systemobject
(
&
dev
->
parent
));
rt_object_detach
(
&
(
dev
->
parent
));
rt_object_detach
(
&
(
dev
->
parent
));
...
@@ -191,15 +193,18 @@ RTM_EXPORT(rt_device_create);
...
@@ -191,15 +193,18 @@ RTM_EXPORT(rt_device_create);
/**
/**
* This function destroy the specific device object.
* This function destroy the specific device object.
*
*
* @param dev
ice
, the specific device object.
* @param dev, the specific device object.
*/
*/
void
rt_device_destroy
(
rt_device_t
dev
ice
)
void
rt_device_destroy
(
rt_device_t
dev
)
{
{
/* unregister device firstly */
RT_ASSERT
(
dev
!=
RT_NULL
);
rt_device_unregister
(
device
);
RT_ASSERT
(
rt_object_get_type
(
&
dev
->
parent
)
==
RT_Object_Class_Device
);
RT_ASSERT
(
rt_object_is_systemobject
(
&
dev
->
parent
)
==
RT_FALSE
);
rt_object_detach
(
&
(
dev
->
parent
));
/* release this device object */
/* release this device object */
rt_free
(
dev
ice
);
rt_free
(
dev
);
}
}
RTM_EXPORT
(
rt_device_destroy
);
RTM_EXPORT
(
rt_device_destroy
);
#endif
#endif
...
@@ -251,6 +256,7 @@ rt_err_t rt_device_open(rt_device_t dev, rt_uint16_t oflag)
...
@@ -251,6 +256,7 @@ rt_err_t rt_device_open(rt_device_t dev, rt_uint16_t oflag)
rt_err_t
result
=
RT_EOK
;
rt_err_t
result
=
RT_EOK
;
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
rt_object_get_type
(
&
dev
->
parent
)
==
RT_Object_Class_Device
);
/* if device is not initialized, initialize it. */
/* if device is not initialized, initialize it. */
if
(
!
(
dev
->
flag
&
RT_DEVICE_FLAG_ACTIVATED
))
if
(
!
(
dev
->
flag
&
RT_DEVICE_FLAG_ACTIVATED
))
...
@@ -315,6 +321,7 @@ rt_err_t rt_device_close(rt_device_t dev)
...
@@ -315,6 +321,7 @@ rt_err_t rt_device_close(rt_device_t dev)
rt_err_t
result
=
RT_EOK
;
rt_err_t
result
=
RT_EOK
;
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
rt_object_get_type
(
&
dev
->
parent
)
==
RT_Object_Class_Device
);
if
(
dev
->
ref_count
==
0
)
if
(
dev
->
ref_count
==
0
)
return
-
RT_ERROR
;
return
-
RT_ERROR
;
...
@@ -356,6 +363,7 @@ rt_size_t rt_device_read(rt_device_t dev,
...
@@ -356,6 +363,7 @@ rt_size_t rt_device_read(rt_device_t dev,
rt_size_t
size
)
rt_size_t
size
)
{
{
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
rt_object_get_type
(
&
dev
->
parent
)
==
RT_Object_Class_Device
);
if
(
dev
->
ref_count
==
0
)
if
(
dev
->
ref_count
==
0
)
{
{
...
@@ -394,6 +402,7 @@ rt_size_t rt_device_write(rt_device_t dev,
...
@@ -394,6 +402,7 @@ rt_size_t rt_device_write(rt_device_t dev,
rt_size_t
size
)
rt_size_t
size
)
{
{
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
rt_object_get_type
(
&
dev
->
parent
)
==
RT_Object_Class_Device
);
if
(
dev
->
ref_count
==
0
)
if
(
dev
->
ref_count
==
0
)
{
{
...
@@ -426,6 +435,7 @@ RTM_EXPORT(rt_device_write);
...
@@ -426,6 +435,7 @@ RTM_EXPORT(rt_device_write);
rt_err_t
rt_device_control
(
rt_device_t
dev
,
int
cmd
,
void
*
arg
)
rt_err_t
rt_device_control
(
rt_device_t
dev
,
int
cmd
,
void
*
arg
)
{
{
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
rt_object_get_type
(
&
dev
->
parent
)
==
RT_Object_Class_Device
);
/* call device write interface */
/* call device write interface */
if
(
device_control
!=
RT_NULL
)
if
(
device_control
!=
RT_NULL
)
...
@@ -451,6 +461,7 @@ rt_device_set_rx_indicate(rt_device_t dev,
...
@@ -451,6 +461,7 @@ rt_device_set_rx_indicate(rt_device_t dev,
rt_err_t
(
*
rx_ind
)(
rt_device_t
dev
,
rt_size_t
size
))
rt_err_t
(
*
rx_ind
)(
rt_device_t
dev
,
rt_size_t
size
))
{
{
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
rt_object_get_type
(
&
dev
->
parent
)
==
RT_Object_Class_Device
);
dev
->
rx_indicate
=
rx_ind
;
dev
->
rx_indicate
=
rx_ind
;
...
@@ -472,6 +483,7 @@ rt_device_set_tx_complete(rt_device_t dev,
...
@@ -472,6 +483,7 @@ rt_device_set_tx_complete(rt_device_t dev,
rt_err_t
(
*
tx_done
)(
rt_device_t
dev
,
void
*
buffer
))
rt_err_t
(
*
tx_done
)(
rt_device_t
dev
,
void
*
buffer
))
{
{
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
dev
!=
RT_NULL
);
RT_ASSERT
(
rt_object_get_type
(
&
dev
->
parent
)
==
RT_Object_Class_Device
);
dev
->
tx_complete
=
tx_done
;
dev
->
tx_complete
=
tx_done
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录