linux usb文件,Linux USB subsystem --- USB File System initialize

目的:对USB作深入学习,在此留下笔记。欢迎讨论。

[Linux 3.2] [driver/usb/core/inode.c]

函数:usbfs_init()

USB文件系统的初始化取决于是否CONFIG_USB_DEVICEFS. (make menuconfig ---> Device Drivers ---> USB support --->  USB device filesystem (DEPRECATED))

如果没有配置CONFIG_USB_DEVICEFS, 则usbfs_init()为inline函数,直接return 0;

如果配置CONFIG_USB_DEVICEFS, 则代码如下:

staticintusbfs_notify(structnotifier_block *self, unsignedlongaction,void*dev)

{

switch(action) {

caseUSB_DEVICE_ADD:

usbfs_add_device(dev);

break;

caseUSB_DEVICE_REMOVE:

usbfs_remove_device(dev);

break;

caseUSB_BUS_ADD:

usbfs_add_bus(dev);

break;

caseUSB_BUS_REMOVE:

usbfs_remove_bus(dev);

}

usbfs_update_special();

usbfs_conn_disc_event();

returnNOTIFY_OK;

}

staticstructnotifier_block usbfs_nb = {

.notifier_call =    usbfs_notify,

};

/* --------------------------------------------------------------------- */

staticstructproc_dir_entry *usbdir = NULL;

int__init usbfs_init(void)

{

intretval;

retval = register_filesystem(&usb_fs_type);

if(retval)

returnretval;

usb_register_notify(&usbfs_nb);

/* create mount point for usbfs */

usbdir = proc_mkdir("bus/usb", NULL);

return0;

}

其主要作用:注册usb文件系统,注册一个usbfs_nb通知链,最后是在proc文件系统下面创建bus/usb目录。

进入/proc/bus/usb目录

# ls

001      002      devices

此devices的内容完全与usb debug文件系统里的devices文件一样。

001,代表usb总线1

002,代表usb总线2

注意:具体内容可以参见

问题:这些内容是如何产生的呢?

回答:见后面分析。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值