1*b10df2f5Stsutsui /* $NetBSD: hildevs.h,v 1.2 2011/02/15 11:05:51 tsutsui Exp $ */ 2b04b7da8Stsutsui /* $OpenBSD: hildevs.h,v 1.4 2005/05/13 14:54:44 miod Exp $ */ 3b04b7da8Stsutsui /* 4b04b7da8Stsutsui * Copyright (c) 2003, Miodrag Vallat. 5b04b7da8Stsutsui * All rights reserved. 6b04b7da8Stsutsui * 7b04b7da8Stsutsui * Redistribution and use in source and binary forms, with or without 8b04b7da8Stsutsui * modification, are permitted provided that the following conditions 9b04b7da8Stsutsui * are met: 10b04b7da8Stsutsui * 1. Redistributions of source code must retain the above copyright 11b04b7da8Stsutsui * notice, this list of conditions and the following disclaimer. 12b04b7da8Stsutsui * 2. Redistributions in binary form must reproduce the above copyright 13b04b7da8Stsutsui * notice, this list of conditions and the following disclaimer in the 14b04b7da8Stsutsui * documentation and/or other materials provided with the distribution. 15b04b7da8Stsutsui * 16b04b7da8Stsutsui * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17b04b7da8Stsutsui * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18b04b7da8Stsutsui * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19b04b7da8Stsutsui * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 20b04b7da8Stsutsui * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21b04b7da8Stsutsui * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22b04b7da8Stsutsui * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23b04b7da8Stsutsui * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24b04b7da8Stsutsui * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 25b04b7da8Stsutsui * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26b04b7da8Stsutsui * POSSIBILITY OF SUCH DAMAGE. 27b04b7da8Stsutsui * 28b04b7da8Stsutsui */ 29b04b7da8Stsutsui 30b04b7da8Stsutsui /* Entries in hildevs_data.h for device probe */ 31b04b7da8Stsutsui struct hildevice { 32b04b7da8Stsutsui int minid; 33b04b7da8Stsutsui int maxid; 34b04b7da8Stsutsui int type; 35b04b7da8Stsutsui const char *descr; 36b04b7da8Stsutsui }; 37b04b7da8Stsutsui 38b04b7da8Stsutsui /* Arguments passed to attach routines */ 39b04b7da8Stsutsui struct hil_attach_args { 40b04b7da8Stsutsui int ha_code; /* hil code */ 41b04b7da8Stsutsui int ha_type; /* hil device type */ 42b04b7da8Stsutsui int ha_console; /* console set to hil */ 43b04b7da8Stsutsui int ha_infolen; /* identify info length */ 44*b10df2f5Stsutsui uint8_t ha_info[HILBUFSIZE]; /* identify info bits */ 45b04b7da8Stsutsui #define ha_id ha_info[0] /* hil probe id */ 46b04b7da8Stsutsui 47b04b7da8Stsutsui const char *ha_descr; /* device description */ 48b04b7da8Stsutsui }; 49b04b7da8Stsutsui 50b04b7da8Stsutsui /* ha_type values */ 51b04b7da8Stsutsui #define HIL_DEVICE_KEYBOARD 1 52b04b7da8Stsutsui #define HIL_DEVICE_IDMODULE 2 53b04b7da8Stsutsui #define HIL_DEVICE_MOUSE 3 54b04b7da8Stsutsui #define HIL_DEVICE_BUTTONBOX 4 55b04b7da8Stsutsui 56b04b7da8Stsutsui /* Common softc part for hil devices */ 57b04b7da8Stsutsui struct hildev_softc { 58b04b7da8Stsutsui device_t sc_dev; 59b04b7da8Stsutsui 60b04b7da8Stsutsui int sc_code; /* hil code */ 61b04b7da8Stsutsui int sc_type; /* hil device type */ 62b04b7da8Stsutsui 63b04b7da8Stsutsui int sc_infolen; /* identify info length */ 64*b10df2f5Stsutsui uint8_t sc_info[HILBUFSIZE]; /* identify info bits */ 65b04b7da8Stsutsui 66*b10df2f5Stsutsui void (*sc_fn)(struct hildev_softc *, u_int, uint8_t *); 67b04b7da8Stsutsui }; 68b04b7da8Stsutsui 69b04b7da8Stsutsui #define hd_code sc_hildev.sc_code 70b04b7da8Stsutsui #define hd_fn sc_hildev.sc_fn 71b04b7da8Stsutsui #define hd_info sc_hildev.sc_info 72b04b7da8Stsutsui #define hd_infolen sc_hildev.sc_infolen 73b04b7da8Stsutsui #define hd_type sc_hildev.sc_type 74