Linux驱动开发:USB驱动之usb(4)

.owner = THIS_MODULE,          //指向该驱动程序的模块所有者的批针。USB核心使用它来正确地对该USB驱动程序进行引用计数,使它不会在不合适的时刻被卸载掉,这个变量应该被设置为THIS_MODULE宏。

.name = "skeleton",                 //指向驱动程序名字的指针,在内核的所有USB驱动程序中它必须是唯一的,通常被设置为和驱动程序模块名相同的名字。

.probe = skel_probe,             //这个是指向USB驱动程序中的探测函数的指针。当USB核心认为它有一个接口(usb_interface)可以由该驱动程序处理时,这个函数被调用。

.disconnect = skel_disconnect,          //指向USB驱动程序中的断开函数的指针,当一个USB接口(usb_interface)被从系统中移除或者驱动程序正在从USB核心中卸载时,USB核心将调用这个函数。

.id_table = skel_table,          //指向ID设备表的指针,这个表包含了一列该驱动程序可以支持的USB设备,如果没有设置这个变量,USB驱动程序中的探测回调函数就不会被调用。
};

//1、入口函数

static int __init usb_skel_init(void)

{

int result;

/* 驱动程序注册到USB子系统中*/
        result = usb_register(&skel_driver);

if (result)

err("usb_register failed. Error number %d", result);

return result;

}

//2、出口函数

static void __exit usb_skel_exit(void)

{

/* 从子系统注销驱动程序 */
        usb_deregister(&skel_driver);

}

//3、注册到内核

module_init(usb_skel_init);

module_exit(usb_skel_exit);

MODULE_LICENSE("GPL");

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wywgsz.html