#ifndef __HID_ROCCAT_COMMON_H
#define __HID_ROCCAT_COMMON_H
#include <linux/usb.h>
#include <linux/types.h>
enum roccat_common2_commands { … };
struct roccat_common2_control { … } __packed;
int roccat_common2_receive(struct usb_device *usb_dev, uint report_id,
void *data, uint size);
int roccat_common2_send(struct usb_device *usb_dev, uint report_id,
void const *data, uint size);
int roccat_common2_send_with_status(struct usb_device *usb_dev,
uint command, void const *buf, uint size);
struct roccat_common2_device { … };
int roccat_common2_device_init_struct(struct usb_device *usb_dev,
struct roccat_common2_device *dev);
ssize_t roccat_common2_sysfs_read(struct file *fp, struct kobject *kobj,
char *buf, loff_t off, size_t count,
size_t real_size, uint command);
ssize_t roccat_common2_sysfs_write(struct file *fp, struct kobject *kobj,
void const *buf, loff_t off, size_t count,
size_t real_size, uint command);
#define ROCCAT_COMMON2_SYSFS_W(thingy, COMMAND, SIZE) …
#define ROCCAT_COMMON2_SYSFS_R(thingy, COMMAND, SIZE) …
#define ROCCAT_COMMON2_SYSFS_RW(thingy, COMMAND, SIZE) …
#define ROCCAT_COMMON2_BIN_ATTRIBUTE_RW(thingy, COMMAND, SIZE) …
#define ROCCAT_COMMON2_BIN_ATTRIBUTE_R(thingy, COMMAND, SIZE) …
#define ROCCAT_COMMON2_BIN_ATTRIBUTE_W(thingy, COMMAND, SIZE) …
#endif