aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--audio/paaudio.c44
-rw-r--r--pc-bios/keymaps/Makefile4
-rw-r--r--pc-bios/keymaps/ar53
-rw-r--r--pc-bios/keymaps/bepo10
-rw-r--r--pc-bios/keymaps/cz10
-rw-r--r--pc-bios/keymaps/da10
-rw-r--r--pc-bios/keymaps/de39
-rw-r--r--pc-bios/keymaps/de-ch10
-rw-r--r--pc-bios/keymaps/en-gb10
-rw-r--r--pc-bios/keymaps/en-us10
-rw-r--r--pc-bios/keymaps/es10
-rw-r--r--pc-bios/keymaps/et10
-rw-r--r--pc-bios/keymaps/fi10
-rw-r--r--pc-bios/keymaps/fo10
-rw-r--r--pc-bios/keymaps/fr36
-rw-r--r--pc-bios/keymaps/fr-be10
-rw-r--r--pc-bios/keymaps/fr-ca10
-rw-r--r--pc-bios/keymaps/fr-ch10
-rw-r--r--pc-bios/keymaps/hr10
-rw-r--r--pc-bios/keymaps/hu10
-rw-r--r--pc-bios/keymaps/is10
-rw-r--r--pc-bios/keymaps/it10
-rw-r--r--pc-bios/keymaps/ja10
-rw-r--r--pc-bios/keymaps/lt10
-rw-r--r--pc-bios/keymaps/lv10
-rw-r--r--pc-bios/keymaps/mk10
-rw-r--r--pc-bios/keymaps/nl10
-rw-r--r--pc-bios/keymaps/no10
-rw-r--r--pc-bios/keymaps/pl10
-rw-r--r--pc-bios/keymaps/pt10
-rw-r--r--pc-bios/keymaps/pt-br10
-rw-r--r--pc-bios/keymaps/ru10
-rw-r--r--pc-bios/keymaps/th10
-rw-r--r--pc-bios/keymaps/tr10
-rw-r--r--qapi/audio.json6
-rw-r--r--target/riscv/insn_trans/trans_rvc.inc.c30
-rw-r--r--ui/curses.c12
-rw-r--r--ui/vnc-enc-tight.c7
38 files changed, 400 insertions, 121 deletions
diff --git a/audio/paaudio.c b/audio/paaudio.c
index 5d410ed73f..45295b4e5e 100644
--- a/audio/paaudio.c
+++ b/audio/paaudio.c
@@ -549,12 +549,8 @@ static int qpa_init_out(HWVoiceOut *hw, struct audsettings *as,
ss.channels = as->nchannels;
ss.rate = as->freq;
- /*
- * qemu audio tick runs at 100 Hz (by default), so processing
- * data chunks worth 10 ms of sound should be a good fit.
- */
- ba.tlength = pa_usec_to_bytes (10 * 1000, &ss);
- ba.minreq = pa_usec_to_bytes (5 * 1000, &ss);
+ ba.tlength = pa_usec_to_bytes(ppdo->latency, &ss);
+ ba.minreq = -1;
ba.maxlength = -1;
ba.prebuf = -1;
@@ -577,7 +573,8 @@ static int qpa_init_out(HWVoiceOut *hw, struct audsettings *as,
audio_pcm_init_info (&hw->info, &obt_as);
hw->samples = pa->samples = audio_buffer_samples(
- qapi_AudiodevPaPerDirectionOptions_base(ppdo), &obt_as, 46440);
+ qapi_AudiodevPaPerDirectionOptions_base(ppdo),
+ &obt_as, ppdo->buffer_length);
pa->pcm_buf = audio_calloc(__func__, hw->samples, 1 << hw->info.shift);
pa->rpos = hw->rpos;
if (!pa->pcm_buf) {
@@ -608,6 +605,7 @@ static int qpa_init_in(HWVoiceIn *hw, struct audsettings *as, void *drv_opaque)
{
int error;
pa_sample_spec ss;
+ pa_buffer_attr ba;
struct audsettings obt_as = *as;
PAVoiceIn *pa = (PAVoiceIn *) hw;
paaudio *g = pa->g = drv_opaque;
@@ -618,6 +616,11 @@ static int qpa_init_in(HWVoiceIn *hw, struct audsettings *as, void *drv_opaque)
ss.channels = as->nchannels;
ss.rate = as->freq;
+ ba.fragsize = pa_usec_to_bytes(ppdo->latency, &ss);
+ ba.maxlength = -1;
+ ba.minreq = -1;
+ ba.prebuf = -1;
+
obt_as.fmt = pa_to_audfmt (ss.format, &obt_as.endianness);
pa->stream = qpa_simple_new (
@@ -627,7 +630,7 @@ static int qpa_init_in(HWVoiceIn *hw, struct audsettings *as, void *drv_opaque)
ppdo->has_name ? ppdo->name : NULL,
&ss,
NULL, /* channel map */
- NULL, /* buffering attributes */
+ &ba, /* buffering attributes */
&error
);
if (!pa->stream) {
@@ -637,7 +640,8 @@ static int qpa_init_in(HWVoiceIn *hw, struct audsettings *as, void *drv_opaque)
audio_pcm_init_info (&hw->info, &obt_as);
hw->samples = pa->samples = audio_buffer_samples(
- qapi_AudiodevPaPerDirectionOptions_base(ppdo), &obt_as, 46440);
+ qapi_AudiodevPaPerDirectionOptions_base(ppdo),
+ &obt_as, ppdo->buffer_length);
pa->pcm_buf = audio_calloc(__func__, hw->samples, 1 << hw->info.shift);
pa->wpos = hw->wpos;
if (!pa->pcm_buf) {
@@ -809,7 +813,20 @@ static int qpa_ctl_in (HWVoiceIn *hw, int cmd, ...)
return 0;
}
-/* common */
+static int qpa_validate_per_direction_opts(Audiodev *dev,
+ AudiodevPaPerDirectionOptions *pdo)
+{
+ if (!pdo->has_buffer_length) {
+ pdo->has_buffer_length = true;
+ pdo->buffer_length = 46440;
+ }
+ if (!pdo->has_latency) {
+ pdo->has_latency = true;
+ pdo->latency = 15000;
+ }
+ return 1;
+}
+
static void *qpa_audio_init(Audiodev *dev)
{
paaudio *g;
@@ -836,6 +853,13 @@ static void *qpa_audio_init(Audiodev *dev)
g = g_malloc(sizeof(paaudio));
server = popts->has_server ? popts->server : NULL;
+ if (!qpa_validate_per_direction_opts(dev, popts->in)) {
+ goto fail;
+ }
+ if (!qpa_validate_per_direction_opts(dev, popts->out)) {
+ goto fail;
+ }
+
g->dev = dev;
g->mainloop = NULL;
g->context = NULL;
diff --git a/pc-bios/keymaps/Makefile b/pc-bios/keymaps/Makefile
index f0e44fd110..76217b0689 100644
--- a/pc-bios/keymaps/Makefile
+++ b/pc-bios/keymaps/Makefile
@@ -9,7 +9,7 @@ ar : MAP_FLAGS := -l ar
bepo : MAP_FLAGS := -l fr -v dvorak
cz : MAP_FLAGS := -l cz
da : MAP_FLAGS := -l dk
-de : MAP_FLAGS := -l de
+de : MAP_FLAGS := -l de -v nodeadkeys
de-ch : MAP_FLAGS := -l ch
en-us : MAP_FLAGS := -l us
en-gb : MAP_FLAGS := -l gb
@@ -17,7 +17,7 @@ es : MAP_FLAGS := -l es
et : MAP_FLAGS := -l et
fi : MAP_FLAGS := -l fi
fo : MAP_FLAGS := -l fo
-fr : MAP_FLAGS := -l fr
+fr : MAP_FLAGS := -l fr -v nodeadkeys
fr-be : MAP_FLAGS := -l be
fr-ca : MAP_FLAGS := -l ca -v fr
fr-ch : MAP_FLAGS := -l ch -v fr
diff --git a/pc-bios/keymaps/ar b/pc-bios/keymaps/ar
index a763c9a027..f62b297c54 100644
--- a/pc-bios/keymaps/ar
+++ b/pc-bios/keymaps/ar
@@ -36,50 +36,65 @@ Escape 0x01
# evdev 2 (0x2), QKeyCode "1", number 0x2
1 0x02
exclam 0x02 shift
+Arabic_1 0x02 altgr
# evdev 3 (0x3), QKeyCode "2", number 0x3
2 0x03
at 0x03 shift
+Arabic_2 0x03 altgr
# evdev 4 (0x4), QKeyCode "3", number 0x4
3 0x04
numbersign 0x04 shift
+Arabic_3 0x04 altgr
# evdev 5 (0x5), QKeyCode "4", number 0x5
4 0x05
dollar 0x05 shift
+Arabic_4 0x05 altgr
# evdev 6 (0x6), QKeyCode "5", number 0x6
5 0x06
percent 0x06 shift
+Arabic_5 0x06 altgr
+U2030 0x06 shift altgr
# evdev 7 (0x7), QKeyCode "6", number 0x7
6 0x07
asciicircum 0x07 shift
+Arabic_6 0x07 altgr
# evdev 8 (0x8), QKeyCode "7", number 0x8
7 0x08
ampersand 0x08 shift
+Arabic_7 0x08 altgr
# evdev 9 (0x9), QKeyCode "8", number 0x9
8 0x09
asterisk 0x09 shift
+Arabic_8 0x09 altgr
# evdev 10 (0xa), QKeyCode "9", number 0xa
9 0x0a
parenright 0x0a shift
+Arabic_9 0x0a altgr
# evdev 11 (0xb), QKeyCode "0", number 0xb
0 0x0b
parenleft 0x0b shift
+Arabic_0 0x0b altgr
# evdev 12 (0xc), QKeyCode "minus", number 0xc
minus 0x0c
underscore 0x0c shift
+endash 0x0c altgr
+U2011 0x0c shift altgr
# evdev 13 (0xd), QKeyCode "equal", number 0xd
equal 0x0d
plus 0x0d shift
+notequal 0x0d altgr
+approxeq 0x0d shift altgr
# evdev 14 (0xe), QKeyCode "backspace", number 0xe
BackSpace 0x0e
@@ -91,18 +106,22 @@ ISO_Left_Tab 0x0f shift
# evdev 16 (0x10), QKeyCode "q", number 0x10
Arabic_dad 0x10
Arabic_fatha 0x10 shift
+U2066 0x10 shift altgr
# evdev 17 (0x11), QKeyCode "w", number 0x11
Arabic_sad 0x11
Arabic_fathatan 0x11 shift
+U2067 0x11 shift altgr
# evdev 18 (0x12), QKeyCode "e", number 0x12
Arabic_theh 0x12
Arabic_damma 0x12 shift
+U2068 0x12 shift altgr
# evdev 19 (0x13), QKeyCode "r", number 0x13
Arabic_qaf 0x13
Arabic_dammatan 0x13 shift
+U2069 0x13 shift altgr
# evdev 20 (0x14), QKeyCode "t", number 0x14
Arabic_feh 0x14
@@ -112,14 +131,17 @@ Arabic_veh 0x14 altgr
# evdev 21 (0x15), QKeyCode "y", number 0x15
Arabic_ghain 0x15
Arabic_hamzaunderalef 0x15 shift
+U202A 0x15 shift altgr
# evdev 22 (0x16), QKeyCode "u", number 0x16
Arabic_ain 0x16
grave 0x16 shift
+U202B 0x16 shift altgr
# evdev 23 (0x17), QKeyCode "i", number 0x17
Arabic_ha 0x17
division 0x17 shift
+U202C 0x17 shift altgr
# evdev 24 (0x18), QKeyCode "o", number 0x18
Arabic_khah 0x18
@@ -128,15 +150,18 @@ multiply 0x18 shift
# evdev 25 (0x19), QKeyCode "p", number 0x19
Arabic_hah 0x19
Arabic_semicolon 0x19 shift
+U200E 0x19 shift altgr
# evdev 26 (0x1a), QKeyCode "bracket_left", number 0x1a
Arabic_jeem 0x1a
less 0x1a shift
Arabic_tcheh 0x1a altgr
+U200F 0x1a shift altgr
# evdev 27 (0x1b), QKeyCode "bracket_right", number 0x1b
Arabic_dal 0x1b
greater 0x1b shift
+U061C 0x1b shift altgr
# evdev 28 (0x1c), QKeyCode "ret", number 0x1c
Return 0x1c
@@ -177,6 +202,7 @@ Arabic_tatweel 0x24 shift
# evdev 37 (0x25), QKeyCode "k", number 0x25
Arabic_noon 0x25
Arabic_comma 0x25 shift
+U066B 0x25 altgr
# evdev 38 (0x26), QKeyCode "l", number 0x26
Arabic_meem 0x26
@@ -190,27 +216,35 @@ Arabic_gaf 0x27 altgr
# evdev 40 (0x28), QKeyCode "apostrophe", number 0x28
Arabic_tah 0x28
quotedbl 0x28 shift
+U27E9 0x28 altgr
+U200D 0x28 shift altgr
# evdev 41 (0x29), QKeyCode "grave_accent", number 0x29
Arabic_thal 0x29
Arabic_shadda 0x29 shift
+Arabic_percent 0x29 altgr
+U0609 0x29 shift altgr
# evdev 42 (0x2a), QKeyCode "shift", number 0x2a
Shift_L 0x2a
# evdev 43 (0x2b), QKeyCode "backslash", number 0x2b
backslash 0x2b
-bar 0x2b shift
+ellipsis 0x2b shift
+U27E8 0x2b altgr
+U202F 0x2b shift altgr
# evdev 44 (0x2c), QKeyCode "z", number 0x2c
Arabic_hamzaonyeh 0x2c
asciitilde 0x2c shift
guillemotright 0x2c altgr
+U203A 0x2c shift altgr
# evdev 45 (0x2d), QKeyCode "x", number 0x2d
Arabic_hamza 0x2d
Arabic_sukun 0x2d shift
guillemotleft 0x2d altgr
+U2039 0x2d shift altgr
# evdev 46 (0x2e), QKeyCode "c", number 0x2e
Arabic_hamzaonwaw 0x2e
@@ -236,14 +270,18 @@ apostrophe 0x32 shift
# evdev 51 (0x33), QKeyCode "comma", number 0x33
Arabic_waw 0x33
comma 0x33 shift
+U066C 0x33 altgr
# evdev 52 (0x34), QKeyCode "dot", number 0x34
Arabic_zain 0x34
period 0x34 shift
+Arabic_jeh 0x34 altgr
# evdev 53 (0x35), QKeyCode "slash", number 0x35
Arabic_zah 0x35
Arabic_question_mark 0x35 shift
+U066D 0x35 altgr
+U200C 0x35 shift altgr
# evdev 54 (0x36), QKeyCode "shift_r", number 0x36
Shift_R 0x36
@@ -371,9 +409,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -390,8 +430,7 @@ KP_Divide 0xb5
Print 0x54
# evdev 100 (0x64), QKeyCode "alt_r", number 0xb8
-Alt_R 0xb8
-Meta_R 0xb8 shift
+ISO_Level3_Shift 0xb8
# evdev 101 (0x65), QKeyCode "lf", number 0x5b
Linefeed 0x5b
@@ -733,6 +772,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/bepo b/pc-bios/keymaps/bepo
index dbe8daa257..2292cbc499 100644
--- a/pc-bios/keymaps/bepo
+++ b/pc-bios/keymaps/bepo
@@ -399,9 +399,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -761,6 +763,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/cz b/pc-bios/keymaps/cz
index 46b37757fe..29cf2b05d8 100644
--- a/pc-bios/keymaps/cz
+++ b/pc-bios/keymaps/cz
@@ -456,9 +456,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -817,6 +819,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/da b/pc-bios/keymaps/da
index f7cdad7420..547d8c716b 100644
--- a/pc-bios/keymaps/da
+++ b/pc-bios/keymaps/da
@@ -455,9 +455,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -816,6 +818,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym 0x0edd0160)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym 0x0edd0270)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/de b/pc-bios/keymaps/de
index d0b4715474..261243edbc 100644
--- a/pc-bios/keymaps/de
+++ b/pc-bios/keymaps/de
@@ -2,10 +2,10 @@
# generated by qemu-keymap
# model : pc105
# layout : de
-# variant : -
+# variant : nodeadkeys
# options : -
-# name: "German"
+# name: "German (no dead keys)"
# modifiers
# 0: Shift
@@ -100,10 +100,9 @@ backslash 0x0c altgr
questiondown 0x0c shift altgr
# evdev 13 (0xd), QKeyCode "equal", number 0xd
-dead_acute 0x0d
-dead_grave 0x0d shift
-dead_cedilla 0x0d altgr
-dead_ogonek 0x0d shift altgr
+acute 0x0d
+grave 0x0d shift
+cedilla 0x0d altgr
# evdev 14 (0xe), QKeyCode "backspace", number 0xe
BackSpace 0x0e
@@ -174,8 +173,7 @@ THORN 0x19 shift altgr
# evdev 26 (0x1a), QKeyCode "bracket_left", number 0x1a
udiaeresis 0x1a
Udiaeresis 0x1a shift
-dead_diaeresis 0x1a altgr
-dead_abovering 0x1a shift altgr
+diaeresis 0x1a altgr
# evdev 27 (0x1b), QKeyCode "bracket_right", number 0x1b
plus 0x1b
@@ -246,20 +244,17 @@ Lstroke 0x26 shift altgr
# evdev 39 (0x27), QKeyCode "semicolon", number 0x27
odiaeresis 0x27
Odiaeresis 0x27 shift
-dead_doubleacute 0x27 altgr
-dead_belowdot 0x27 shift altgr
+doubleacute 0x27 altgr
# evdev 40 (0x28), QKeyCode "apostrophe", number 0x28
adiaeresis 0x28
Adiaeresis 0x28 shift
-dead_circumflex 0x28 altgr
-dead_caron 0x28 shift altgr
+asciicircum 0x28 altgr
# evdev 41 (0x29), QKeyCode "grave_accent", number 0x29
-dead_circumflex 0x29
+asciicircum 0x29
degree 0x29 shift
-U2032 0x29 altgr
-U2033 0x29 shift altgr
+notsign 0x29 altgr
# evdev 42 (0x2a), QKeyCode "shift", number 0x2a
Shift_L 0x2a
@@ -268,7 +263,7 @@ Shift_L 0x2a
numbersign 0x2b
apostrophe 0x2b shift
rightsinglequotemark 0x2b altgr
-dead_breve 0x2b shift altgr
+grave 0x2b shift altgr
# evdev 44 (0x2c), QKeyCode "z", number 0x2c
y 0x2c
@@ -440,7 +435,7 @@ KP_Separator 0x53 numlock
less 0x56
greater 0x56 shift
bar 0x56 altgr
-brokenbar 0x56 shift altgr
+dead_belowmacron 0x56 shift altgr
# evdev 87 (0x57), QKeyCode "f11", number 0x57
F11 0x57
@@ -458,9 +453,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -819,6 +816,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/de-ch b/pc-bios/keymaps/de-ch
index ad37f6cc19..ed3da058e4 100644
--- a/pc-bios/keymaps/de-ch
+++ b/pc-bios/keymaps/de-ch
@@ -455,9 +455,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -816,6 +818,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/en-gb b/pc-bios/keymaps/en-gb
index 999cca7c71..18d8fce4d4 100644
--- a/pc-bios/keymaps/en-gb
+++ b/pc-bios/keymaps/en-gb
@@ -453,9 +453,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -815,6 +817,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/en-us b/pc-bios/keymaps/en-us
index a70e03adc0..06762cfc6c 100644
--- a/pc-bios/keymaps/en-us
+++ b/pc-bios/keymaps/en-us
@@ -365,9 +365,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -727,6 +729,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/es b/pc-bios/keymaps/es
index 53e66e88c7..fde441492d 100644
--- a/pc-bios/keymaps/es
+++ b/pc-bios/keymaps/es
@@ -454,9 +454,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -815,6 +817,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/et b/pc-bios/keymaps/et
index 7bed679bc9..a5dcbd18ab 100644
--- a/pc-bios/keymaps/et
+++ b/pc-bios/keymaps/et
@@ -363,9 +363,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -725,6 +727,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/fi b/pc-bios/keymaps/fi
index 1c7653dc6b..816749421e 100644
--- a/pc-bios/keymaps/fi
+++ b/pc-bios/keymaps/fi
@@ -429,9 +429,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -790,6 +792,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/fo b/pc-bios/keymaps/fo
index e69575bcb7..8bb6f97bba 100644
--- a/pc-bios/keymaps/fo
+++ b/pc-bios/keymaps/fo
@@ -456,9 +456,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -817,6 +819,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/fr b/pc-bios/keymaps/fr
index 5b25227455..82ca812c7e 100644
--- a/pc-bios/keymaps/fr
+++ b/pc-bios/keymaps/fr
@@ -2,10 +2,10 @@
# generated by qemu-keymap
# model : pc105
# layout : fr
-# variant : -
+# variant : nodeadkeys
# options : -
-# name: "French"
+# name: "French (no dead keys)"
# modifiers
# 0: Shift
@@ -103,7 +103,7 @@ questiondown 0x0c shift altgr
equal 0x0d
plus 0x0d shift
braceright 0x0d altgr
-dead_ogonek 0x0d shift altgr
+ogonek 0x0d shift altgr
# evdev 14 (0xe), QKeyCode "backspace", number 0xe
BackSpace 0x0e
@@ -173,8 +173,8 @@ thorn 0x19 altgr
THORN 0x19 shift altgr
# evdev 26 (0x1a), QKeyCode "bracket_left", number 0x1a
-dead_circumflex 0x1a
-dead_diaeresis 0x1a shift
+asciicircum 0x1a
+diaeresis 0x1a shift
dead_diaeresis 0x1a altgr
dead_abovering 0x1a shift altgr
@@ -182,7 +182,7 @@ dead_abovering 0x1a shift altgr
dollar 0x1b
sterling 0x1b shift
currency 0x1b altgr
-dead_macron 0x1b shift altgr
+macron 0x1b shift altgr
# evdev 28 (0x1c), QKeyCode "ret", number 0x1c
Return 0x1c
@@ -253,8 +253,8 @@ masculine 0x27 shift altgr
# evdev 40 (0x28), QKeyCode "apostrophe", number 0x28
ugrave 0x28
percent 0x28 shift
-dead_circumflex 0x28 altgr
-dead_caron 0x28 shift altgr
+asciicircum 0x28 altgr
+caron 0x28 shift altgr
# evdev 41 (0x29), QKeyCode "grave_accent", number 0x29
twosuperior 0x29
@@ -267,8 +267,8 @@ Shift_L 0x2a
# evdev 43 (0x2b), QKeyCode "backslash", number 0x2b
asterisk 0x2b
mu 0x2b shift
-dead_grave 0x2b altgr
-dead_breve 0x2b shift altgr
+grave 0x2b altgr
+breve 0x2b shift altgr
# evdev 44 (0x2c), QKeyCode "z", number 0x2c
w 0x2c
@@ -307,8 +307,8 @@ N 0x31 shift
# evdev 50 (0x32), QKeyCode "m", number 0x32
comma 0x32
question 0x32 shift
-dead_acute 0x32 altgr
-dead_doubleacute 0x32 shift altgr
+acute 0x32 altgr
+doubleacute 0x32 shift altgr
# evdev 51 (0x33), QKeyCode "comma", number 0x33
semicolon 0x33
@@ -326,7 +326,7 @@ division 0x34 shift altgr
exclam 0x35
section 0x35 shift
dead_belowdot 0x35 altgr
-dead_abovedot 0x35 shift altgr
+abovedot 0x35 shift altgr
# evdev 54 (0x36), QKeyCode "shift_r", number 0x36
Shift_R 0x36
@@ -456,9 +456,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -817,6 +819,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/fr-be b/pc-bios/keymaps/fr-be
index 9d2ac5ddf9..f225f179a2 100644
--- a/pc-bios/keymaps/fr-be
+++ b/pc-bios/keymaps/fr-be
@@ -455,9 +455,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -816,6 +818,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/fr-ca b/pc-bios/keymaps/fr-ca
index 736897bc43..f264d0a9c3 100644
--- a/pc-bios/keymaps/fr-ca
+++ b/pc-bios/keymaps/fr-ca
@@ -387,9 +387,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -748,6 +750,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/fr-ch b/pc-bios/keymaps/fr-ch
index 40e1fefd54..bdd944da1c 100644
--- a/pc-bios/keymaps/fr-ch
+++ b/pc-bios/keymaps/fr-ch
@@ -455,9 +455,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -816,6 +818,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/hr b/pc-bios/keymaps/hr
index 6b89f09922..252936c3ae 100644
--- a/pc-bios/keymaps/hr
+++ b/pc-bios/keymaps/hr
@@ -456,9 +456,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -817,6 +819,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/hu b/pc-bios/keymaps/hu
index a6bd66d08d..853147610a 100644
--- a/pc-bios/keymaps/hu
+++ b/pc-bios/keymaps/hu
@@ -455,9 +455,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -816,6 +818,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym 0x0a865600)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym 0x0a865710)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/is b/pc-bios/keymaps/is
index 063675d118..c88fa603aa 100644
--- a/pc-bios/keymaps/is
+++ b/pc-bios/keymaps/is
@@ -456,9 +456,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -817,6 +819,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/it b/pc-bios/keymaps/it
index abc3ed15de..df00156cf8 100644
--- a/pc-bios/keymaps/it
+++ b/pc-bios/keymaps/it
@@ -459,9 +459,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -820,6 +822,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/ja b/pc-bios/keymaps/ja
index aae93e8c52..6eb2e7bc20 100644
--- a/pc-bios/keymaps/ja
+++ b/pc-bios/keymaps/ja
@@ -367,9 +367,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -731,6 +733,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/lt b/pc-bios/keymaps/lt
index 41013675f8..db9b24f611 100644
--- a/pc-bios/keymaps/lt
+++ b/pc-bios/keymaps/lt
@@ -454,9 +454,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -815,6 +817,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/lv b/pc-bios/keymaps/lv
index 27260ce32e..54997ce092 100644
--- a/pc-bios/keymaps/lv
+++ b/pc-bios/keymaps/lv
@@ -429,9 +429,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -790,6 +792,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/mk b/pc-bios/keymaps/mk
index 30a597caa2..cb362b6d39 100644
--- a/pc-bios/keymaps/mk
+++ b/pc-bios/keymaps/mk
@@ -365,9 +365,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -727,6 +729,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/nl b/pc-bios/keymaps/nl
index ae7c8f5643..1579829eef 100644
--- a/pc-bios/keymaps/nl
+++ b/pc-bios/keymaps/nl
@@ -456,9 +456,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -817,6 +819,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/no b/pc-bios/keymaps/no
index 8afd1996b5..cd634e7b90 100644
--- a/pc-bios/keymaps/no
+++ b/pc-bios/keymaps/no
@@ -467,9 +467,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -831,6 +833,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym 0x00408160)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym 0x00408270)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/pl b/pc-bios/keymaps/pl
index df2720622f..30d93ca727 100644
--- a/pc-bios/keymaps/pl
+++ b/pc-bios/keymaps/pl
@@ -460,9 +460,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -821,6 +823,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/pt b/pc-bios/keymaps/pt
index ab590017cf..c34d6e3761 100644
--- a/pc-bios/keymaps/pt
+++ b/pc-bios/keymaps/pt
@@ -453,9 +453,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -814,6 +816,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/pt-br b/pc-bios/keymaps/pt-br
index fe9ec81303..2d409c0bc0 100644
--- a/pc-bios/keymaps/pt-br
+++ b/pc-bios/keymaps/pt-br
@@ -453,9 +453,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -814,6 +816,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/ru b/pc-bios/keymaps/ru
index 7566052262..9502ba1269 100644
--- a/pc-bios/keymaps/ru
+++ b/pc-bios/keymaps/ru
@@ -366,9 +366,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -728,6 +730,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/th b/pc-bios/keymaps/th
index 56a01354d6..b8298d902b 100644
--- a/pc-bios/keymaps/th
+++ b/pc-bios/keymaps/th
@@ -365,9 +365,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -727,6 +729,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/pc-bios/keymaps/tr b/pc-bios/keymaps/tr
index 4d1a4c3311..8ef60a60c1 100644
--- a/pc-bios/keymaps/tr
+++ b/pc-bios/keymaps/tr
@@ -449,9 +449,11 @@ Hiragana 0x77
# evdev 92 (0x5c), QKeyCode "henkan", number 0x79
Henkan_Mode 0x79
-# evdev 93 (0x5d): no evdev -> QKeyCode mapping (xkb keysym Hiragana_Katakana)
+# evdev 93 (0x5d), QKeyCode "katakanahiragana", number 0x70
+Hiragana_Katakana 0x70
-# evdev 94 (0x5e): no evdev -> QKeyCode mapping (xkb keysym Muhenkan)
+# evdev 94 (0x5e), QKeyCode "muhenkan", number 0x7b
+Muhenkan 0x7b
# evdev 95 (0x5f): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
@@ -810,6 +812,10 @@ XF86AudioMedia 0xed
# evdev 245 (0xf5): no evdev -> QKeyCode mapping (xkb keysym NoSymbol)
+# evdev 246 (0xf6): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
+# evdev 247 (0xf7): no evdev -> QKeyCode mapping (xkb keysym Invalid)
+
#
# quirks section start
#
diff --git a/qapi/audio.json b/qapi/audio.json
index 97aee37288..9fefdf5186 100644
--- a/qapi/audio.json
+++ b/qapi/audio.json
@@ -206,12 +206,16 @@
#
# @name: name of the sink/source to use
#
+# @latency: latency you want PulseAudio to achieve in microseconds
+# (default 15000)
+#
# Since: 4.0
##
{ 'struct': 'AudiodevPaPerDirectionOptions',
'base': 'AudiodevPerDirectionOptions',
'data': {
- '*name': 'str' } }
+ '*name': 'str',
+ '*latency': 'uint32' } }
##
# @AudiodevPaOptions:
diff --git a/target/riscv/insn_trans/trans_rvc.inc.c b/target/riscv/insn_trans/trans_rvc.inc.c
index bcdf64d3b7..5819f53f90 100644
--- a/target/riscv/insn_trans/trans_rvc.inc.c
+++ b/target/riscv/insn_trans/trans_rvc.inc.c
@@ -44,10 +44,19 @@ static bool trans_c_flw_ld(DisasContext *ctx, arg_c_flw_ld *a)
{
#ifdef TARGET_RISCV32
/* C.FLW ( RV32FC-only ) */
- return false;
+ REQUIRE_FPU;
+ REQUIRE_EXT(ctx, RVF);
+
+ arg_c_lw tmp;
+ decode_insn16_extract_cl_w(&tmp, ctx->opcode);
+ arg_flw arg = { .rd = tmp.rd, .rs1 = tmp.rs1, .imm = tmp.uimm };
+ return trans_flw(ctx, &arg);
#else
/* C.LD ( RV64C/RV128C-only ) */
- return false;
+ arg_c_fld tmp;
+ decode_insn16_extract_cl_d(&tmp, ctx->opcode);
+ arg_ld arg = { .rd = tmp.rd, .rs1 = tmp.rs1, .imm = tmp.uimm };
+ return trans_ld(ctx, &arg);
#endif
}
@@ -67,10 +76,19 @@ static bool trans_c_fsw_sd(DisasContext *ctx, arg_c_fsw_sd *a)
{
#ifdef TARGET_RISCV32
/* C.FSW ( RV32FC-only ) */
- return false;
+ REQUIRE_FPU;
+ REQUIRE_EXT(ctx, RVF);
+
+ arg_c_sw tmp;
+ decode_insn16_extract_cs_w(&tmp, ctx->opcode);
+ arg_fsw arg = { .rs1 = tmp.rs1, .rs2 = tmp.rs2, .imm = tmp.uimm };
+ return trans_fsw(ctx, &arg);
#else
/* C.SD ( RV64C/RV128C-only ) */
- return false;
+ arg_c_fsd tmp;
+ decode_insn16_extract_cs_d(&tmp, ctx->opcode);
+ arg_sd arg = { .rs1 = tmp.rs1, .rs2 = tmp.rs2, .imm = tmp.uimm };
+ return trans_sd(ctx, &arg);
#endif
}
@@ -88,7 +106,9 @@ static bool trans_c_jal_addiw(DisasContext *ctx, arg_c_jal_addiw *a)
{
#ifdef TARGET_RISCV32
/* C.JAL */
- arg_jal arg = { .rd = 1, .imm = a->imm };
+ arg_c_j tmp;
+ decode_insn16_extract_cj(&tmp, ctx->opcode);
+ arg_jal arg = { .rd = 1, .imm = tmp.imm };
return trans_jal(ctx, &arg);
#else
/* C.ADDIW */
diff --git a/ui/curses.c b/ui/curses.c
index 3a7e8649f3..cc6d6da684 100644
--- a/ui/curses.c
+++ b/ui/curses.c
@@ -75,9 +75,9 @@ static void curses_update(DisplayChangeListener *dcl,
if (vga_to_curses[ch].chars[0]) {
curses_line[x] = vga_to_curses[ch];
} else {
- curses_line[x].chars[0] = ch;
- curses_line[x].chars[1] = 0;
- curses_line[x].attr = 0;
+ curses_line[x] = (cchar_t) {
+ .chars[0] = ch,
+ };
}
curses_line[x].attr |= at;
}
@@ -519,6 +519,7 @@ static void font_setup(void)
wchar_to_ucs_conv = iconv_open("UCS-2", "WCHAR_T");
if (wchar_to_ucs_conv == (iconv_t) -1) {
+ iconv_close(ucs_to_wchar_conv);
fprintf(stderr, "Could not convert font glyphs to UCS-2: '%s'\n",
strerror(errno));
exit(1);
@@ -526,6 +527,8 @@ static void font_setup(void)
font_conv = iconv_open("WCHAR_T", font_charset);
if (font_conv == (iconv_t) -1) {
+ iconv_close(ucs_to_wchar_conv);
+ iconv_close(wchar_to_ucs_conv);
fprintf(stderr, "Could not convert font glyphs from %s: '%s'\n",
font_charset, strerror(errno));
exit(1);
@@ -646,6 +649,9 @@ static void font_setup(void)
}
}
}
+ iconv_close(ucs_to_wchar_conv);
+ iconv_close(wchar_to_ucs_conv);
+ iconv_close(font_conv);
}
static void curses_setup(void)
diff --git a/ui/vnc-enc-tight.c b/ui/vnc-enc-tight.c
index 0b4a5ac71f..d20cd1d86d 100644
--- a/ui/vnc-enc-tight.c
+++ b/ui/vnc-enc-tight.c
@@ -886,11 +886,11 @@ static int tight_compress_data(VncState *vs, int stream_id, size_t bytes,
*/
static void tight_pack24(VncState *vs, uint8_t *buf, size_t count, size_t *ret)
{
- uint32_t *buf32;
+ uint8_t *buf8;
uint32_t pix;
int rshift, gshift, bshift;
- buf32 = (uint32_t *)buf;
+ buf8 = buf;
if (1 /* FIXME */) {
rshift = vs->client_pf.rshift;
@@ -907,10 +907,11 @@ static void tight_pack24(VncState *vs, uint8_t *buf, size_t count, size_t *ret)
}
while (count--) {
- pix = *buf32++;
+ pix = ldl_he_p(buf8);
*buf++ = (char)(pix >> rshift);
*buf++ = (char)(pix >> gshift);
*buf++ = (char)(pix >> bshift);
+ buf8 += 4;
}
}