Linux USB内核源码分析(1)

本文探讨了Linux系统中USB设备驱动的注册过程,重点在于usb_register_driver函数,该函数用于将USB设备驱动绑定到设备描述符。内容涉及到USB设备的层次结构,包括设备、配置、接口和端点,并与USB接口的注册进行对比。
摘要由CSDN通过智能技术生成

这里是usb初始化时,将usb设备驱动注册到总线上,从usb设备的层次结构(usb device --- configuration --- interface --- point)上来说,这里的driver所对应的为设备描述符(usb device)的驱动. 当然这里的注册过程和usb interface的注册过程类似,只是用的注册函数是 usb_register_driver 而不是usb_register_device_driver。

/* drivers/usb/core/usb.c */
static int __init usb_init(void)
{
  retval = usb_register_device_driver(&usb_generic_driver, THIS_MODULE);
}

/* drivers/usb/core/driver.c */
int usb_register_device_driver(struct usb_device_driver *new_udriver,
                               struct module *owner)
{
  new_udriver->drvwrap.driver.bus = &usb_bus_type;
  retval = driver_register(&new_udriver->drvwrap.driver);
}

/* drivers/base/driver.c */
int driver_register(struct device_driver *drv)
{
  ret = bus_add_driver(drv);
}

/* drivers/base/bus.c */
int bus_add_driver(struct device_driver *drv)
{
  bus = bus_get(drv->bus);
  priv = kzalloc(sizeof(*priv), GFP_KER
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值