xref: /haiku/src/add-ons/kernel/drivers/input/usb_hid/Driver.h (revision 079eccf655ba39812b421ae1b87a727d41b50354)
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