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#include <util/kernel_cpp.h>
14
15#include "DeviceList.h"
16
17#define DRIVER_NAME	"usb_hid"
18#define DEVICE_PATH_SUFFIX	"usb"
19#define DEVICE_NAME	"USB"
20
21#define USB_INTERFACE_CLASS_HID			3
22#define USB_INTERFACE_SUBCLASS_HID_BOOT	1
23#define USB_DEFAULT_CONFIGURATION		0
24#define USB_VENDOR_WACOM				0x056a
25
26extern usb_module_info *gUSBModule;
27extern DeviceList *gDeviceList;
28
29extern "C" {
30status_t		usb_hid_device_added(usb_device device, void **cookie);
31status_t		usb_hid_device_removed(void *cookie);
32
33status_t		init_hardware();
34void			uninit_driver();
35const char **	publish_devices();
36device_hooks *	find_device(const char *name);
37}
38
39#define	TRACE(x...)			/*dprintf(DRIVER_NAME ": " x)*/
40#define TRACE_ALWAYS(x...)	dprintf(DRIVER_NAME ": " x)
41
42#endif //_USB_HID_DRIVER_H_
43