Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
hid
hid-roccat-arvo.h
Go to the documentation of this file.
1
#ifndef __HID_ROCCAT_ARVO_H
2
#define __HID_ROCCAT_ARVO_H
3
4
/*
5
* Copyright (c) 2011 Stefan Achatz <
[email protected]
>
6
*/
7
8
/*
9
* This program is free software; you can redistribute it and/or modify it
10
* under the terms of the GNU General Public License as published by the Free
11
* Software Foundation; either version 2 of the License, or (at your option)
12
* any later version.
13
*/
14
15
#include <linux/types.h>
16
17
struct
arvo_mode_key
{
/* 2 bytes */
18
uint8_t
command
;
/* ARVO_COMMAND_MODE_KEY */
19
uint8_t
state
;
20
}
__packed
;
21
22
struct
arvo_button
{
23
uint8_t
unknown
[24];
24
}
__packed
;
25
26
struct
arvo_info
{
27
uint8_t
unknown
[8];
28
}
__packed
;
29
30
struct
arvo_key_mask
{
/* 2 bytes */
31
uint8_t
command
;
/* ARVO_COMMAND_KEY_MASK */
32
uint8_t
key_mask
;
33
}
__packed
;
34
35
/* selected profile is persistent */
36
struct
arvo_actual_profile
{
/* 2 bytes */
37
uint8_t
command
;
/* ARVO_COMMAND_ACTUAL_PROFILE */
38
uint8_t
actual_profile
;
39
}
__packed
;
40
41
enum
arvo_commands
{
42
ARVO_COMMAND_MODE_KEY
= 0x3,
43
ARVO_COMMAND_BUTTON
= 0x4,
44
ARVO_COMMAND_INFO
= 0x5,
45
ARVO_COMMAND_KEY_MASK
= 0x6,
46
ARVO_COMMAND_ACTUAL_PROFILE
= 0x7,
47
};
48
49
struct
arvo_special_report
{
50
uint8_t
unknown1
;
/* always 0x01 */
51
uint8_t
event
;
52
uint8_t
unknown2
;
/* always 0x70 */
53
}
__packed
;
54
55
enum
arvo_special_report_events
{
56
ARVO_SPECIAL_REPORT_EVENT_ACTION_PRESS
= 0x10,
57
ARVO_SPECIAL_REPORT_EVENT_ACTION_RELEASE
= 0x0,
58
};
59
60
enum
arvo_special_report_event_masks
{
61
ARVO_SPECIAL_REPORT_EVENT_MASK_ACTION
= 0xf0,
62
ARVO_SPECIAL_REPORT_EVENT_MASK_BUTTON
= 0x0f,
63
};
64
65
struct
arvo_roccat_report
{
66
uint8_t
profile
;
67
uint8_t
button
;
68
uint8_t
action
;
69
}
__packed
;
70
71
enum
arvo_roccat_report_action
{
72
ARVO_ROCCAT_REPORT_ACTION_RELEASE
= 0,
73
ARVO_ROCCAT_REPORT_ACTION_PRESS
= 1,
74
};
75
76
struct
arvo_device
{
77
int
roccat_claimed
;
78
int
chrdev_minor
;
79
80
struct
mutex
arvo_lock
;
81
82
int
actual_profile
;
83
};
84
85
#endif
Generated on Thu Jan 10 2013 13:34:10 for Linux Kernel by
1.8.2