1 /* 2 Driver for USB Human Interface Devices. 3 Copyright (C) 2008 Michael Lotz <mmlr@mlotz.ch> 4 Distributed under the terms of the MIT license. 5 */ 6 #ifndef _USB_HID_DRIVER_H_ 7 #define _USB_HID_DRIVER_H_ 8 9 #include <Drivers.h> 10 #include <KernelExport.h> 11 #include <OS.h> 12 #include <USB3.h> 13 14 #include "DeviceList.h" 15 #include "kernel_cpp.h" 16 17 #define DRIVER_NAME "usb_hid" 18 19 #define USB_INTERFACE_CLASS_HID 3 20 #define USB_INTERFACE_SUBCLASS_HID_BOOT 1 21 #define USB_DEFAULT_CONFIGURATION 0 22 #define USB_VENDOR_WACOM 0x056a 23 24 #define USB_HID_DEVICE_TYPE_KEYBOARD 0x06090105 25 #define USB_HID_DEVICE_TYPE_MOUSE 0x02090105 26 27 extern usb_module_info *gUSBModule; 28 extern DeviceList *gDeviceList; 29 30 extern "C" { 31 status_t usb_hid_device_added(usb_device device, void **cookie); 32 status_t usb_hid_device_removed(void *cookie); 33 34 status_t init_hardware(); 35 void uninit_driver(); 36 const char ** publish_devices(); 37 device_hooks * find_device(const char *name); 38 } 39 40 #define TRACE(x...) /*dprintf(DRIVER_NAME ": " x)*/ 41 #define TRACE_ALWAYS(x...) dprintf(DRIVER_NAME ": " x) 42 43 #endif //_USB_HID_DRIVER_H_ 44