FreeBSD bhyve keyboard layout patch
Révision | 3f7a1d1af8b789619505d97d4757b34083bc3a1b (tree) |
---|---|
l'heure | 2021-01-02 13:34:00 |
Auteur | Koine Yuusuke(koinec) <koinec@user...> |
Commiter | Koine Yuusuke(koinec) |
kbdlayout: regist old version(2020/06/14-v5:rebase src tree)
qemuextkey: regist old versin(2020/06/14-v5:fix scancode tbl)
@@ -1,6 +1,6 @@ | ||
1 | 1 | diff -upN bhyve_base/Makefile bhyve/Makefile |
2 | ---- bhyve_base/Makefile 2020-06-02 20:16:51.532368000 +0900 | |
3 | -+++ bhyve/Makefile 2020-06-02 20:35:48.179160000 +0900 | |
2 | +--- bhyve_base/Makefile 2020-06-13 15:59:44.503811000 +0900 | |
3 | ++++ bhyve/Makefile 2020-06-13 15:58:02.502118000 +0900 | |
4 | 4 | @@ -95,4 +95,6 @@ CFLAGS+=-DGDB_LOG |
5 | 5 | |
6 | 6 | WARNS?= 2 |
@@ -9,8 +9,8 @@ diff -upN bhyve_base/Makefile bhyve/Makefile | ||
9 | 9 | + |
10 | 10 | .include <bsd.prog.mk> |
11 | 11 | diff -upN bhyve_base/bhyve.8 bhyve/bhyve.8 |
12 | ---- bhyve_base/bhyve.8 2020-06-02 20:16:51.487013000 +0900 | |
13 | -+++ bhyve/bhyve.8 2020-06-02 20:35:48.180745000 +0900 | |
12 | +--- bhyve_base/bhyve.8 2020-06-13 15:59:44.500093000 +0900 | |
13 | ++++ bhyve/bhyve.8 2020-06-13 15:58:02.502950000 +0900 | |
14 | 14 | @@ -44,6 +44,7 @@ |
15 | 15 | .Op Ar ,threads=n |
16 | 16 | .Oc |
@@ -34,8 +34,8 @@ diff -upN bhyve_base/bhyve.8 bhyve/bhyve.8 | ||
34 | 34 | Allow devices behind the LPC PCI-ISA bridge to be configured. |
35 | 35 | The only supported devices are the TTY-class devices |
36 | 36 | diff -upN bhyve_base/bhyverun.c bhyve/bhyverun.c |
37 | ---- bhyve_base/bhyverun.c 2020-06-02 20:16:51.456344000 +0900 | |
38 | -+++ bhyve/bhyverun.c 2020-06-02 20:35:48.181837000 +0900 | |
37 | +--- bhyve_base/bhyverun.c 2020-06-13 15:59:44.497748000 +0900 | |
38 | ++++ bhyve/bhyverun.c 2020-06-13 15:58:02.504048000 +0900 | |
39 | 39 | @@ -165,6 +165,8 @@ char *vmname; |
40 | 40 | int guest_ncpus; |
41 | 41 | uint16_t cores, maxcpus, sockets, threads; |
@@ -84,8 +84,8 @@ diff -upN bhyve_base/bhyverun.c bhyve/bhyverun.c | ||
84 | 84 | case 'l': |
85 | 85 | if (strncmp(optarg, "help", strlen(optarg)) == 0) { |
86 | 86 | diff -upN bhyve_base/bhyverun.h bhyve/bhyverun.h |
87 | ---- bhyve_base/bhyverun.h 2020-06-02 20:16:51.511202000 +0900 | |
88 | -+++ bhyve/bhyverun.h 2020-06-02 20:35:48.182282000 +0900 | |
87 | +--- bhyve_base/bhyverun.h 2020-06-13 15:59:44.501972000 +0900 | |
88 | ++++ bhyve/bhyverun.h 2020-06-13 15:58:02.504455000 +0900 | |
89 | 89 | @@ -39,6 +39,7 @@ extern int guest_ncpus; |
90 | 90 | extern uint16_t cores, sockets, threads; |
91 | 91 | extern char *guest_uuid_str; |
@@ -94,9 +94,10 @@ diff -upN bhyve_base/bhyverun.h bhyve/bhyverun.h | ||
94 | 94 | |
95 | 95 | void *paddr_guest2host(struct vmctx *ctx, uintptr_t addr, size_t len); |
96 | 96 | |
97 | +Common subdirectories: bhyve_base/kbdlayout and bhyve/kbdlayout | |
97 | 98 | diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c |
98 | ---- bhyve_base/ps2kbd.c 2020-06-02 20:29:26.881702000 +0900 | |
99 | -+++ bhyve/ps2kbd.c 2020-06-02 20:35:48.184181000 +0900 | |
99 | +--- bhyve_base/ps2kbd.c 2020-06-13 15:59:52.769007000 +0900 | |
100 | ++++ bhyve/ps2kbd.c 2020-06-13 15:58:02.505301000 +0900 | |
100 | 101 | @@ -31,15 +31,20 @@ |
101 | 102 | __FBSDID("$FreeBSD: releng/12.1/usr.sbin/bhyve/ps2kbd.c 341757 2018-12-09 06:41:57Z araujo $"); |
102 | 103 |
@@ -126,8 +127,8 @@ diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c | ||
126 | 127 | + |
127 | 128 | struct fifo { |
128 | 129 | uint8_t buf[PS2KBD_FIFOSZ]; |
129 | - uint8_t trans[PS2KBD_FIFOSZ]; | |
130 | -@@ -87,7 +94,7 @@ struct extended_translation { | |
130 | + int rindex; /* index to read from */ | |
131 | +@@ -86,7 +93,7 @@ struct extended_translation { | |
131 | 132 | /* |
132 | 133 | * FIXME: Pause/break and Print Screen/SysRq require special handling. |
133 | 134 | */ |
@@ -136,7 +137,7 @@ diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c | ||
136 | 137 | {0xff08, 0x66}, /* Back space */ |
137 | 138 | {0xff09, 0x0d}, /* Tab */ |
138 | 139 | {0xff0d, 0x5a}, /* Return */ |
139 | -@@ -159,7 +166,7 @@ static const struct extended_translation extended_tran | |
140 | +@@ -158,7 +165,7 @@ static const struct extended_translation extended_tran | |
140 | 141 | }; |
141 | 142 | |
142 | 143 | /* ASCII to type 2 scancode lookup table */ |
@@ -145,7 +146,7 @@ diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c | ||
145 | 146 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
146 | 147 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
147 | 148 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
148 | -@@ -319,7 +326,7 @@ ps2kbd_keysym_queue(struct ps2kbd_softc *sc, | |
149 | +@@ -336,7 +343,7 @@ ps2kbd_keysym_queue(struct ps2kbd_softc *sc, | |
149 | 150 | assert(pthread_mutex_isowned_np(&sc->mtx)); |
150 | 151 | int e0_prefix, found; |
151 | 152 | uint8_t code; |
@@ -153,8 +154,8 @@ diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c | ||
153 | 154 | + struct extended_translation *trans; |
154 | 155 | |
155 | 156 | if (keycode) { |
156 | - code = (uint8_t)(keycode & 0x7f); | |
157 | -@@ -375,10 +382,91 @@ ps2kbd_event(int down, uint32_t keysym, uint32_t keyco | |
157 | + code = keyset1to2_translations[(uint8_t)(keycode & 0x7f)]; | |
158 | +@@ -392,10 +399,91 @@ ps2kbd_event(int down, uint32_t keysym, uint32_t keyco | |
158 | 159 | atkbdc_event(sc->atkbdc_sc, 1); |
159 | 160 | } |
160 | 161 |
@@ -1,6 +1,6 @@ | ||
1 | 1 | diff -upN bhyve_base/Makefile bhyve/Makefile |
2 | ---- bhyve_base/Makefile 2020-06-03 10:29:29.352291000 +0900 | |
3 | -+++ bhyve/Makefile 2020-06-03 18:14:34.462454000 +0900 | |
2 | +--- bhyve_base/Makefile 2020-06-14 16:06:21.223455000 +0900 | |
3 | ++++ bhyve/Makefile 2020-06-14 16:12:32.408499000 +0900 | |
4 | 4 | @@ -121,4 +121,6 @@ CFLAGS+=-DGDB_LOG |
5 | 5 | |
6 | 6 | WARNS?= 2 |
@@ -9,8 +9,8 @@ diff -upN bhyve_base/Makefile bhyve/Makefile | ||
9 | 9 | + |
10 | 10 | .include <bsd.prog.mk> |
11 | 11 | diff -upN bhyve_base/bhyve.8 bhyve/bhyve.8 |
12 | ---- bhyve_base/bhyve.8 2020-06-03 10:29:29.331537000 +0900 | |
13 | -+++ bhyve/bhyve.8 2020-06-03 18:14:34.464867000 +0900 | |
12 | +--- bhyve_base/bhyve.8 2020-06-14 16:06:21.236090000 +0900 | |
13 | ++++ bhyve/bhyve.8 2020-06-14 16:12:32.409488000 +0900 | |
14 | 14 | @@ -47,6 +47,7 @@ |
15 | 15 | .Sm on |
16 | 16 | .Op Fl G Ar port |
@@ -34,8 +34,8 @@ diff -upN bhyve_base/bhyve.8 bhyve/bhyve.8 | ||
34 | 34 | Allow devices behind the LPC PCI-ISA bridge to be configured. |
35 | 35 | The only supported devices are the TTY-class devices |
36 | 36 | diff -upN bhyve_base/bhyverun.c bhyve/bhyverun.c |
37 | ---- bhyve_base/bhyverun.c 2020-06-03 10:29:29.370019000 +0900 | |
38 | -+++ bhyve/bhyverun.c 2020-06-03 18:19:50.608647000 +0900 | |
37 | +--- bhyve_base/bhyverun.c 2020-06-14 16:06:21.267122000 +0900 | |
38 | ++++ bhyve/bhyverun.c 2020-06-14 16:12:32.410678000 +0900 | |
39 | 39 | @@ -188,6 +188,8 @@ const char *vmname; |
40 | 40 | int guest_ncpus; |
41 | 41 | uint16_t cores, maxcpus, sockets, threads; |
@@ -88,8 +88,8 @@ diff -upN bhyve_base/bhyverun.c bhyve/bhyverun.c | ||
88 | 88 | case 'l': |
89 | 89 | if (strncmp(optarg, "help", strlen(optarg)) == 0) { |
90 | 90 | diff -upN bhyve_base/bhyverun.h bhyve/bhyverun.h |
91 | ---- bhyve_base/bhyverun.h 2020-06-03 10:29:29.289487000 +0900 | |
92 | -+++ bhyve/bhyverun.h 2020-06-03 18:18:13.198204000 +0900 | |
91 | +--- bhyve_base/bhyverun.h 2020-06-14 16:06:21.236876000 +0900 | |
92 | ++++ bhyve/bhyverun.h 2020-06-14 16:12:32.410831000 +0900 | |
93 | 93 | @@ -39,6 +39,7 @@ extern int guest_ncpus; |
94 | 94 | extern uint16_t cores, sockets, threads; |
95 | 95 | extern char *guest_uuid_str; |
@@ -100,8 +100,8 @@ diff -upN bhyve_base/bhyverun.h bhyve/bhyverun.h | ||
100 | 100 | #ifdef BHYVE_SNAPSHOT |
101 | 101 | Common subdirectories: bhyve_base/kbdlayout and bhyve/kbdlayout |
102 | 102 | diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c |
103 | ---- bhyve_base/ps2kbd.c 2020-06-03 10:31:37.339319000 +0900 | |
104 | -+++ bhyve/ps2kbd.c 2020-06-03 18:17:01.983386000 +0900 | |
103 | +--- bhyve_base/ps2kbd.c 2020-06-14 16:06:49.476779000 +0900 | |
104 | ++++ bhyve/ps2kbd.c 2020-06-14 16:12:32.411172000 +0900 | |
105 | 105 | @@ -31,6 +31,7 @@ |
106 | 106 | __FBSDID("$FreeBSD: head/usr.sbin/bhyve/ps2kbd.c 360648 2020-05-05 00:02:04Z jhb $"); |
107 | 107 |
@@ -129,8 +129,8 @@ diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c | ||
129 | 129 | + |
130 | 130 | struct fifo { |
131 | 131 | uint8_t buf[PS2KBD_FIFOSZ]; |
132 | - uint8_t trans[PS2KBD_FIFOSZ]; | |
133 | -@@ -91,7 +97,7 @@ struct extended_translation { | |
132 | + int rindex; /* index to read from */ | |
133 | +@@ -90,7 +96,7 @@ struct extended_translation { | |
134 | 134 | /* |
135 | 135 | * FIXME: Pause/break and Print Screen/SysRq require special handling. |
136 | 136 | */ |
@@ -139,7 +139,7 @@ diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c | ||
139 | 139 | {0xff08, 0x66}, /* Back space */ |
140 | 140 | {0xff09, 0x0d}, /* Tab */ |
141 | 141 | {0xff0d, 0x5a}, /* Return */ |
142 | -@@ -163,7 +169,7 @@ static const struct extended_translation extended_tran | |
142 | +@@ -162,7 +168,7 @@ static const struct extended_translation extended_tran | |
143 | 143 | }; |
144 | 144 | |
145 | 145 | /* ASCII to type 2 scancode lookup table */ |
@@ -148,7 +148,7 @@ diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c | ||
148 | 148 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
149 | 149 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
150 | 150 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
151 | -@@ -323,7 +329,7 @@ ps2kbd_keysym_queue(struct ps2kbd_softc *sc, | |
151 | +@@ -340,7 +346,7 @@ ps2kbd_keysym_queue(struct ps2kbd_softc *sc, | |
152 | 152 | assert(pthread_mutex_isowned_np(&sc->mtx)); |
153 | 153 | int e0_prefix, found; |
154 | 154 | uint8_t code; |
@@ -156,8 +156,8 @@ diff -upN bhyve_base/ps2kbd.c bhyve/ps2kbd.c | ||
156 | 156 | + struct extended_translation *trans; |
157 | 157 | |
158 | 158 | if (keycode) { |
159 | - code = (uint8_t)(keycode & 0x7f); | |
160 | -@@ -379,10 +385,91 @@ ps2kbd_event(int down, uint32_t keysym, uint32_t keyco | |
159 | + code = keyset1to2_translations[(uint8_t)(keycode & 0x7f)]; | |
160 | +@@ -396,10 +402,91 @@ ps2kbd_event(int down, uint32_t keysym, uint32_t keyco | |
161 | 161 | atkbdc_event(sc->atkbdc_sc, 1); |
162 | 162 | } |
163 | 163 |
@@ -1,38 +1,6 @@ | ||
1 | -diff -upN bhyve_orig/atkbdc.c bhyve/atkbdc.c | |
2 | ---- bhyve_orig/atkbdc.c 2020-05-01 11:25:57.441270000 +0900 | |
3 | -+++ bhyve/atkbdc.c 2020-06-02 20:27:26.516809000 +0900 | |
4 | -@@ -211,24 +211,25 @@ atkbdc_kbd_read(struct atkbdc_softc *sc) | |
5 | - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff | |
6 | - }; | |
7 | - uint8_t val; | |
8 | -+ uint8_t trans; | |
9 | - uint8_t release = 0; | |
10 | - | |
11 | - assert(pthread_mutex_isowned_np(&sc->mtx)); | |
12 | - | |
13 | - if (sc->ram[0] & KBD_TRANSLATION) { | |
14 | -- while (ps2kbd_read(sc->ps2kbd_sc, &val) != -1) { | |
15 | -+ while (ps2kbd_read(sc->ps2kbd_sc, &val, &trans) != -1) { | |
16 | - if (val == 0xf0) { | |
17 | - release = 0x80; | |
18 | - continue; | |
19 | - } else { | |
20 | -- val = translation[val] | release; | |
21 | -+ val = ((trans) ? translation[val] : val) | release; | |
22 | - } | |
23 | - atkbdc_kbd_queue_data(sc, val); | |
24 | - break; | |
25 | - } | |
26 | - } else { | |
27 | - while (sc->kbd.bcnt < FIFOSZ) { | |
28 | -- if (ps2kbd_read(sc->ps2kbd_sc, &val) != -1) | |
29 | -+ if (ps2kbd_read(sc->ps2kbd_sc, &val, &trans) != -1) | |
30 | - atkbdc_kbd_queue_data(sc, val); | |
31 | - else | |
32 | - break; | |
33 | 1 | diff -upN bhyve_orig/console.c bhyve/console.c |
34 | 2 | --- bhyve_orig/console.c 2020-05-01 11:25:57.441001000 +0900 |
35 | -+++ bhyve/console.c 2020-06-02 20:27:26.517334000 +0900 | |
3 | ++++ bhyve/console.c 2020-06-13 14:02:26.514285000 +0900 | |
36 | 4 | @@ -106,10 +106,10 @@ console_ptr_register(ptr_event_func_t event_cb, void * |
37 | 5 | } |
38 | 6 |
@@ -48,7 +16,7 @@ diff -upN bhyve_orig/console.c bhyve/console.c | ||
48 | 16 | void |
49 | 17 | diff -upN bhyve_orig/console.h bhyve/console.h |
50 | 18 | --- bhyve_orig/console.h 2020-05-01 11:25:57.446732000 +0900 |
51 | -+++ bhyve/console.h 2020-06-02 20:27:26.517796000 +0900 | |
19 | ++++ bhyve/console.h 2020-06-13 14:02:26.514771000 +0900 | |
52 | 20 | @@ -34,7 +34,7 @@ |
53 | 21 | struct bhyvegc; |
54 | 22 |
@@ -69,133 +37,35 @@ diff -upN bhyve_orig/console.h bhyve/console.h | ||
69 | 37 | void console_ptr_event(uint8_t button, int x, int y); |
70 | 38 | diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c |
71 | 39 | --- bhyve_orig/ps2kbd.c 2020-05-01 11:25:57.446548000 +0900 |
72 | -+++ bhyve/ps2kbd.c 2020-06-02 20:29:26.881702000 +0900 | |
73 | -@@ -60,6 +60,7 @@ __FBSDID("$FreeBSD: releng/12.1/usr.sbin/bhyve/ps2kbd. | |
74 | - | |
75 | - struct fifo { | |
76 | - uint8_t buf[PS2KBD_FIFOSZ]; | |
77 | -+ uint8_t trans[PS2KBD_FIFOSZ]; | |
78 | - int rindex; /* index to read from */ | |
79 | - int windex; /* index to write to */ | |
80 | - int num; /* number of bytes in the fifo */ | |
81 | -@@ -197,26 +198,28 @@ fifo_reset(struct ps2kbd_softc *sc) | |
82 | - } | |
40 | ++++ bhyve/ps2kbd.c 2020-06-13 14:17:21.587358000 +0900 | |
41 | +@@ -177,6 +177,26 @@ static const uint8_t ascii_translations[128] = { | |
42 | + 0x22, 0x35, 0x1a, 0x54, 0x5d, 0x5b, 0x0e, 0x00, | |
43 | + }; | |
83 | 44 | |
45 | ++/* ScanCode set1 to set2 lookup table */ | |
46 | ++const uint8_t keyset1to2_translations[128] = { | |
47 | ++ 0, 0x76, 0x16, 0x1E, 0x26, 0x25, 0x2e, 0x36, | |
48 | ++ 0x3d, 0x3e, 0x46, 0x45, 0x4e, 0x55, 0x66, 0x0d, | |
49 | ++ 0x15, 0x1d, 0x24, 0x2d, 0x2c, 0x35, 0x3c, 0x43, | |
50 | ++ 0x44, 0x4d, 0x54, 0x5b, 0x5a, 0x14, 0x1c, 0x1b, | |
51 | ++ 0x23, 0x2b, 0x34, 0x33, 0x3b, 0x42, 0x4b, 0x4c, | |
52 | ++ 0x52, 0x0e, 0x12, 0x5d, 0x1a, 0x22, 0x21, 0x2a, | |
53 | ++ 0x32, 0x31, 0x3a, 0x41, 0x49, 0x4a, 0x59, 0x7c, | |
54 | ++ 0x11, 0x29, 0x58, 0x05, 0x06, 0x04, 0x0c, 0x03, | |
55 | ++ 0x0b, 0x83, 0x0a, 0x01, 0x09, 0x77, 0x7e, 0x6c, | |
56 | ++ 0x75, 0x7d, 0x7b, 0x6b, 0x73, 0x74, 0x79, 0x69, | |
57 | ++ 0x72, 0x7a, 0x70, 0x71, 0x84, 0x60, 0x61, 0x78, | |
58 | ++ 0x07, 0x0f, 0x17, 0x1f, 0x27, 0x2f, 0x37, 0x3f, | |
59 | ++ 0x47, 0x4f, 0x56, 0x5e, 0x08, 0x10, 0x18, 0x20, | |
60 | ++ 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x57, 0x6f, | |
61 | ++ 0x13, 0x19, 0x39, 0x51, 0x53, 0x5c, 0x5f, 0x62, | |
62 | ++ 0x63, 0x64, 0x65, 0x67, 0x68, 0x6a, 0x6d, 0x6e, | |
63 | ++}; | |
64 | ++ | |
84 | 65 | static void |
85 | --fifo_put(struct ps2kbd_softc *sc, uint8_t val) | |
86 | -+fifo_put(struct ps2kbd_softc *sc, uint8_t val, uint8_t trans) | |
87 | - { | |
88 | - struct fifo *fifo; | |
89 | - | |
90 | - fifo = &sc->fifo; | |
91 | - if (fifo->num < fifo->size) { | |
92 | - fifo->buf[fifo->windex] = val; | |
93 | -+ fifo->trans[fifo->windex] = trans; | |
94 | - fifo->windex = (fifo->windex + 1) % fifo->size; | |
95 | - fifo->num++; | |
96 | - } | |
97 | - } | |
98 | - | |
99 | - static int | |
100 | --fifo_get(struct ps2kbd_softc *sc, uint8_t *val) | |
101 | -+fifo_get(struct ps2kbd_softc *sc, uint8_t *val, uint8_t *trans) | |
66 | + fifo_init(struct ps2kbd_softc *sc) | |
102 | 67 | { |
103 | - struct fifo *fifo; | |
104 | - | |
105 | - fifo = &sc->fifo; | |
106 | - if (fifo->num > 0) { | |
107 | - *val = fifo->buf[fifo->rindex]; | |
108 | -+ *trans = fifo->trans[fifo->rindex]; | |
109 | - fifo->rindex = (fifo->rindex + 1) % fifo->size; | |
110 | - fifo->num--; | |
111 | - return (0); | |
112 | -@@ -226,12 +229,12 @@ fifo_get(struct ps2kbd_softc *sc, uint8_t *val) | |
113 | - } | |
114 | - | |
115 | - int | |
116 | --ps2kbd_read(struct ps2kbd_softc *sc, uint8_t *val) | |
117 | -+ps2kbd_read(struct ps2kbd_softc *sc, uint8_t *val, uint8_t *trans) | |
118 | - { | |
119 | - int retval; | |
120 | - | |
121 | - pthread_mutex_lock(&sc->mtx); | |
122 | -- retval = fifo_get(sc, val); | |
123 | -+ retval = fifo_get(sc, val, trans); | |
124 | - pthread_mutex_unlock(&sc->mtx); | |
125 | - | |
126 | - return (retval); | |
127 | -@@ -244,13 +247,13 @@ ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val) | |
128 | - if (sc->curcmd) { | |
129 | - switch (sc->curcmd) { | |
130 | - case PS2KC_SET_TYPEMATIC: | |
131 | -- fifo_put(sc, PS2KC_ACK); | |
132 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
133 | - break; | |
134 | - case PS2KC_SET_SCANCODE_SET: | |
135 | -- fifo_put(sc, PS2KC_ACK); | |
136 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
137 | - break; | |
138 | - case PS2KC_SET_LEDS: | |
139 | -- fifo_put(sc, PS2KC_ACK); | |
140 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
141 | - break; | |
142 | - default: | |
143 | - fprintf(stderr, "Unhandled ps2 keyboard current " | |
144 | -@@ -261,41 +264,41 @@ ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val) | |
145 | - } else { | |
146 | - switch (val) { | |
147 | - case 0x00: | |
148 | -- fifo_put(sc, PS2KC_ACK); | |
149 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
150 | - break; | |
151 | - case PS2KC_RESET_DEV: | |
152 | - fifo_reset(sc); | |
153 | -- fifo_put(sc, PS2KC_ACK); | |
154 | -- fifo_put(sc, PS2KC_BAT_SUCCESS); | |
155 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
156 | -+ fifo_put(sc, PS2KC_BAT_SUCCESS, 0); | |
157 | - break; | |
158 | - case PS2KC_DISABLE: | |
159 | - sc->enabled = false; | |
160 | -- fifo_put(sc, PS2KC_ACK); | |
161 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
162 | - break; | |
163 | - case PS2KC_ENABLE: | |
164 | - sc->enabled = true; | |
165 | - fifo_reset(sc); | |
166 | -- fifo_put(sc, PS2KC_ACK); | |
167 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
168 | - break; | |
169 | - case PS2KC_SET_TYPEMATIC: | |
170 | - sc->curcmd = val; | |
171 | -- fifo_put(sc, PS2KC_ACK); | |
172 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
173 | - break; | |
174 | - case PS2KC_SEND_DEV_ID: | |
175 | -- fifo_put(sc, PS2KC_ACK); | |
176 | -- fifo_put(sc, 0xab); | |
177 | -- fifo_put(sc, 0x83); | |
178 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
179 | -+ fifo_put(sc, 0xab, 0); | |
180 | -+ fifo_put(sc, 0x83, 0); | |
181 | - break; | |
182 | - case PS2KC_SET_SCANCODE_SET: | |
183 | - sc->curcmd = val; | |
184 | -- fifo_put(sc, PS2KC_ACK); | |
185 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
186 | - break; | |
187 | - case PS2KC_ECHO: | |
188 | -- fifo_put(sc, PS2KC_ECHO); | |
189 | -+ fifo_put(sc, PS2KC_ECHO, 0); | |
190 | - break; | |
191 | - case PS2KC_SET_LEDS: | |
192 | - sc->curcmd = val; | |
193 | -- fifo_put(sc, PS2KC_ACK); | |
194 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
195 | - break; | |
196 | - default: | |
197 | - fprintf(stderr, "Unhandled ps2 keyboard command " | |
198 | -@@ -311,26 +314,32 @@ ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val) | |
68 | +@@ -311,26 +331,32 @@ ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val) | |
199 | 69 | */ |
200 | 70 | static void |
201 | 71 | ps2kbd_keysym_queue(struct ps2kbd_softc *sc, |
@@ -212,7 +82,7 @@ diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c | ||
212 | 82 | - code = ascii_translations[keysym]; |
213 | 83 | - e0_prefix = 0; |
214 | 84 | + if (keycode) { |
215 | -+ code = (uint8_t)(keycode & 0x7f); | |
85 | ++ code = keyset1to2_translations[(uint8_t)(keycode & 0x7f)]; | |
216 | 86 | + e0_prefix = ((keycode & 0x80) ? SCANCODE_E0_PREFIX : 0); |
217 | 87 | found = 1; |
218 | 88 | } else { |
@@ -240,17 +110,7 @@ diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c | ||
240 | 110 | } |
241 | 111 | } |
242 | 112 | } |
243 | -@@ -341,14 +350,14 @@ ps2kbd_keysym_queue(struct ps2kbd_softc *sc, | |
244 | - } | |
245 | - | |
246 | - if (e0_prefix) | |
247 | -- fifo_put(sc, 0xe0); | |
248 | -+ fifo_put(sc, 0xe0, 0); | |
249 | - if (!down) | |
250 | -- fifo_put(sc, 0xf0); | |
251 | -- fifo_put(sc, code); | |
252 | -+ fifo_put(sc, 0xf0, 0); | |
253 | -+ fifo_put(sc, code, (keycode ? 0 : 1)); | |
113 | +@@ -348,7 +374,7 @@ ps2kbd_keysym_queue(struct ps2kbd_softc *sc, | |
254 | 114 | } |
255 | 115 | |
256 | 116 | static void |
@@ -259,7 +119,7 @@ diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c | ||
259 | 119 | { |
260 | 120 | struct ps2kbd_softc *sc = arg; |
261 | 121 | int fifo_full; |
262 | -@@ -359,7 +368,7 @@ ps2kbd_event(int down, uint32_t keysym, void *arg) | |
122 | +@@ -359,7 +385,7 @@ ps2kbd_event(int down, uint32_t keysym, void *arg) | |
263 | 123 | return; |
264 | 124 | } |
265 | 125 | fifo_full = sc->fifo.num == PS2KBD_FIFOSZ; |
@@ -268,21 +128,9 @@ diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c | ||
268 | 128 | pthread_mutex_unlock(&sc->mtx); |
269 | 129 | |
270 | 130 | if (!fifo_full) |
271 | -diff -upN bhyve_orig/ps2kbd.h bhyve/ps2kbd.h | |
272 | ---- bhyve_orig/ps2kbd.h 2020-05-01 11:25:57.441775000 +0900 | |
273 | -+++ bhyve/ps2kbd.h 2020-06-02 20:27:26.519082000 +0900 | |
274 | -@@ -35,7 +35,7 @@ struct atkbdc_softc; | |
275 | - | |
276 | - struct ps2kbd_softc *ps2kbd_init(struct atkbdc_softc *sc); | |
277 | - | |
278 | --int ps2kbd_read(struct ps2kbd_softc *sc, uint8_t *val); | |
279 | -+int ps2kbd_read(struct ps2kbd_softc *sc, uint8_t *val, uint8_t *trans); | |
280 | - void ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val); | |
281 | - | |
282 | - #endif /* _PS2KBD_H_ */ | |
283 | 131 | diff -upN bhyve_orig/rfb.c bhyve/rfb.c |
284 | 132 | --- bhyve_orig/rfb.c 2020-05-01 11:25:57.446856000 +0900 |
285 | -+++ bhyve/rfb.c 2020-06-02 20:27:26.520216000 +0900 | |
133 | ++++ bhyve/rfb.c 2020-06-13 14:02:26.516609000 +0900 | |
286 | 134 | @@ -97,7 +97,10 @@ struct rfb_softc { |
287 | 135 | bool enc_raw_ok; |
288 | 136 | bool enc_zlib_ok; |
@@ -1,38 +1,6 @@ | ||
1 | -diff -upN bhyve_orig/atkbdc.c bhyve/atkbdc.c | |
2 | ---- bhyve_orig/atkbdc.c 2020-05-28 09:02:50.000000000 +0900 | |
3 | -+++ bhyve/atkbdc.c 2020-06-03 10:31:37.337347000 +0900 | |
4 | -@@ -216,24 +216,25 @@ atkbdc_kbd_read(struct atkbdc_softc *sc) | |
5 | - 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff | |
6 | - }; | |
7 | - uint8_t val; | |
8 | -+ uint8_t trans; | |
9 | - uint8_t release = 0; | |
10 | - | |
11 | - assert(pthread_mutex_isowned_np(&sc->mtx)); | |
12 | - | |
13 | - if (sc->ram[0] & KBD_TRANSLATION) { | |
14 | -- while (ps2kbd_read(sc->ps2kbd_sc, &val) != -1) { | |
15 | -+ while (ps2kbd_read(sc->ps2kbd_sc, &val, &trans) != -1) { | |
16 | - if (val == 0xf0) { | |
17 | - release = 0x80; | |
18 | - continue; | |
19 | - } else { | |
20 | -- val = translation[val] | release; | |
21 | -+ val = ((trans) ? translation[val] : val) | release; | |
22 | - } | |
23 | - atkbdc_kbd_queue_data(sc, val); | |
24 | - break; | |
25 | - } | |
26 | - } else { | |
27 | - while (sc->kbd.bcnt < FIFOSZ) { | |
28 | -- if (ps2kbd_read(sc->ps2kbd_sc, &val) != -1) | |
29 | -+ if (ps2kbd_read(sc->ps2kbd_sc, &val, &trans) != -1) | |
30 | - atkbdc_kbd_queue_data(sc, val); | |
31 | - else | |
32 | - break; | |
33 | 1 | diff -upN bhyve_orig/console.c bhyve/console.c |
34 | ---- bhyve_orig/console.c 2020-05-28 09:02:50.000000000 +0900 | |
35 | -+++ bhyve/console.c 2020-06-03 10:31:37.338047000 +0900 | |
2 | +--- bhyve_orig/console.c 2020-06-14 10:25:23.470371000 +0900 | |
3 | ++++ bhyve/console.c 2020-06-14 16:06:49.475147000 +0900 | |
36 | 4 | @@ -106,10 +106,10 @@ console_ptr_register(ptr_event_func_t event_cb, void * |
37 | 5 | } |
38 | 6 |
@@ -47,8 +15,8 @@ diff -upN bhyve_orig/console.c bhyve/console.c | ||
47 | 15 | |
48 | 16 | void |
49 | 17 | diff -upN bhyve_orig/console.h bhyve/console.h |
50 | ---- bhyve_orig/console.h 2020-05-28 09:02:50.000000000 +0900 | |
51 | -+++ bhyve/console.h 2020-06-03 10:31:37.338668000 +0900 | |
18 | +--- bhyve_orig/console.h 2020-06-14 10:25:23.454420000 +0900 | |
19 | ++++ bhyve/console.h 2020-06-14 16:06:49.475771000 +0900 | |
52 | 20 | @@ -34,7 +34,7 @@ |
53 | 21 | struct bhyvegc; |
54 | 22 |
@@ -68,134 +36,36 @@ diff -upN bhyve_orig/console.h bhyve/console.h | ||
68 | 36 | void console_ptr_register(ptr_event_func_t event_cb, void *arg, int pri); |
69 | 37 | void console_ptr_event(uint8_t button, int x, int y); |
70 | 38 | diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c |
71 | ---- bhyve_orig/ps2kbd.c 2020-05-28 09:02:50.000000000 +0900 | |
72 | -+++ bhyve/ps2kbd.c 2020-06-03 10:31:37.339319000 +0900 | |
73 | -@@ -64,6 +64,7 @@ __FBSDID("$FreeBSD: head/usr.sbin/bhyve/ps2kbd.c 36064 | |
74 | - | |
75 | - struct fifo { | |
76 | - uint8_t buf[PS2KBD_FIFOSZ]; | |
77 | -+ uint8_t trans[PS2KBD_FIFOSZ]; | |
78 | - int rindex; /* index to read from */ | |
79 | - int windex; /* index to write to */ | |
80 | - int num; /* number of bytes in the fifo */ | |
81 | -@@ -201,26 +202,28 @@ fifo_reset(struct ps2kbd_softc *sc) | |
82 | - } | |
39 | +--- bhyve_orig/ps2kbd.c 2020-06-14 10:25:24.140690000 +0900 | |
40 | ++++ bhyve/ps2kbd.c 2020-06-14 16:06:49.476779000 +0900 | |
41 | +@@ -181,6 +181,26 @@ static const uint8_t ascii_translations[128] = { | |
42 | + 0x22, 0x35, 0x1a, 0x54, 0x5d, 0x5b, 0x0e, 0x00, | |
43 | + }; | |
83 | 44 | |
45 | ++/* ScanCode set1 to set2 lookup table */ | |
46 | ++const uint8_t keyset1to2_translations[128] = { | |
47 | ++ 0, 0x76, 0x16, 0x1E, 0x26, 0x25, 0x2e, 0x36, | |
48 | ++ 0x3d, 0x3e, 0x46, 0x45, 0x4e, 0x55, 0x66, 0x0d, | |
49 | ++ 0x15, 0x1d, 0x24, 0x2d, 0x2c, 0x35, 0x3c, 0x43, | |
50 | ++ 0x44, 0x4d, 0x54, 0x5b, 0x5a, 0x14, 0x1c, 0x1b, | |
51 | ++ 0x23, 0x2b, 0x34, 0x33, 0x3b, 0x42, 0x4b, 0x4c, | |
52 | ++ 0x52, 0x0e, 0x12, 0x5d, 0x1a, 0x22, 0x21, 0x2a, | |
53 | ++ 0x32, 0x31, 0x3a, 0x41, 0x49, 0x4a, 0x59, 0x7c, | |
54 | ++ 0x11, 0x29, 0x58, 0x05, 0x06, 0x04, 0x0c, 0x03, | |
55 | ++ 0x0b, 0x83, 0x0a, 0x01, 0x09, 0x77, 0x7e, 0x6c, | |
56 | ++ 0x75, 0x7d, 0x7b, 0x6b, 0x73, 0x74, 0x79, 0x69, | |
57 | ++ 0x72, 0x7a, 0x70, 0x71, 0x84, 0x60, 0x61, 0x78, | |
58 | ++ 0x07, 0x0f, 0x17, 0x1f, 0x27, 0x2f, 0x37, 0x3f, | |
59 | ++ 0x47, 0x4f, 0x56, 0x5e, 0x08, 0x10, 0x18, 0x20, | |
60 | ++ 0x28, 0x30, 0x38, 0x40, 0x48, 0x50, 0x57, 0x6f, | |
61 | ++ 0x13, 0x19, 0x39, 0x51, 0x53, 0x5c, 0x5f, 0x62, | |
62 | ++ 0x63, 0x64, 0x65, 0x67, 0x68, 0x6a, 0x6d, 0x6e, | |
63 | ++}; | |
64 | ++ | |
84 | 65 | static void |
85 | --fifo_put(struct ps2kbd_softc *sc, uint8_t val) | |
86 | -+fifo_put(struct ps2kbd_softc *sc, uint8_t val, uint8_t trans) | |
87 | - { | |
88 | - struct fifo *fifo; | |
89 | - | |
90 | - fifo = &sc->fifo; | |
91 | - if (fifo->num < fifo->size) { | |
92 | - fifo->buf[fifo->windex] = val; | |
93 | -+ fifo->trans[fifo->windex] = trans; | |
94 | - fifo->windex = (fifo->windex + 1) % fifo->size; | |
95 | - fifo->num++; | |
96 | - } | |
97 | - } | |
98 | - | |
99 | - static int | |
100 | --fifo_get(struct ps2kbd_softc *sc, uint8_t *val) | |
101 | -+fifo_get(struct ps2kbd_softc *sc, uint8_t *val, uint8_t *trans) | |
66 | + fifo_init(struct ps2kbd_softc *sc) | |
102 | 67 | { |
103 | - struct fifo *fifo; | |
104 | - | |
105 | - fifo = &sc->fifo; | |
106 | - if (fifo->num > 0) { | |
107 | - *val = fifo->buf[fifo->rindex]; | |
108 | -+ *trans = fifo->trans[fifo->rindex]; | |
109 | - fifo->rindex = (fifo->rindex + 1) % fifo->size; | |
110 | - fifo->num--; | |
111 | - return (0); | |
112 | -@@ -230,12 +233,12 @@ fifo_get(struct ps2kbd_softc *sc, uint8_t *val) | |
113 | - } | |
114 | - | |
115 | - int | |
116 | --ps2kbd_read(struct ps2kbd_softc *sc, uint8_t *val) | |
117 | -+ps2kbd_read(struct ps2kbd_softc *sc, uint8_t *val, uint8_t *trans) | |
118 | - { | |
119 | - int retval; | |
120 | - | |
121 | - pthread_mutex_lock(&sc->mtx); | |
122 | -- retval = fifo_get(sc, val); | |
123 | -+ retval = fifo_get(sc, val, trans); | |
124 | - pthread_mutex_unlock(&sc->mtx); | |
125 | - | |
126 | - return (retval); | |
127 | -@@ -248,13 +251,13 @@ ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val) | |
128 | - if (sc->curcmd) { | |
129 | - switch (sc->curcmd) { | |
130 | - case PS2KC_SET_TYPEMATIC: | |
131 | -- fifo_put(sc, PS2KC_ACK); | |
132 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
133 | - break; | |
134 | - case PS2KC_SET_SCANCODE_SET: | |
135 | -- fifo_put(sc, PS2KC_ACK); | |
136 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
137 | - break; | |
138 | - case PS2KC_SET_LEDS: | |
139 | -- fifo_put(sc, PS2KC_ACK); | |
140 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
141 | - break; | |
142 | - default: | |
143 | - EPRINTLN("Unhandled ps2 keyboard current " | |
144 | -@@ -265,41 +268,41 @@ ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val) | |
145 | - } else { | |
146 | - switch (val) { | |
147 | - case 0x00: | |
148 | -- fifo_put(sc, PS2KC_ACK); | |
149 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
150 | - break; | |
151 | - case PS2KC_RESET_DEV: | |
152 | - fifo_reset(sc); | |
153 | -- fifo_put(sc, PS2KC_ACK); | |
154 | -- fifo_put(sc, PS2KC_BAT_SUCCESS); | |
155 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
156 | -+ fifo_put(sc, PS2KC_BAT_SUCCESS, 0); | |
157 | - break; | |
158 | - case PS2KC_DISABLE: | |
159 | - sc->enabled = false; | |
160 | -- fifo_put(sc, PS2KC_ACK); | |
161 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
162 | - break; | |
163 | - case PS2KC_ENABLE: | |
164 | - sc->enabled = true; | |
165 | - fifo_reset(sc); | |
166 | -- fifo_put(sc, PS2KC_ACK); | |
167 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
168 | - break; | |
169 | - case PS2KC_SET_TYPEMATIC: | |
170 | - sc->curcmd = val; | |
171 | -- fifo_put(sc, PS2KC_ACK); | |
172 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
173 | - break; | |
174 | - case PS2KC_SEND_DEV_ID: | |
175 | -- fifo_put(sc, PS2KC_ACK); | |
176 | -- fifo_put(sc, 0xab); | |
177 | -- fifo_put(sc, 0x83); | |
178 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
179 | -+ fifo_put(sc, 0xab, 0); | |
180 | -+ fifo_put(sc, 0x83, 0); | |
181 | - break; | |
182 | - case PS2KC_SET_SCANCODE_SET: | |
183 | - sc->curcmd = val; | |
184 | -- fifo_put(sc, PS2KC_ACK); | |
185 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
186 | - break; | |
187 | - case PS2KC_ECHO: | |
188 | -- fifo_put(sc, PS2KC_ECHO); | |
189 | -+ fifo_put(sc, PS2KC_ECHO, 0); | |
190 | - break; | |
191 | - case PS2KC_SET_LEDS: | |
192 | - sc->curcmd = val; | |
193 | -- fifo_put(sc, PS2KC_ACK); | |
194 | -+ fifo_put(sc, PS2KC_ACK, 0); | |
195 | - break; | |
196 | - default: | |
197 | - EPRINTLN("Unhandled ps2 keyboard command " | |
198 | -@@ -315,26 +318,32 @@ ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val) | |
68 | +@@ -315,26 +335,32 @@ ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val) | |
199 | 69 | */ |
200 | 70 | static void |
201 | 71 | ps2kbd_keysym_queue(struct ps2kbd_softc *sc, |
@@ -212,7 +82,7 @@ diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c | ||
212 | 82 | - code = ascii_translations[keysym]; |
213 | 83 | - e0_prefix = 0; |
214 | 84 | + if (keycode) { |
215 | -+ code = (uint8_t)(keycode & 0x7f); | |
85 | ++ code = keyset1to2_translations[(uint8_t)(keycode & 0x7f)]; | |
216 | 86 | + e0_prefix = ((keycode & 0x80) ? SCANCODE_E0_PREFIX : 0); |
217 | 87 | found = 1; |
218 | 88 | } else { |
@@ -240,17 +110,7 @@ diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c | ||
240 | 110 | } |
241 | 111 | } |
242 | 112 | } |
243 | -@@ -345,14 +354,14 @@ ps2kbd_keysym_queue(struct ps2kbd_softc *sc, | |
244 | - } | |
245 | - | |
246 | - if (e0_prefix) | |
247 | -- fifo_put(sc, 0xe0); | |
248 | -+ fifo_put(sc, 0xe0, 0); | |
249 | - if (!down) | |
250 | -- fifo_put(sc, 0xf0); | |
251 | -- fifo_put(sc, code); | |
252 | -+ fifo_put(sc, 0xf0, 0); | |
253 | -+ fifo_put(sc, code, (keycode ? 0 : 1)); | |
113 | +@@ -352,7 +378,7 @@ ps2kbd_keysym_queue(struct ps2kbd_softc *sc, | |
254 | 114 | } |
255 | 115 | |
256 | 116 | static void |
@@ -259,7 +119,7 @@ diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c | ||
259 | 119 | { |
260 | 120 | struct ps2kbd_softc *sc = arg; |
261 | 121 | int fifo_full; |
262 | -@@ -363,7 +372,7 @@ ps2kbd_event(int down, uint32_t keysym, void *arg) | |
122 | +@@ -363,7 +389,7 @@ ps2kbd_event(int down, uint32_t keysym, void *arg) | |
263 | 123 | return; |
264 | 124 | } |
265 | 125 | fifo_full = sc->fifo.num == PS2KBD_FIFOSZ; |
@@ -268,21 +128,9 @@ diff -upN bhyve_orig/ps2kbd.c bhyve/ps2kbd.c | ||
268 | 128 | pthread_mutex_unlock(&sc->mtx); |
269 | 129 | |
270 | 130 | if (!fifo_full) |
271 | -diff -upN bhyve_orig/ps2kbd.h bhyve/ps2kbd.h | |
272 | ---- bhyve_orig/ps2kbd.h 2020-05-28 09:02:50.000000000 +0900 | |
273 | -+++ bhyve/ps2kbd.h 2020-06-03 10:31:37.339486000 +0900 | |
274 | -@@ -36,7 +36,7 @@ struct vm_snapshot_meta; | |
275 | - | |
276 | - struct ps2kbd_softc *ps2kbd_init(struct atkbdc_softc *sc); | |
277 | - | |
278 | --int ps2kbd_read(struct ps2kbd_softc *sc, uint8_t *val); | |
279 | -+int ps2kbd_read(struct ps2kbd_softc *sc, uint8_t *val, uint8_t *trans); | |
280 | - void ps2kbd_write(struct ps2kbd_softc *sc, uint8_t val); | |
281 | - | |
282 | - #ifdef BHYVE_SNAPSHOT | |
283 | 131 | diff -upN bhyve_orig/rfb.c bhyve/rfb.c |
284 | ---- bhyve_orig/rfb.c 2020-05-28 09:02:50.000000000 +0900 | |
285 | -+++ bhyve/rfb.c 2020-06-03 10:31:37.339898000 +0900 | |
132 | +--- bhyve_orig/rfb.c 2020-06-14 10:25:24.141562000 +0900 | |
133 | ++++ bhyve/rfb.c 2020-06-14 16:06:49.477815000 +0900 | |
286 | 134 | @@ -99,7 +99,10 @@ struct rfb_softc { |
287 | 135 | bool enc_raw_ok; |
288 | 136 | bool enc_zlib_ok; |