Linux Kernel Mudule Programming. Mainly USB Drivers and Other Kernel Modules