1*ce099b40Smartin /* $NetBSD: wsksymvar.h,v 1.11 2008/04/28 20:24:01 martin Exp $ */ 247e69814Shannken 347e69814Shannken /*- 447e69814Shannken * Copyright (c) 1997 The NetBSD Foundation, Inc. 547e69814Shannken * All rights reserved. 647e69814Shannken * 747e69814Shannken * This code is derived from software contributed to The NetBSD Foundation 847e69814Shannken * by Juergen Hannken-Illjes. 947e69814Shannken * 1047e69814Shannken * Redistribution and use in source and binary forms, with or without 1147e69814Shannken * modification, are permitted provided that the following conditions 1247e69814Shannken * are met: 1347e69814Shannken * 1. Redistributions of source code must retain the above copyright 1447e69814Shannken * notice, this list of conditions and the following disclaimer. 1547e69814Shannken * 2. Redistributions in binary form must reproduce the above copyright 1647e69814Shannken * notice, this list of conditions and the following disclaimer in the 1747e69814Shannken * documentation and/or other materials provided with the distribution. 1847e69814Shannken * 1947e69814Shannken * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 2047e69814Shannken * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 2147e69814Shannken * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2247e69814Shannken * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 2347e69814Shannken * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2447e69814Shannken * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2547e69814Shannken * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2647e69814Shannken * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2747e69814Shannken * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2847e69814Shannken * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2947e69814Shannken * POSSIBILITY OF SUCH DAMAGE. 3047e69814Shannken */ 3147e69814Shannken 3264f1bb73Shannken #ifndef _DEV_WSCONS_WSKSYMVAR_H_ 3364f1bb73Shannken #define _DEV_WSCONS_WSKSYMVAR_H_ 3464f1bb73Shannken 3564f1bb73Shannken #ifndef _KERNEL 3664f1bb73Shannken #include <sys/types.h> 3764f1bb73Shannken #endif 3864f1bb73Shannken 3964f1bb73Shannken typedef u_int16_t keysym_t; 40c8793c3dShannken typedef u_int32_t kbd_t; 4164f1bb73Shannken 4264f1bb73Shannken struct wscons_keymap { 4364f1bb73Shannken keysym_t command; 4464f1bb73Shannken keysym_t group1[2]; 4564f1bb73Shannken keysym_t group2[2]; 4664f1bb73Shannken }; 4764f1bb73Shannken 4864f1bb73Shannken #ifdef _KERNEL 4964f1bb73Shannken struct wscons_keydesc { 5064f1bb73Shannken kbd_t name; /* name of this map */ 5164f1bb73Shannken kbd_t base; /* map this one is based on */ 5264f1bb73Shannken int map_size; /* size of map */ 5364f1bb73Shannken const keysym_t *map; /* the map itself */ 5464f1bb73Shannken }; 5564f1bb73Shannken 564ee71fe4Sdrochner struct wskbd_mapdata { 574ee71fe4Sdrochner const struct wscons_keydesc *keydesc; 584ee71fe4Sdrochner kbd_t layout; 594ee71fe4Sdrochner }; 604ee71fe4Sdrochner 6154e8bcd2Sdrochner /* layout variant bits ignored by mapping code */ 6254e8bcd2Sdrochner #define KB_HANDLEDBYWSKBD KB_METAESC 6354e8bcd2Sdrochner 6464f1bb73Shannken /* 6564f1bb73Shannken * Utility functions. 6664f1bb73Shannken */ 6782e5e6abSaugustss void wskbd_get_mapentry(const struct wskbd_mapdata *, int, 6882e5e6abSaugustss struct wscons_keymap *); 6982e5e6abSaugustss void wskbd_init_keymap(int, struct wscons_keymap **, int *); 7082e5e6abSaugustss int wskbd_load_keymap(const struct wskbd_mapdata *, 7182e5e6abSaugustss struct wscons_keymap **, int *); 7282e5e6abSaugustss keysym_t wskbd_compose_value(keysym_t *); 7364f1bb73Shannken 7464f1bb73Shannken #endif 7564f1bb73Shannken 7664f1bb73Shannken #endif /* !_DEV_WSCONS_WSKSYMVAR_H_ */ 77