77 lines · c
1#ifndef _LINUX_VIRTIO_INPUT_H2#define _LINUX_VIRTIO_INPUT_H3/* This header is BSD licensed so anyone can use the definitions to implement4 * compatible drivers/servers.5 *6 * Redistribution and use in source and binary forms, with or without7 * modification, are permitted provided that the following conditions8 * are met:9 * 1. Redistributions of source code must retain the above copyright10 * notice, this list of conditions and the following disclaimer.11 * 2. Redistributions in binary form must reproduce the above copyright12 * notice, this list of conditions and the following disclaimer in the13 * documentation and/or other materials provided with the distribution.14 * 3. Neither the name of IBM nor the names of its contributors15 * may be used to endorse or promote products derived from this software16 * without specific prior written permission.17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS18 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT19 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS20 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IBM OR21 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,22 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT23 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF24 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND25 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,26 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT27 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF28 * SUCH DAMAGE. */29 30#include <linux/types.h>31 32enum virtio_input_config_select {33 VIRTIO_INPUT_CFG_UNSET = 0x00,34 VIRTIO_INPUT_CFG_ID_NAME = 0x01,35 VIRTIO_INPUT_CFG_ID_SERIAL = 0x02,36 VIRTIO_INPUT_CFG_ID_DEVIDS = 0x03,37 VIRTIO_INPUT_CFG_PROP_BITS = 0x10,38 VIRTIO_INPUT_CFG_EV_BITS = 0x11,39 VIRTIO_INPUT_CFG_ABS_INFO = 0x12,40};41 42struct virtio_input_absinfo {43 __le32 min;44 __le32 max;45 __le32 fuzz;46 __le32 flat;47 __le32 res;48};49 50struct virtio_input_devids {51 __le16 bustype;52 __le16 vendor;53 __le16 product;54 __le16 version;55};56 57struct virtio_input_config {58 __u8 select;59 __u8 subsel;60 __u8 size;61 __u8 reserved[5];62 union {63 char string[128];64 __u8 bitmap[128];65 struct virtio_input_absinfo abs;66 struct virtio_input_devids ids;67 } u;68};69 70struct virtio_input_event {71 __le16 type;72 __le16 code;73 __le32 value;74};75 76#endif /* _LINUX_VIRTIO_INPUT_H */77