内核所用到的头文件都保存在include/目錄下为了方便使用和兼容性,Linus在编制内核程序头文件时所使用的命名方式与标准C库头文件的命名方式相似,在一个Linux系统中它们与标准库嘚头文件并存。通常的做法是将这些头文件放置在标准库头文件目录中的子目录下以让需要用到内核数据结构或常数的程序使用。在Linux系統中列表14-1中的asm/、linux/和sys/三个子目录下的内核头文件通常需要复制到标准C库头文件所在的目录(/usr/include)中,而其他一些文件若与标准库的头文件没有冲突则可以直接放到标准库头文件目录下或者改放到这里的三个子目录中 MODULE_DEVICE_TABLE的第一个参数是没有usb设备什么意思的类型,如果是USB没有usb设备什么意思那自然是usb(如果是PCI没有usb设备什么意思,那将是pci这两个子系统用同一个宏来注册所支持的没有usb设备什么意思。这涉及PCI没有usb设备什么意思的驱动了在此先不深究)。后面一个参数是没有usb设备什么意思表这个没有usb设备什么意思表的最后一个元素是空的,用于标识结束代码定义了USB_SKEL_VENDOR_ID是0xfff0,USB_SKEL_PRODUCT_ID是0xfff0也就是说,当有一个没有usb设备什么意思接到集线器时usb子系统就会检查这个没有usb设备什么意思的vendor ID和product ID,如果它们的值昰0xfff0时那么子系统就会调用这个skeleton模块作为没有usb设备什么意思的驱动。*/
/*大多数usb驱动都会涉及另外一个驱动系统如scsi,网络或者tty子系统这些驱动程序在其他驱动系统中注册,同时任何用户空间的交互操作都有那些接口提供如把usb的驱动同时向csi注册,那么usb的read,write函数的操作就会调用scsi的read,write函数进行操作但是对于扫描儀等驱动程序来说,并没有一个合适的驱动系统可以使用那么就要自己处理于用户空间交互的read,write函数。usb子系统提供一种方法去注册一个次沒有usb设备什么意思号和一个file_operation函数指针这样就可以与用户空间实现交互的访问。这个方法就是usb_class_driver,他提供了次没有usb设备什么意思号,文件接口devfs接口等。而usb_class_driver中的file_operations中就存放着内核与用户空间进行交互的函数指针*/
//将没有usb设备什么意思信息报存在接口结构中,(就是向系统注册一些以后会用的的信息首先我们来说明一下usb_set_intfdata(),他向内核注册一个data这个data的结构可以是任意的,這段程序向内核注册了一个usb_skel结构就是我们刚刚看到的被初始化的那个,这个data可以在以后用usb_get_intfdata来得到,) |
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。