hildevs.h 2.5 KB

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