cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

keymaps.h (2246B)


      1/*
      2 * QEMU keysym to keycode conversion using rdesktop keymaps
      3 *
      4 * Copyright (c) 2004 Johannes Schindelin
      5 *
      6 * Permission is hereby granted, free of charge, to any person obtaining a copy
      7 * of this software and associated documentation files (the "Software"), to deal
      8 * in the Software without restriction, including without limitation the rights
      9 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
     10 * copies of the Software, and to permit persons to whom the Software is
     11 * furnished to do so, subject to the following conditions:
     12 *
     13 * The above copyright notice and this permission notice shall be included in
     14 * all copies or substantial portions of the Software.
     15 *
     16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
     17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
     18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
     19 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
     20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     21 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
     22 * THE SOFTWARE.
     23 */
     24
     25#ifndef QEMU_KEYMAPS_H
     26#define QEMU_KEYMAPS_H
     27
     28#include "ui/kbd-state.h"
     29
     30typedef struct {
     31    const char* name;
     32    int keysym;
     33} name2keysym_t;
     34
     35/* scancode without modifiers */
     36#define SCANCODE_KEYMASK 0xff
     37/* scancode without grey or up bit */
     38#define SCANCODE_KEYCODEMASK 0x7f
     39
     40/* "grey" keys will usually need a 0xe0 prefix */
     41#define SCANCODE_GREY   0x80
     42#define SCANCODE_EMUL0  0xE0
     43#define SCANCODE_EMUL1  0xE1
     44/* "up" flag */
     45#define SCANCODE_UP     0x80
     46
     47/* Additional modifiers to use if not catched another way. */
     48#define SCANCODE_SHIFT  0x100
     49#define SCANCODE_CTRL   0x200
     50#define SCANCODE_ALT    0x400
     51#define SCANCODE_ALTGR  0x800
     52
     53typedef struct kbd_layout_t kbd_layout_t;
     54
     55kbd_layout_t *init_keyboard_layout(const name2keysym_t *table,
     56                                   const char *language, Error **errp);
     57int keysym2scancode(kbd_layout_t *k, int keysym,
     58                    QKbdState *kbd, bool down);
     59int keycode_is_keypad(kbd_layout_t *k, int keycode);
     60int keysym_is_numlock(kbd_layout_t *k, int keysym);
     61
     62#endif /* QEMU_KEYMAPS_H */