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
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
24extern usb_module_info *gUSBModule;
25extern DeviceList *gDeviceList;
26
27extern "C" {
28status_t		usb_hid_device_added(usb_device device, void **cookie);
29status_t		usb_hid_device_removed(void *cookie);
30
31status_t		init_hardware();
32void			uninit_driver();
33const char **	publish_devices();
34device_hooks *	find_device(const char *name);
35}
36
37#define	TRACE(x...)			/*dprintf(DRIVER_NAME ": " x)*/
38#define TRACE_ALWAYS(x...)	dprintf(DRIVER_NAME ": " x)
39
40#endif //_USB_HID_DRIVER_H_
41