1271c8651SGerd Hoffmann #ifndef _LINUX_VIRTIO_INPUT_H 2271c8651SGerd Hoffmann #define _LINUX_VIRTIO_INPUT_H 3271c8651SGerd Hoffmann /* This header is BSD licensed so anyone can use the definitions to implement 4271c8651SGerd Hoffmann * compatible drivers/servers. 5271c8651SGerd Hoffmann * 6271c8651SGerd Hoffmann * Redistribution and use in source and binary forms, with or without 7271c8651SGerd Hoffmann * modification, are permitted provided that the following conditions 8271c8651SGerd Hoffmann * are met: 9271c8651SGerd Hoffmann * 1. Redistributions of source code must retain the above copyright 10271c8651SGerd Hoffmann * notice, this list of conditions and the following disclaimer. 11271c8651SGerd Hoffmann * 2. Redistributions in binary form must reproduce the above copyright 12271c8651SGerd Hoffmann * notice, this list of conditions and the following disclaimer in the 13271c8651SGerd Hoffmann * documentation and/or other materials provided with the distribution. 14271c8651SGerd Hoffmann * 3. Neither the name of IBM nor the names of its contributors 15271c8651SGerd Hoffmann * may be used to endorse or promote products derived from this software 16271c8651SGerd Hoffmann * without specific prior written permission. 17271c8651SGerd Hoffmann * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18271c8651SGerd Hoffmann * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19271c8651SGerd Hoffmann * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 20271c8651SGerd Hoffmann * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IBM OR 21271c8651SGerd Hoffmann * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 22271c8651SGerd Hoffmann * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 23271c8651SGerd Hoffmann * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 24271c8651SGerd Hoffmann * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 25271c8651SGerd Hoffmann * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 26271c8651SGerd Hoffmann * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 27271c8651SGerd Hoffmann * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 28271c8651SGerd Hoffmann * SUCH DAMAGE. */ 29271c8651SGerd Hoffmann 30271c8651SGerd Hoffmann #include <linux/types.h> 31271c8651SGerd Hoffmann 32271c8651SGerd Hoffmann enum virtio_input_config_select { 33271c8651SGerd Hoffmann VIRTIO_INPUT_CFG_UNSET = 0x00, 34271c8651SGerd Hoffmann VIRTIO_INPUT_CFG_ID_NAME = 0x01, 35271c8651SGerd Hoffmann VIRTIO_INPUT_CFG_ID_SERIAL = 0x02, 36271c8651SGerd Hoffmann VIRTIO_INPUT_CFG_ID_DEVIDS = 0x03, 37271c8651SGerd Hoffmann VIRTIO_INPUT_CFG_PROP_BITS = 0x10, 38271c8651SGerd Hoffmann VIRTIO_INPUT_CFG_EV_BITS = 0x11, 39271c8651SGerd Hoffmann VIRTIO_INPUT_CFG_ABS_INFO = 0x12, 40271c8651SGerd Hoffmann }; 41271c8651SGerd Hoffmann 42271c8651SGerd Hoffmann struct virtio_input_absinfo { 43*924b59a6SMichael S. Tsirkin __le32 min; 44*924b59a6SMichael S. Tsirkin __le32 max; 45*924b59a6SMichael S. Tsirkin __le32 fuzz; 46*924b59a6SMichael S. Tsirkin __le32 flat; 47*924b59a6SMichael S. Tsirkin __le32 res; 48271c8651SGerd Hoffmann }; 49271c8651SGerd Hoffmann 50271c8651SGerd Hoffmann struct virtio_input_devids { 51*924b59a6SMichael S. Tsirkin __le16 bustype; 52*924b59a6SMichael S. Tsirkin __le16 vendor; 53*924b59a6SMichael S. Tsirkin __le16 product; 54*924b59a6SMichael S. Tsirkin __le16 version; 55271c8651SGerd Hoffmann }; 56271c8651SGerd Hoffmann 57271c8651SGerd Hoffmann struct virtio_input_config { 58271c8651SGerd Hoffmann __u8 select; 59271c8651SGerd Hoffmann __u8 subsel; 60271c8651SGerd Hoffmann __u8 size; 61271c8651SGerd Hoffmann __u8 reserved[5]; 62271c8651SGerd Hoffmann union { 63271c8651SGerd Hoffmann char string[128]; 64271c8651SGerd Hoffmann __u8 bitmap[128]; 65271c8651SGerd Hoffmann struct virtio_input_absinfo abs; 66271c8651SGerd Hoffmann struct virtio_input_devids ids; 67271c8651SGerd Hoffmann } u; 68271c8651SGerd Hoffmann }; 69271c8651SGerd Hoffmann 70271c8651SGerd Hoffmann struct virtio_input_event { 71271c8651SGerd Hoffmann __le16 type; 72271c8651SGerd Hoffmann __le16 code; 73271c8651SGerd Hoffmann __le32 value; 74271c8651SGerd Hoffmann }; 75271c8651SGerd Hoffmann 76271c8651SGerd Hoffmann #endif /* _LINUX_VIRTIO_INPUT_H */ 77