cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hid-roccat-arvo.h (1630B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2#ifndef __HID_ROCCAT_ARVO_H
      3#define __HID_ROCCAT_ARVO_H
      4
      5/*
      6 * Copyright (c) 2011 Stefan Achatz <erazor_de@users.sourceforge.net>
      7 */
      8
      9/*
     10 */
     11
     12#include <linux/types.h>
     13
     14struct arvo_mode_key { /* 2 bytes */
     15	uint8_t command; /* ARVO_COMMAND_MODE_KEY */
     16	uint8_t state;
     17} __packed;
     18
     19struct arvo_button {
     20	uint8_t unknown[24];
     21} __packed;
     22
     23struct arvo_info {
     24	uint8_t unknown[8];
     25} __packed;
     26
     27struct arvo_key_mask { /* 2 bytes */
     28	uint8_t command; /* ARVO_COMMAND_KEY_MASK */
     29	uint8_t key_mask;
     30} __packed;
     31
     32/* selected profile is persistent */
     33struct arvo_actual_profile { /* 2 bytes */
     34	uint8_t command; /* ARVO_COMMAND_ACTUAL_PROFILE */
     35	uint8_t actual_profile;
     36} __packed;
     37
     38enum arvo_commands {
     39	ARVO_COMMAND_MODE_KEY = 0x3,
     40	ARVO_COMMAND_BUTTON = 0x4,
     41	ARVO_COMMAND_INFO = 0x5,
     42	ARVO_COMMAND_KEY_MASK = 0x6,
     43	ARVO_COMMAND_ACTUAL_PROFILE = 0x7,
     44};
     45
     46struct arvo_special_report {
     47	uint8_t unknown1; /* always 0x01 */
     48	uint8_t event;
     49	uint8_t unknown2; /* always 0x70 */
     50} __packed;
     51
     52enum arvo_special_report_events {
     53	ARVO_SPECIAL_REPORT_EVENT_ACTION_PRESS = 0x10,
     54	ARVO_SPECIAL_REPORT_EVENT_ACTION_RELEASE = 0x0,
     55};
     56
     57enum arvo_special_report_event_masks {
     58	ARVO_SPECIAL_REPORT_EVENT_MASK_ACTION = 0xf0,
     59	ARVO_SPECIAL_REPORT_EVENT_MASK_BUTTON = 0x0f,
     60};
     61
     62struct arvo_roccat_report {
     63	uint8_t profile;
     64	uint8_t button;
     65	uint8_t action;
     66} __packed;
     67
     68enum arvo_roccat_report_action {
     69	ARVO_ROCCAT_REPORT_ACTION_RELEASE = 0,
     70	ARVO_ROCCAT_REPORT_ACTION_PRESS = 1,
     71};
     72
     73struct arvo_device {
     74	int roccat_claimed;
     75	int chrdev_minor;
     76
     77	struct mutex arvo_lock;
     78
     79	int actual_profile;
     80};
     81
     82#endif