diff options
author | Xuzhou Cheng <xuzhou.cheng@windriver.com> | 2022-10-28 12:57:26 +0800 |
---|---|---|
committer | Thomas Huth <thuth@redhat.com> | 2022-10-28 11:17:12 +0200 |
commit | c9923550b446e54413024117c0ed978a08e3ab1a (patch) | |
tree | 5a16826541c7c0e2466c6f8a85e472ec778d1009 /softmmu | |
parent | 8f4bcbcf110f27b3bf8b8c33b48ec321f3e136d3 (diff) | |
download | qemu-c9923550b446e54413024117c0ed978a08e3ab1a.zip qemu-c9923550b446e54413024117c0ed978a08e3ab1a.tar.gz qemu-c9923550b446e54413024117c0ed978a08e3ab1a.tar.bz2 |
accel/qtest: Support qtest accelerator for Windows
Currently signal SIGIPI [=SIGUSR1] is used to kick the dummy CPU
when qtest accelerator is used. However SIGUSR1 is unsupported on
Windows. To support Windows, we add a QemuSemaphore CPUState::sem
to kick the dummy CPU instead for Windows.
Signed-off-by: Xuzhou Cheng <xuzhou.cheng@windriver.com>
Signed-off-by: Bin Meng <bin.meng@windriver.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20221028045736.679903-2-bin.meng@windriver.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'softmmu')
-rw-r--r-- | softmmu/cpus.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/softmmu/cpus.c b/softmmu/cpus.c index 61b27ff..9dd1a4d 100644 --- a/softmmu/cpus.c +++ b/softmmu/cpus.c @@ -437,18 +437,19 @@ void qemu_wait_io_event(CPUState *cpu) void cpus_kick_thread(CPUState *cpu) { -#ifndef _WIN32 - int err; - if (cpu->thread_kicked) { return; } cpu->thread_kicked = true; - err = pthread_kill(cpu->thread->thread, SIG_IPI); + +#ifndef _WIN32 + int err = pthread_kill(cpu->thread->thread, SIG_IPI); if (err && err != ESRCH) { fprintf(stderr, "qemu:%s: %s", __func__, strerror(err)); exit(1); } +#else + qemu_sem_post(&cpu->sem); #endif } |