diff options
| author | Christian Krinitsin <mail@krinitsin.com> | 2025-06-03 12:04:13 +0000 |
|---|---|---|
| committer | Christian Krinitsin <mail@krinitsin.com> | 2025-06-03 12:04:13 +0000 |
| commit | 256709d2eb3fd80d768a99964be5caa61effa2a0 (patch) | |
| tree | 05b2352fba70923126836a64b6a0de43902e976a /results/classifier/105/device/2307 | |
| parent | 2ab14fa96a6c5484b5e4ba8337551bb8dcc79cc5 (diff) | |
| download | emulator-bug-study-256709d2eb3fd80d768a99964be5caa61effa2a0.tar.gz emulator-bug-study-256709d2eb3fd80d768a99964be5caa61effa2a0.zip | |
add new classifier result
Diffstat (limited to 'results/classifier/105/device/2307')
| -rw-r--r-- | results/classifier/105/device/2307 | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/results/classifier/105/device/2307 b/results/classifier/105/device/2307 new file mode 100644 index 00000000..455bc214 --- /dev/null +++ b/results/classifier/105/device/2307 @@ -0,0 +1,52 @@ +device: 0.878 +socket: 0.863 +instruction: 0.839 +graphic: 0.778 +boot: 0.742 +other: 0.730 +network: 0.691 +vnc: 0.674 +mistranslation: 0.665 +KVM: 0.519 +semantic: 0.508 +assembly: 0.368 + +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" |