diff options
author | Jan Kiszka <jan.kiszka@siemens.com> | 2011-03-12 17:43:51 +0100 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2011-03-13 14:44:21 +0000 |
commit | b7680cb6078bd7294a3dd86473d3f2fdee991dd0 (patch) | |
tree | fdebb0b78694eab436d31c484b028523805ee301 /cpus.c | |
parent | 68c23e5520e8286d79d96ab47c0ea722ceb75041 (diff) | |
download | qemu-b7680cb6078bd7294a3dd86473d3f2fdee991dd0.tar.gz qemu-b7680cb6078bd7294a3dd86473d3f2fdee991dd0.tar.bz2 qemu-b7680cb6078bd7294a3dd86473d3f2fdee991dd0.zip |
Refactor thread retrieval and check
We have qemu_cpu_self and qemu_thread_self. The latter is retrieving the
current thread, the former is checking for equality (using CPUState). We
also have qemu_thread_equal which is only used like qemu_cpu_self.
This refactors the interfaces, creating qemu_cpu_is_self and
qemu_thread_is_self as well ass qemu_thread_get_self.
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'cpus.c')
-rw-r--r-- | cpus.c | 22 |
1 files changed, 8 insertions, 14 deletions
@@ -531,7 +531,7 @@ void qemu_init_vcpu(void *_env) } } -int qemu_cpu_self(void *env) +int qemu_cpu_is_self(void *env) { return 1; } @@ -699,7 +699,7 @@ int qemu_init_main_loop(void) qemu_mutex_init(&qemu_global_mutex); qemu_mutex_lock(&qemu_global_mutex); - qemu_thread_self(&io_thread); + qemu_thread_get_self(&io_thread); return 0; } @@ -714,7 +714,7 @@ void run_on_cpu(CPUState *env, void (*func)(void *data), void *data) { struct qemu_work_item wi; - if (qemu_cpu_self(env)) { + if (qemu_cpu_is_self(env)) { func(data); return; } @@ -808,7 +808,7 @@ static void *qemu_kvm_cpu_thread_fn(void *arg) int r; qemu_mutex_lock(&qemu_global_mutex); - qemu_thread_self(env->thread); + qemu_thread_get_self(env->thread); r = kvm_init_vcpu(env); if (r < 0) { @@ -845,7 +845,7 @@ static void *qemu_tcg_cpu_thread_fn(void *arg) CPUState *env = arg; qemu_tcg_init_cpu_signals(); - qemu_thread_self(env->thread); + qemu_thread_get_self(env->thread); /* signal CPU creation */ qemu_mutex_lock(&qemu_global_mutex); @@ -888,14 +888,11 @@ void qemu_cpu_kick_self(void) } } -int qemu_cpu_self(void *_env) +int qemu_cpu_is_self(void *_env) { CPUState *env = _env; - QemuThread this; - qemu_thread_self(&this); - - return qemu_thread_equal(&this, env->thread); + return qemu_thread_is_self(env->thread); } void qemu_mutex_lock_iothread(void) @@ -1023,10 +1020,7 @@ void cpu_stop_current(void) void vm_stop(int reason) { - QemuThread me; - qemu_thread_self(&me); - - if (!qemu_thread_equal(&me, &io_thread)) { + if (!qemu_thread_is_self(&io_thread)) { qemu_system_vmstop_request(reason); /* * FIXME: should not return to device code in case |