summary refs log tree commit diff stats
path: root/results/classifier/118/peripherals/2307
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/118/peripherals/2307')
-rw-r--r--results/classifier/118/peripherals/230769
1 files changed, 69 insertions, 0 deletions
diff --git a/results/classifier/118/peripherals/2307 b/results/classifier/118/peripherals/2307
new file mode 100644
index 000000000..ece6e3303
--- /dev/null
+++ b/results/classifier/118/peripherals/2307
@@ -0,0 +1,69 @@
+peripherals: 0.896
+virtual: 0.882
+device: 0.878
+user-level: 0.875
+socket: 0.863
+performance: 0.854
+arm: 0.853
+files: 0.849
+permissions: 0.817
+architecture: 0.808
+ppc: 0.801
+graphic: 0.778
+boot: 0.742
+PID: 0.705
+network: 0.691
+kernel: 0.690
+debug: 0.688
+vnc: 0.674
+mistranslation: 0.665
+hypervisor: 0.636
+x86: 0.604
+VMM: 0.564
+KVM: 0.519
+semantic: 0.508
+risc-v: 0.493
+register: 0.444
+TCG: 0.372
+assembly: 0.368
+i386: 0.231
+
+QEMU Windows COM port filenames not recognized i.e. \\.\COM19 or \\.\CNCA0
+Steps to reproduce:
+1. Run qemu-system-arm with the comand line above.
+2. QEMU fails with `qemu-system-arm.exe: -gdb \\.\CNCA8: '\\.\CNCA8' is not a valid char driver`
+3. ```qemu-system-arm.exe -machine mps2-an500 -gdb \\.\COM19
+qemu-system-arm.exe: -gdb \\.\COM19: '\\.\COM19' is not a valid char driver
+```
+Additional information:
+Windows allows COM ports numbered 10 and higher to be prefixed with a `\\.\` escape as in `\\.\COM17`. Such COM port assignments are not uncommon when a plurality of USB serial adapters.
+Equally problematic are virtual COM port designations such as `\\.\CNCA8` created by the Windows 10x64 driver package known as `com0com`: https://pete.akeo.ie/2011/07/com0com-signed-drivers.html
+
+Upon checking the source pulled from the Github mirror an initial fix was to simply modify /chardev/char.c, but this appears insufficient. Sadly.
+
+Please ask if more information is required. I am actively working on extending an existing QEMU machine emulation. A patch to fix this problem is below. Please comment if applicable.
+
+Jerry.
+
+```
+diff --git a/chardev/char.c b/chardev/char.c
+index 3c43fb1278..7a3f342c72 100644
+--- a/chardev/char.c
++++ b/chardev/char.c
+@@ -418,6 +418,13 @@ QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename,
+         qemu_opt_set(opts, "path", filename, &error_abort);
+         return opts;
+     }
++       // JME
++    if (strstart(filename, "\\\\.\\", NULL)) {
++        qemu_opt_set(opts, "backend", "serial", &error_abort);
++        qemu_opt_set(opts, "path", filename, &error_abort);
++        return opts;
++    }
++
+     if (strstart(filename, "file:", &p)) {
+         qemu_opt_set(opts, "backend", "file", &error_abort);
+         qemu_opt_set(opts, "path", p, &error_abort);
+
+```
+/label ~"kind::Bug"