diff options
author | Miod Vallat <miod@cvs.openbsd.org> | 2003-02-11 19:39:31 +0000 |
---|---|---|
committer | Miod Vallat <miod@cvs.openbsd.org> | 2003-02-11 19:39:31 +0000 |
commit | e08044a54f7d16f1443391c50b59a4c3deae49d6 (patch) | |
tree | 994a3e63f6204780298044ae498f2903dd547c19 /sys/dev/hil/hilvar.h | |
parent | 9f03a5af0492cb853685880bbbd9cbc622fa942f (diff) |
Machine independent HP-HIL loop support code.
Derived from the hp300 HIL code, and some information found in XFree86
HP-UX specific parts.
However, this code does not provide an HP-UX compatible /dev/hil* interface,
but will rather attach real BSD drivers to the hil driver glue.
Currently, only a driver for the HP-HIL keyboards is provided. More to come
as resources permit.
The international layout tables for hilkbd are derived from the ite tables
found in the hp300 code, but only the US layout could be tested.
Sample dmesg output on a heavily charged hil loop:
hil0 at gsc0 offset 21000 irq 1
hilkbd0 at hil0 code 1: 109-key keyboard, layout 1b
wskbd0 at hilkbd0: console keyboard
hilkbd1 at hil0 code 2: 109-key keyboard, layout 1f
wskbd1 at hilkbd1
"ID module" at hil0 id 34 code 3 not configured
"ID module" at hil0 id 34 code 4 not configured
"Tablet" at hil0 id 94 code 5 not configured
"Mouse" at hil0 id 68 code 6 not configured
Some feedback from and ok mickey@
Diffstat (limited to 'sys/dev/hil/hilvar.h')
-rw-r--r-- | sys/dev/hil/hilvar.h | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/sys/dev/hil/hilvar.h b/sys/dev/hil/hilvar.h new file mode 100644 index 00000000000..4611629afb5 --- /dev/null +++ b/sys/dev/hil/hilvar.h @@ -0,0 +1,111 @@ +/* $OpenBSD: hilvar.h,v 1.1 2003/02/11 19:39:30 miod Exp $ */ +/* + * Copyright (c) 2003, Miodrag Vallat. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +/* + * Copyright (c) 1988 University of Utah. + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * the Systems Programming Group of the University of Utah Computer + * Science Department. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * from: Utah $Hdr: hilvar.h 1.3 92/01/21$ + * + * @(#)hilvar.h 8.1 (Berkeley) 6/10/93 + */ + +#define NHILD 8 /* 7 actual + loop pseudo (dev 0) */ + +struct hil_cb { + void (*cb_fn)(void *, u_int, u_char *); + void *cb_arg; +}; + +struct hil_softc { + struct device sc_dev; + bus_space_handle_t sc_bsh; + bus_space_tag_t sc_bst; + + u_char sc_cmddone; + u_char sc_cmdending; + u_char sc_actdev; /* current input device */ + u_char sc_cmddev; /* device to perform command on */ + u_char sc_pollbuf[HILBUFSIZE]; /* interrupt time input buffer */ + u_char sc_cmdbuf[HILBUFSIZE]; + u_char *sc_pollbp; /* pointer into sc_pollbuf */ + u_char *sc_cmdbp; /* pointer into sc_cmdbuf */ + + u_char sc_maxdev; /* number of devices on loop */ + u_char sc_kbddev; /* keyboard device id */ + struct hil_cb sc_cb[NHILD]; /* interrupt dispatcher */ +}; + +#ifdef _KERNEL + +void send_hil_cmd(struct hil_softc *, u_char, u_char *, u_char, u_char *); +void send_hildev_cmd(struct hil_softc *, char, char); +void hil_set_poll(struct hil_softc *, int); +int hil_poll_data(struct hil_softc *, u_char *, u_char *); + +void hil_attach(struct hil_softc *); +void hil_attach_deferred(void *); +void hil_callback_register(struct hil_softc *, int, + void (*)(void *, u_int, u_char *), void *); +int hil_intr(void *); +int hildevprint(void *, const char *); + +#endif /* _KERNEL */ |