android usb_disk2,Android USB gadget configfs学习笔记总结

1.一个config_item 是通过显式用户空间mkdir操作创建的,通过rmdir销毁。属性(文件)在mkdir之后出现,可以通过read和write读取或修改属性文件。与sysfs一样,readdir查询链表上的items和/或attributes。

2.symlink可用于将items组合在一起。 与sysfs不同,表示的生命周期完全由用户空间驱动,支持这items的内核模块必须响应这一点。

3.平台A上是在init.rc文件中挂载的

mount configfs none /config

在init.recovery.BOARD.rc文件中在adb初始化好后将 setprop sys.usb.configfs 1

注意persist.sys.usb.config属性:# getprop persist.sys.usb.config mobile_link,adb

4.查看USB相关的属性:# getprop |grep usb

5.这些使用configfs作为subsystems注册其item types的模块称为客户端模块。一旦加载了client subsystem后,它将显示为/config下的子目录(或多个子目录)。

6.通过mkdir创建一个item。 该item的属性(文件)也将在这个时候出现。

7.当需要销毁某个项目时,请使用rmdir将其删除。 如果一个item存在任何其他链接,则无法销毁该项目。 可以通过unlink删除链接。

8.configfs中的每个对象都是一个config_item。 一个config_item反映了此子系统中的一个对象

9.group是共享相同属性和操作的项的集合。 Items由mkdir创建并由rmdir删除,但configfs处理它, 该group具有一组执行这些任务的操作。

10.在初始化期间,客户端模块注册子系统到configfs,子系统显示为configfs文件系统下的顶级的目录。 一个子系统也是一个config_group,可以完成config_group所能做的一切。

11.config_item的所有用户都应该通过config_item_get()来引用它,并在引用完成时通过config_item_put()删除引用。

12.config_item_type指定config_item的行为,提供操作函数。

13.动态分配的所有项items都需要提供ct_item_ops->release()方法释放。 当config_item的引用计数达到零时,将调用此方法。

14.当config_item希望某个属性在项目的configfs目录中显示为文件时,它必须定义一个configfs_attribute来描述它

15.config_item无法凭空存在,config_group上的mkdir是创建它的唯一方法。 这将触发子项目的创建。

16.正确配置该项目意味着一个组可以作为一个项目本身(也即一个config_group本身也是一个config_item)。 但是,它可以做更多:它可以创建子项或组。这是通过组的config_item_type上指定的组操作完成的。

17.当调用rmdir时,configfs将从文件系统树中删除该项(假设它没有子节点来保持它忙)。 子系统负责响应这一点。 如果子系统在其它线程中对该项目具有引用,则内存是安全的(引用计数保证的).

项目实际上可能需要一些时间才能从子系统的使用中消失。 但它已经从configfs中消失了。

18.当rmdir --> drop_item()被调用时,项目的链接已被拆除。它不再具有对其父级的引用,并且在项目层次结构中没有位置了。 如果客户端在拆除发生之前需要进行一些清理工作,则子系统可以实

现configfs_group_operations.disconnect_notify()方法。 这个方法将会在configfs将此项目从文件系统视图中移除之后,但在从其父group中删除之前调用。

19.一个子系统永远不会触及文件系统部分,但子系统可能对此层次结构感兴趣。

20.configfs构建出一个层次结构,层次结构通过config_group->cg_children和config_item->ci_parent构成树状结构。子系统可以导航cg_children列表和ci_parent指针以查看子系统创建的树。

这可能与configfs管理层次结构竞争,因此configfs使用子系统互斥锁来保护修改。 每当子系统想要导航层次结构时,它必须

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值