现在的位置: 首页 > 综合 > 正文

usb-skeleton.c 之 07–接下去的 。。。skel_delete()

2014年10月30日 ⁄ 综合 ⁄ 共 1109字 ⁄ 字号 评论关闭

 

********************代码********************************

static void skel_delete(struct kref *kref)
{
    struct usb_skel *dev = to_skel_dev(kref);
                                   **container_of(kref,,) 具体  的结构体成员 域 的地址

                                   **返回usb_skel 类型 
    usb_put_dev(dev->udev);
    kfree(dev->bulk_in_buffer);动态申请的 内存  

                                   释放批量输入端口缓冲
    kfree(dev);             释放设备
}

********************************************************

 

struct kref  定义在 linux/include/linux/kref.h 

 struct kref={

      atomic_t  refcount;

}                其中 atomic_t  定于如下 linux/types.h

                  tepydef struct ={

                              volatile int counter;

                  } atomic_t; 

 

 

*********************************************************

usb_put_dev(dev->udev);

*********************************************************

usb_put_dev() 定义 struct usb_put_dev(struct usb_dev *dev)

                                {

                                    if(dev)

                                     put_device(&dev->dev);

                                 }

                                   EXPORT_SYMBOL_GPL(usb_put_dev);

好像 迷糊了。

抱歉!评论已关闭.