1 1.8 tsutsui /* $NetBSD: lk201var.h,v 1.8 2024/02/14 12:59:44 tsutsui Exp $ */ 2 1.2 drochner 3 1.2 drochner /* 4 1.2 drochner * Copyright (c) 1998 5 1.2 drochner * Matthias Drochner. All rights reserved. 6 1.2 drochner * 7 1.2 drochner * Redistribution and use in source and binary forms, with or without 8 1.2 drochner * modification, are permitted provided that the following conditions 9 1.2 drochner * are met: 10 1.2 drochner * 1. Redistributions of source code must retain the above copyright 11 1.2 drochner * notice, this list of conditions and the following disclaimer. 12 1.2 drochner * 2. Redistributions in binary form must reproduce the above copyright 13 1.2 drochner * notice, this list of conditions and the following disclaimer in the 14 1.2 drochner * documentation and/or other materials provided with the distribution. 15 1.2 drochner * 16 1.2 drochner * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17 1.2 drochner * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18 1.2 drochner * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19 1.2 drochner * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20 1.2 drochner * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21 1.2 drochner * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22 1.2 drochner * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23 1.2 drochner * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 1.2 drochner * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25 1.2 drochner * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 1.2 drochner * 27 1.2 drochner */ 28 1.2 drochner 29 1.2 drochner struct lk201_attachment { 30 1.5 perry int (*sendchar)(void *, u_char); 31 1.2 drochner void *cookie; 32 1.2 drochner }; 33 1.1 drochner 34 1.1 drochner struct lk201_state { 35 1.2 drochner struct lk201_attachment attmt; 36 1.7 jklos 37 1.7 jklos volatile int waitack; 38 1.7 jklos int ackdata; 39 1.7 jklos 40 1.7 jklos int kbdtype; 41 1.7 jklos #define KBD_NONE 0x00 42 1.7 jklos #define KBD_LK201 0x01 43 1.7 jklos #define KBD_LK401 0x02 44 1.1 drochner #define LK_KLL 8 45 1.1 drochner int down_keys_list[LK_KLL]; 46 1.2 drochner int bellvol; 47 1.2 drochner int leds_state; 48 1.3 ad int kcvol; 49 1.1 drochner }; 50 1.1 drochner 51 1.5 perry int lk201_init(struct lk201_state *); 52 1.7 jklos int lk201_decode(struct lk201_state *, int, int, u_int *, int *); 53 1.5 perry void lk201_bell(struct lk201_state *, struct wskbd_bell_data *); 54 1.5 perry void lk201_set_leds(struct lk201_state *, int); 55 1.5 perry void lk201_set_keyclick(struct lk201_state *, int); 56 1.7 jklos 57 1.8 tsutsui /* Values returned by lk201_decode */ 58 1.7 jklos #define LKD_NODATA 0x00 59 1.7 jklos #define LKD_COMPLETE 0x01 60 1.7 jklos #define LKD_MORE 0x02 61