Home | History | Annotate | Line # | Download | only in hid
hid.h revision 1.2
      1  1.1  bouyer /*	$NetBSD: hid.h,v 1.2 2017/12/10 20:38:14 bouyer Exp $	*/
      2  1.1  bouyer /*	$FreeBSD: src/sys/dev/usb/hid.h,v 1.7 1999/11/17 22:33:40 n_hibma Exp $ */
      3  1.1  bouyer 
      4  1.1  bouyer /*
      5  1.1  bouyer  * Copyright (c) 1998 The NetBSD Foundation, Inc.
      6  1.1  bouyer  * All rights reserved.
      7  1.1  bouyer  *
      8  1.1  bouyer  * This code is derived from software contributed to The NetBSD Foundation
      9  1.1  bouyer  * by Lennart Augustsson (lennart (at) augustsson.net) at
     10  1.1  bouyer  * Carlstedt Research & Technology.
     11  1.1  bouyer  *
     12  1.1  bouyer  * Redistribution and use in source and binary forms, with or without
     13  1.1  bouyer  * modification, are permitted provided that the following conditions
     14  1.1  bouyer  * are met:
     15  1.1  bouyer  * 1. Redistributions of source code must retain the above copyright
     16  1.1  bouyer  *    notice, this list of conditions and the following disclaimer.
     17  1.1  bouyer  * 2. Redistributions in binary form must reproduce the above copyright
     18  1.1  bouyer  *    notice, this list of conditions and the following disclaimer in the
     19  1.1  bouyer  *    documentation and/or other materials provided with the distribution.
     20  1.1  bouyer  *
     21  1.1  bouyer  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
     22  1.1  bouyer  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
     23  1.1  bouyer  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
     24  1.1  bouyer  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
     25  1.1  bouyer  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
     26  1.1  bouyer  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
     27  1.1  bouyer  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
     28  1.1  bouyer  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
     29  1.1  bouyer  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
     30  1.1  bouyer  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
     31  1.1  bouyer  * POSSIBILITY OF SUCH DAMAGE.
     32  1.1  bouyer  */
     33  1.1  bouyer 
     34  1.1  bouyer #ifndef _HIDHID_H_
     35  1.1  bouyer #define _HIDHID_H_
     36  1.1  bouyer 
     37  1.2  bouyer #if defined(_KERNEL) || defined(_RUMPKERNEL)
     38  1.1  bouyer 
     39  1.1  bouyer enum hid_kind {
     40  1.1  bouyer 	hid_input,
     41  1.1  bouyer 	hid_output,
     42  1.1  bouyer 	hid_feature,
     43  1.1  bouyer 	hid_collection,
     44  1.1  bouyer 	hid_endcollection,
     45  1.1  bouyer 	hid_none
     46  1.1  bouyer };
     47  1.1  bouyer 
     48  1.1  bouyer struct hid_location {
     49  1.1  bouyer 	uint32_t size;
     50  1.1  bouyer 	uint32_t count;
     51  1.1  bouyer 	uint32_t pos;
     52  1.1  bouyer };
     53  1.1  bouyer 
     54  1.1  bouyer struct hid_item {
     55  1.1  bouyer 	/* Global */
     56  1.1  bouyer 	int32_t _usage_page;
     57  1.1  bouyer 	int32_t logical_minimum;
     58  1.1  bouyer 	int32_t logical_maximum;
     59  1.1  bouyer 	int32_t physical_minimum;
     60  1.1  bouyer 	int32_t physical_maximum;
     61  1.1  bouyer 	int32_t unit_exponent;
     62  1.1  bouyer 	int32_t unit;
     63  1.1  bouyer 	int32_t report_ID;
     64  1.1  bouyer 	/* Local */
     65  1.1  bouyer 	int32_t usage;
     66  1.1  bouyer 	int32_t usage_minimum;
     67  1.1  bouyer 	int32_t usage_maximum;
     68  1.1  bouyer 	int32_t designator_index;
     69  1.1  bouyer 	int32_t designator_minimum;
     70  1.1  bouyer 	int32_t designator_maximum;
     71  1.1  bouyer 	int32_t string_index;
     72  1.1  bouyer 	int32_t string_minimum;
     73  1.1  bouyer 	int32_t string_maximum;
     74  1.1  bouyer 	int32_t set_delimiter;
     75  1.1  bouyer 	/* Misc */
     76  1.1  bouyer 	int32_t collection;
     77  1.1  bouyer 	int collevel;
     78  1.1  bouyer 	enum hid_kind kind;
     79  1.1  bouyer 	uint32_t flags;
     80  1.1  bouyer 	/* Location */
     81  1.1  bouyer 	struct hid_location loc;
     82  1.1  bouyer 	/* */
     83  1.1  bouyer 	struct hid_item *next;
     84  1.1  bouyer };
     85  1.1  bouyer 
     86  1.1  bouyer struct hid_data *hid_start_parse(const void *, int, enum hid_kind);
     87  1.1  bouyer void hid_end_parse(struct hid_data *);
     88  1.1  bouyer int hid_get_item(struct hid_data *, struct hid_item *);
     89  1.1  bouyer int hid_report_size(const void *, int, enum hid_kind, uint8_t);
     90  1.1  bouyer int hid_locate(const void *, int, uint32_t, uint8_t, enum hid_kind,
     91  1.1  bouyer     struct hid_location *, uint32_t *);
     92  1.1  bouyer long hid_get_data(const u_char *, const struct hid_location *);
     93  1.1  bouyer u_long hid_get_udata(const u_char *, const struct hid_location *);
     94  1.1  bouyer int hid_is_collection(const void *, int, uint8_t, uint32_t);
     95  1.1  bouyer 
     96  1.2  bouyer #endif /* _KERNEL || _RUMPKERNEL */
     97  1.1  bouyer 
     98  1.1  bouyer /* Usage pages */
     99  1.1  bouyer #define HUP_UNDEFINED		0x0000
    100  1.1  bouyer #define HUP_GENERIC_DESKTOP	0x0001
    101  1.1  bouyer #define HUP_SIMULATION		0x0002
    102  1.1  bouyer #define HUP_VR_CONTROLS		0x0003
    103  1.1  bouyer #define HUP_SPORTS_CONTROLS	0x0004
    104  1.1  bouyer #define HUP_GAMING_CONTROLS	0x0005
    105  1.1  bouyer #define HUP_KEYBOARD		0x0007
    106  1.1  bouyer #define HUP_LEDS		0x0008
    107  1.1  bouyer #define HUP_BUTTON		0x0009
    108  1.1  bouyer #define HUP_ORDINALS		0x000a
    109  1.1  bouyer #define HUP_TELEPHONY		0x000b
    110  1.1  bouyer #define HUP_CONSUMER		0x000c
    111  1.1  bouyer #define HUP_DIGITIZERS		0x000d
    112  1.1  bouyer #define HUP_PHYSICAL_IFACE	0x000e
    113  1.1  bouyer #define HUP_UNICODE		0x0010
    114  1.1  bouyer #define HUP_ALPHANUM_DISPLAY	0x0014
    115  1.1  bouyer #define HUP_MONITOR		0x0080
    116  1.1  bouyer #define HUP_MONITOR_ENUM_VAL	0x0081
    117  1.1  bouyer #define HUP_VESA_VC		0x0082
    118  1.1  bouyer #define HUP_VESA_CMD		0x0083
    119  1.1  bouyer #define HUP_POWER		0x0084
    120  1.1  bouyer #define HUP_BATTERY		0x0085
    121  1.1  bouyer #define HUP_BARCODE_SCANNER	0x008b
    122  1.1  bouyer #define HUP_SCALE		0x008c
    123  1.1  bouyer #define HUP_CAMERA_CONTROL	0x0090
    124  1.1  bouyer #define HUP_ARCADE		0x0091
    125  1.1  bouyer #define HUP_VENDOR		0x00ff
    126  1.1  bouyer #define HUP_MICROSOFT		0xff00
    127  1.1  bouyer /* XXX compat */
    128  1.1  bouyer #define HUP_APPLE		0x00ff
    129  1.1  bouyer #define HUP_WACOM		0xff00
    130  1.1  bouyer 
    131  1.1  bouyer /* Usages, Power Device */
    132  1.1  bouyer #define HUP_INAME		0x0001
    133  1.1  bouyer #define HUP_PRESENT_STATUS	0x0002
    134  1.1  bouyer #define HUP_CHANGED_STATUS	0x0003
    135  1.1  bouyer #define HUP_UPS			0x0004
    136  1.1  bouyer #define HUP_POWER_SUPPLY	0x0005
    137  1.1  bouyer #define HUP_BATTERY_SYSTEM	0x0010
    138  1.1  bouyer #define HUP_BATTERY_SYSTEM_ID	0x0011
    139  1.1  bouyer #define HUP_PD_BATTERY		0x0012
    140  1.1  bouyer #define HUP_BATTERY_ID		0x0013
    141  1.1  bouyer #define HUP_CHARGER		0x0014
    142  1.1  bouyer #define HUP_CHARGER_ID		0x0015
    143  1.1  bouyer #define HUP_POWER_CONVERTER	0x0016
    144  1.1  bouyer #define HUP_POWER_CONVERTER_ID	0x0017
    145  1.1  bouyer #define HUP_OUTLET_SYSTEM	0x0018
    146  1.1  bouyer #define HUP_OUTLET_SYSTEM_ID	0x0019
    147  1.1  bouyer #define HUP_INPUT		0x001a
    148  1.1  bouyer #define HUP_INPUT_ID		0x001b
    149  1.1  bouyer #define HUP_OUTPUT		0x001c
    150  1.1  bouyer #define HUP_OUTPUT_ID		0x001d
    151  1.1  bouyer #define HUP_FLOW		0x001e
    152  1.1  bouyer #define HUP_FLOW_ID		0x001f
    153  1.1  bouyer #define HUP_OUTLET		0x0020
    154  1.1  bouyer #define HUP_OUTLET_ID		0x0021
    155  1.1  bouyer #define HUP_GANG		0x0022
    156  1.1  bouyer #define HUP_GANG_ID		0x0023
    157  1.1  bouyer #define HUP_POWER_SUMMARY	0x0024
    158  1.1  bouyer #define HUP_POWER_SUMMARY_ID	0x0025
    159  1.1  bouyer #define HUP_VOLTAGE		0x0030
    160  1.1  bouyer #define HUP_CURRENT		0x0031
    161  1.1  bouyer #define HUP_FREQUENCY		0x0032
    162  1.1  bouyer #define HUP_APPARENT_POWER	0x0033
    163  1.1  bouyer #define HUP_ACTIVE_POWER	0x0034
    164  1.1  bouyer #define HUP_PERCENT_LOAD	0x0035
    165  1.1  bouyer #define HUP_TEMPERATURE		0x0036
    166  1.1  bouyer #define HUP_HUMIDITY		0x0037
    167  1.1  bouyer #define HUP_BADCOUNT		0x0038
    168  1.1  bouyer #define HUP_CONFIG_VOLTAGE	0x0040
    169  1.1  bouyer #define HUP_CONFIG_CURRENT	0x0041
    170  1.1  bouyer #define HUP_CONFIG_FREQUENCY	0x0042
    171  1.1  bouyer #define HUP_CONFIG_APP_POWER	0x0043
    172  1.1  bouyer #define HUP_CONFIG_ACT_POWER	0x0044
    173  1.1  bouyer #define HUP_CONFIG_PERCENT_LOAD	0x0045
    174  1.1  bouyer #define HUP_CONFIG_TEMPERATURE	0x0046
    175  1.1  bouyer #define HUP_CONFIG_HUMIDITY	0x0047
    176  1.1  bouyer #define HUP_SWITCHON_CONTROL	0x0050
    177  1.1  bouyer #define HUP_SWITCHOFF_CONTROL	0x0051
    178  1.1  bouyer #define HUP_TOGGLE_CONTROL	0x0052
    179  1.1  bouyer #define HUP_LOW_VOLT_TRANSF	0x0053
    180  1.1  bouyer #define HUP_HIGH_VOLT_TRANSF	0x0054
    181  1.1  bouyer #define HUP_DELAYBEFORE_REBOOT	0x0055
    182  1.1  bouyer #define HUP_DELAYBEFORE_STARTUP	0x0056
    183  1.1  bouyer #define HUP_DELAYBEFORE_SHUTDWN	0x0057
    184  1.1  bouyer #define HUP_TEST		0x0058
    185  1.1  bouyer #define HUP_MODULE_RESET	0x0059
    186  1.1  bouyer #define HUP_AUDIBLE_ALRM_CTL	0x005a
    187  1.1  bouyer #define HUP_PRESENT		0x0060
    188  1.1  bouyer #define HUP_GOOD		0x0061
    189  1.1  bouyer #define HUP_INTERNAL_FAILURE	0x0062
    190  1.1  bouyer #define HUP_PD_VOLT_OUTOF_RANGE	0x0063
    191  1.1  bouyer #define HUP_FREQ_OUTOFRANGE	0x0064
    192  1.1  bouyer #define HUP_OVERLOAD		0x0065
    193  1.1  bouyer #define HUP_OVERCHARGED		0x0066
    194  1.1  bouyer #define HUP_OVERTEMPERATURE	0x0067
    195  1.1  bouyer #define HUP_SHUTDOWN_REQUESTED	0x0068
    196  1.1  bouyer #define HUP_SHUTDOWN_IMMINENT	0x0069
    197  1.1  bouyer #define HUP_SWITCH_ON_OFF	0x006b
    198  1.1  bouyer #define HUP_SWITCHABLE		0x006c
    199  1.1  bouyer #define HUP_USED		0x006d
    200  1.1  bouyer #define HUP_BOOST		0x006e
    201  1.1  bouyer #define HUP_BUCK		0x006f
    202  1.1  bouyer #define HUP_INITIALIZED		0x0070
    203  1.1  bouyer #define HUP_TESTED		0x0071
    204  1.1  bouyer #define HUP_AWAITING_POWER	0x0072
    205  1.1  bouyer #define HUP_COMMUNICATION_LOST	0x0073
    206  1.1  bouyer #define HUP_IMANUFACTURER	0x00fd
    207  1.1  bouyer #define HUP_IPRODUCT		0x00fe
    208  1.1  bouyer #define HUP_ISERIALNUMBER	0x00ff
    209  1.1  bouyer 
    210  1.1  bouyer /* Usages, Battery */
    211  1.1  bouyer #define HUB_SMB_BATTERY_MODE	0x0001
    212  1.1  bouyer #define HUB_SMB_BATTERY_STATUS	0x0002
    213  1.1  bouyer #define HUB_SMB_ALARM_WARNING	0x0003
    214  1.1  bouyer #define HUB_SMB_CHARGER_MODE	0x0004
    215  1.1  bouyer #define HUB_SMB_CHARGER_STATUS	0x0005
    216  1.1  bouyer #define HUB_SMB_CHARGER_SPECINF	0x0006
    217  1.1  bouyer #define HUB_SMB_SELECTR_STATE	0x0007
    218  1.1  bouyer #define HUB_SMB_SELECTR_PRESETS	0x0008
    219  1.1  bouyer #define HUB_SMB_SELECTR_INFO	0x0009
    220  1.1  bouyer #define HUB_SMB_OPT_MFGFUNC1	0x0010
    221  1.1  bouyer #define HUB_SMB_OPT_MFGFUNC2	0x0011
    222  1.1  bouyer #define HUB_SMB_OPT_MFGFUNC3	0x0012
    223  1.1  bouyer #define HUB_SMB_OPT_MFGFUNC4	0x0013
    224  1.1  bouyer #define HUB_SMB_OPT_MFGFUNC5	0x0014
    225  1.1  bouyer #define HUB_CONNECTIONTOSMBUS	0x0015
    226  1.1  bouyer #define HUB_OUTPUT_CONNECTION	0x0016
    227  1.1  bouyer #define HUB_CHARGER_CONNECTION	0x0017
    228  1.1  bouyer #define HUB_BATTERY_INSERTION	0x0018
    229  1.1  bouyer #define HUB_USENEXT		0x0019
    230  1.1  bouyer #define HUB_OKTOUSE		0x001a
    231  1.1  bouyer #define HUB_BATTERY_SUPPORTED	0x001b
    232  1.1  bouyer #define HUB_SELECTOR_REVISION	0x001c
    233  1.1  bouyer #define HUB_CHARGING_INDICATOR	0x001d
    234  1.1  bouyer #define HUB_MANUFACTURER_ACCESS	0x0028
    235  1.1  bouyer #define HUB_REM_CAPACITY_LIM	0x0029
    236  1.1  bouyer #define HUB_REM_TIME_LIM	0x002a
    237  1.1  bouyer #define HUB_ATRATE		0x002b
    238  1.1  bouyer #define HUB_CAPACITY_MODE	0x002c
    239  1.1  bouyer #define HUB_BCAST_TO_CHARGER	0x002d
    240  1.1  bouyer #define HUB_PRIMARY_BATTERY	0x002e
    241  1.1  bouyer #define HUB_CHANGE_CONTROLLER	0x002f
    242  1.1  bouyer #define HUB_TERMINATE_CHARGE	0x0040
    243  1.1  bouyer #define HUB_TERMINATE_DISCHARGE	0x0041
    244  1.1  bouyer #define HUB_BELOW_REM_CAP_LIM	0x0042
    245  1.1  bouyer #define HUB_REM_TIME_LIM_EXP	0x0043
    246  1.1  bouyer #define HUB_CHARGING		0x0044
    247  1.1  bouyer #define HUB_DISCHARGING		0x0045
    248  1.1  bouyer #define HUB_FULLY_CHARGED	0x0046
    249  1.1  bouyer #define HUB_FULLY_DISCHARGED	0x0047
    250  1.1  bouyer #define HUB_CONDITIONING_FLAG	0x0048
    251  1.1  bouyer #define HUB_ATRATE_OK		0x0049
    252  1.1  bouyer #define HUB_SMB_ERROR_CODE	0x004a
    253  1.1  bouyer #define HUB_NEED_REPLACEMENT	0x004b
    254  1.1  bouyer #define HUB_ATRATE_TIMETOFULL	0x0060
    255  1.1  bouyer #define HUB_ATRATE_TIMETOEMPTY	0x0061
    256  1.1  bouyer #define HUB_AVERAGE_CURRENT	0x0062
    257  1.1  bouyer #define HUB_MAXERROR		0x0063
    258  1.1  bouyer #define HUB_REL_STATEOF_CHARGE	0x0064
    259  1.1  bouyer #define HUB_ABS_STATEOF_CHARGE	0x0065
    260  1.1  bouyer #define HUB_REM_CAPACITY	0x0066
    261  1.1  bouyer #define HUB_FULLCHARGE_CAPACITY	0x0067
    262  1.1  bouyer #define HUB_RUNTIMETO_EMPTY	0x0068
    263  1.1  bouyer #define HUB_AVERAGETIMETO_EMPTY	0x0069
    264  1.1  bouyer #define HUB_AVERAGETIMETO_FULL	0x006a
    265  1.1  bouyer #define HUB_CYCLECOUNT		0x006b
    266  1.1  bouyer #define HUB_BATTPACKMODEL_LEVEL	0x0080
    267  1.1  bouyer #define HUB_INTERNAL_CHARGE_CTL	0x0081
    268  1.1  bouyer #define HUB_PRIMARY_BATTERY_SUP	0x0082
    269  1.1  bouyer #define HUB_DESIGN_CAPACITY	0x0083
    270  1.1  bouyer #define HUB_SPECIFICATION_INFO	0x0084
    271  1.1  bouyer #define HUB_MANUFACTURER_DATE	0x0085
    272  1.1  bouyer #define HUB_SERIAL_NUMBER	0x0086
    273  1.1  bouyer #define HUB_IMANUFACTURERNAME	0x0087
    274  1.1  bouyer #define HUB_IDEVICENAME		0x0088
    275  1.1  bouyer #define HUB_IDEVICECHEMISTERY	0x0089
    276  1.1  bouyer #define HUB_MANUFACTURERDATA	0x008a
    277  1.1  bouyer #define HUB_RECHARGABLE		0x008b
    278  1.1  bouyer #define HUB_WARN_CAPACITY_LIM	0x008c
    279  1.1  bouyer #define HUB_CAPACITY_GRANUL1	0x008d
    280  1.1  bouyer #define HUB_CAPACITY_GRANUL2	0x008e
    281  1.1  bouyer #define HUB_IOEM_INFORMATION	0x008f
    282  1.1  bouyer #define HUB_INHIBIT_CHARGE	0x00c0
    283  1.1  bouyer #define HUB_ENABLE_POLLING	0x00c1
    284  1.1  bouyer #define HUB_RESTORE_TO_ZERO	0x00c2
    285  1.1  bouyer #define HUB_AC_PRESENT		0x00d0
    286  1.1  bouyer #define HUB_BATTERY_PRESENT	0x00d1
    287  1.1  bouyer #define HUB_POWER_FAIL		0x00d2
    288  1.1  bouyer #define HUB_ALARM_INHIBITED	0x00d3
    289  1.1  bouyer #define HUB_THERMISTOR_UNDRANGE	0x00d4
    290  1.1  bouyer #define HUB_THERMISTOR_HOT	0x00d5
    291  1.1  bouyer #define HUB_THERMISTOR_COLD	0x00d6
    292  1.1  bouyer #define HUB_THERMISTOR_OVERANGE	0x00d7
    293  1.1  bouyer #define HUB_BS_VOLT_OUTOF_RANGE	0x00d8
    294  1.1  bouyer #define HUB_BS_CURR_OUTOF_RANGE	0x00d9
    295  1.1  bouyer #define HUB_BS_CURR_NOT_REGULTD	0x00da
    296  1.1  bouyer #define HUB_BS_VOLT_NOT_REGULTD	0x00db
    297  1.1  bouyer #define HUB_MASTER_MODE		0x00dc
    298  1.1  bouyer #define HUB_CHARGER_SELECTR_SUP	0x00f0
    299  1.1  bouyer #define HUB_CHARGER_SPEC	0x00f1
    300  1.1  bouyer #define HUB_LEVEL2		0x00f2
    301  1.1  bouyer #define HUB_LEVEL3		0x00f3
    302  1.1  bouyer 
    303  1.1  bouyer /* Usages, generic desktop */
    304  1.1  bouyer #define HUG_POINTER		0x0001
    305  1.1  bouyer #define HUG_MOUSE		0x0002
    306  1.1  bouyer #define HUG_FN_KEY		0x0003
    307  1.1  bouyer #define HUG_JOYSTICK		0x0004
    308  1.1  bouyer #define HUG_GAME_PAD		0x0005
    309  1.1  bouyer #define HUG_KEYBOARD		0x0006
    310  1.1  bouyer #define HUG_KEYPAD		0x0007
    311  1.1  bouyer #define HUG_X			0x0030
    312  1.1  bouyer #define HUG_Y			0x0031
    313  1.1  bouyer #define HUG_Z			0x0032
    314  1.1  bouyer #define HUG_RX			0x0033
    315  1.1  bouyer #define HUG_RY			0x0034
    316  1.1  bouyer #define HUG_RZ			0x0035
    317  1.1  bouyer #define HUG_SLIDER		0x0036
    318  1.1  bouyer #define HUG_DIAL		0x0037
    319  1.1  bouyer #define HUG_WHEEL		0x0038
    320  1.1  bouyer #define HUG_HAT_SWITCH		0x0039
    321  1.1  bouyer #define HUG_COUNTED_BUFFER	0x003a
    322  1.1  bouyer #define HUG_BYTE_COUNT		0x003b
    323  1.1  bouyer #define HUG_MOTION_WAKEUP	0x003c
    324  1.1  bouyer #define HUG_VX			0x0040
    325  1.1  bouyer #define HUG_VY			0x0041
    326  1.1  bouyer #define HUG_VZ			0x0042
    327  1.1  bouyer #define HUG_VBRX		0x0043
    328  1.1  bouyer #define HUG_VBRY		0x0044
    329  1.1  bouyer #define HUG_VBRZ		0x0045
    330  1.1  bouyer #define HUG_VNO			0x0046
    331  1.1  bouyer #define HUG_TWHEEL		0x0048
    332  1.1  bouyer #define HUG_SYSTEM_CONTROL	0x0080
    333  1.1  bouyer #define HUG_SYSTEM_POWER_DOWN	0x0081
    334  1.1  bouyer #define HUG_SYSTEM_SLEEP	0x0082
    335  1.1  bouyer #define HUG_SYSTEM_WAKEUP	0x0083
    336  1.1  bouyer #define HUG_SYSTEM_CONTEXT_MENU	0x0084
    337  1.1  bouyer #define HUG_SYSTEM_MAIN_MENU	0x0085
    338  1.1  bouyer #define HUG_SYSTEM_APP_MENU	0x0086
    339  1.1  bouyer #define HUG_SYSTEM_MENU_HELP	0x0087
    340  1.1  bouyer #define HUG_SYSTEM_MENU_EXIT	0x0088
    341  1.1  bouyer #define HUG_SYSTEM_MENU_SELECT	0x0089
    342  1.1  bouyer #define HUG_SYSTEM_MENU_RIGHT	0x008a
    343  1.1  bouyer #define HUG_SYSTEM_MENU_LEFT	0x008b
    344  1.1  bouyer #define HUG_SYSTEM_MENU_UP	0x008c
    345  1.1  bouyer #define HUG_SYSTEM_MENU_DOWN	0x008d
    346  1.1  bouyer 
    347  1.1  bouyer /* Usages, Digitizers */
    348  1.1  bouyer #define HUD_UNDEFINED		0x0000
    349  1.1  bouyer #define HUD_DIGITIZER		0x0001
    350  1.1  bouyer #define HUD_PEN			0x0002
    351  1.1  bouyer #define HUD_TOUCH_SCREEN	0x0004
    352  1.1  bouyer #define HUD_TOUCHPAD		0x0005
    353  1.1  bouyer #define HUD_CONFIG		0x000e
    354  1.1  bouyer #define HUD_FINGER		0x0022
    355  1.1  bouyer #define HUD_TIP_PRESSURE	0x0030
    356  1.1  bouyer #define HUD_BARREL_PRESSURE	0x0031
    357  1.1  bouyer #define HUD_IN_RANGE		0x0032
    358  1.1  bouyer #define HUD_TOUCH		0x0033
    359  1.1  bouyer #define HUD_UNTOUCH		0x0034
    360  1.1  bouyer #define HUD_TAP			0x0035
    361  1.1  bouyer #define HUD_QUALITY		0x0036
    362  1.1  bouyer #define HUD_DATA_VALID		0x0037
    363  1.1  bouyer #define HUD_TRANSDUCER_INDEX	0x0038
    364  1.1  bouyer #define HUD_TABLET_FKEYS	0x0039
    365  1.1  bouyer #define HUD_PROGRAM_CHANGE_KEYS	0x003a
    366  1.1  bouyer #define HUD_BATTERY_STRENGTH	0x003b
    367  1.1  bouyer #define HUD_INVERT		0x003c
    368  1.1  bouyer #define HUD_X_TILT		0x003d
    369  1.1  bouyer #define HUD_Y_TILT		0x003e
    370  1.1  bouyer #define HUD_AZIMUTH		0x003f
    371  1.1  bouyer #define HUD_ALTITUDE		0x0040
    372  1.1  bouyer #define HUD_TWIST		0x0041
    373  1.1  bouyer #define HUD_TIP_SWITCH		0x0042
    374  1.1  bouyer #define HUD_SEC_TIP_SWITCH	0x0043
    375  1.1  bouyer #define HUD_BARREL_SWITCH	0x0044
    376  1.1  bouyer #define HUD_ERASER		0x0045
    377  1.1  bouyer #define HUD_TABLET_PICK		0x0046
    378  1.1  bouyer #define HUD_CONFIDENCE		0x0047
    379  1.1  bouyer #define HUD_WIDTH		0x0048
    380  1.1  bouyer #define HUD_HEIGHT		0x0049
    381  1.1  bouyer #define HUD_CONTACTID		0x0051
    382  1.1  bouyer #define HUD_INPUT_MODE		0x0052
    383  1.1  bouyer #define HUD_DEVICE_INDEX	0x0053
    384  1.1  bouyer #define HUD_CONTACTCOUNT	0x0054
    385  1.1  bouyer #define HUD_CONTACT_MAX		0x0055
    386  1.1  bouyer #define HUD_SCAN_TIME		0x0056
    387  1.1  bouyer #define HUD_BUTTON_TYPE		0x0059
    388  1.1  bouyer 
    389  1.1  bouyer /* Usages, LED */
    390  1.1  bouyer #define HUD_LED_NUM_LOCK	0x0001
    391  1.1  bouyer #define HUD_LED_CAPS_LOCK	0x0002
    392  1.1  bouyer #define HUD_LED_SCROLL_LOCK	0x0003
    393  1.1  bouyer #define HUD_LED_COMPOSE		0x0004
    394  1.1  bouyer #define HUD_LED_KANA		0x0005
    395  1.1  bouyer 
    396  1.1  bouyer /* Usages, Consumer */
    397  1.1  bouyer #define HUC_AC_PAN		0x0238
    398  1.1  bouyer 
    399  1.1  bouyer #define HID_USAGE2(p, u) (((p) << 16) | u)
    400  1.1  bouyer #define HID_GET_USAGE(u) ((u) & 0xffff)
    401  1.1  bouyer #define HID_GET_USAGE_PAGE(u) (((u) >> 16) & 0xffff)
    402  1.1  bouyer 
    403  1.1  bouyer #define HCOLL_PHYSICAL		0
    404  1.1  bouyer #define HCOLL_APPLICATION	1
    405  1.1  bouyer #define HCOLL_LOGICAL		2
    406  1.1  bouyer 
    407  1.1  bouyer /* Bits in the input/output/feature items */
    408  1.1  bouyer #define HIO_CONST	0x001
    409  1.1  bouyer #define HIO_VARIABLE	0x002
    410  1.1  bouyer #define HIO_RELATIVE	0x004
    411  1.1  bouyer #define HIO_WRAP	0x008
    412  1.1  bouyer #define HIO_NONLINEAR	0x010
    413  1.1  bouyer #define HIO_NOPREF	0x020
    414  1.1  bouyer #define HIO_NULLSTATE	0x040
    415  1.1  bouyer #define HIO_VOLATILE	0x080
    416  1.1  bouyer #define HIO_BUFBYTES	0x100
    417  1.1  bouyer 
    418  1.1  bouyer /* Valid values for the country codes */
    419  1.1  bouyer #define	HCC_UNDEFINED	0x00
    420  1.1  bouyer #define	HCC_MAX		0x23
    421  1.1  bouyer 
    422  1.1  bouyer #endif /* _HIDHID_H_ */
    423