device管理器的说明

设备管理器采用双向链表结构进行设备的管理,包括初始化、添加、删除和查找操作。设备结构体中包含链表节点,便于设备管理。通过结构体成员如`list_head`和相关宏进行链表操作,例如`list_entry`和`list_for_each_entry`等,实现了链表的遍历和设备管理功能。
摘要由CSDN通过智能技术生成

device管理器用于对设备进行管理,主要包括设备管理器的初始化、设备添加、删除、查找、比较等操作。

对于设备的管理采用双向链表管理,方便设备添加、删除、查找等操作。

设备管理器结构体:
struct __dev_manager {
struct list_head list;//链表
OS_MUTEX mutex;//信号量
OS_SEM sem;//同步信号
u32 counter;//计数器,时间戳
};
第一个成员即为双向链表,结构体如下:
struct list_head {
struct list_head *next, *prev;
};
成员为next指针和prev指针。

每个设备也使用结构体来表示,包含设备参数信息、状态信息等。
既然设备要纳入设备管理器来管理,因此,设备结构体中也必须包含有双向链表。其结构体如下:
struct __dev {
struct list_head entry;//链表
struct __dev_reg *parm;//设备参数
struct imount *fmnt;//挂载
volatile u8 valid: 1;//有效设备标记, 这里有效是指是否有可播放文件
volatile u32 active_stamp;///活动设备时间戳,通过时间戳记录当前最后活动设备
};

设备管理器的定义:
static struct __dev_manager dev_mg;//设备管理器
#define __this (&dev_mg)//设备管理器
通过dev_mg或__this都可以对链表进行访问操作。其中__this为指针。

__this-&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值