#include <linux/device.h>
#include <linux/input.h>
#include <linux/hid.h>
#include <linux/module.h>
#include <linux/slab.h>
#include "hid-ids.h"
#define A4_2WHEEL_MOUSE_HACK_7 …
#define A4_2WHEEL_MOUSE_HACK_B8 …
#define A4_WHEEL_ORIENTATION …
struct a4tech_sc { … };
static int a4_input_mapping(struct hid_device *hdev, struct hid_input *hi,
struct hid_field *field, struct hid_usage *usage,
unsigned long **bit, int *max)
{ … }
static int a4_input_mapped(struct hid_device *hdev, struct hid_input *hi,
struct hid_field *field, struct hid_usage *usage,
unsigned long **bit, int *max)
{ … }
static int a4_event(struct hid_device *hdev, struct hid_field *field,
struct hid_usage *usage, __s32 value)
{ … }
static int a4_probe(struct hid_device *hdev, const struct hid_device_id *id)
{ … }
static const struct hid_device_id a4_devices[] = …;
MODULE_DEVICE_TABLE(hid, a4_devices);
static struct hid_driver a4_driver = …;
module_hid_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;