* [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements
@ 2012-08-02 0:48 Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 1/4] qemu-thread: Let qemu_thread_is_self() return bool Andreas Färber
` (4 more replies)
0 siblings, 5 replies; 8+ messages in thread
From: Andreas Färber @ 2012-08-02 0:48 UTC (permalink / raw)
To: qemu-devel; +Cc: Igor Mammedov, Andreas Färber, anthony
Hello Anthony,
Please pull a next batch of QOM CPUState refactorings, cherry-picked
from my long-standing QOM CPUState part 4 series.
Some parts of that series (s390 and xen) had already been merged.
This batch now includes actual field movements common to softmmu and *-user.
Patches depending on changes to APIC modelling are postponed pending v2.
Tested on Linux/x86_64 and compile-tested for mingw32/64.
Regards,
Andreas
Cc: Anthony Liguori <anthony@codemonkey.ws>
Cc: Igor Mammedov <imammedo@redhat.com>
The following changes since commit 02d2bd5d57812154cfb978bc2098cf49d551583d:
Replace 'struct siginfo' with 'siginfo_t'. (2012-08-01 08:54:07 -0500)
are available in the git repository at:
git://repo.or.cz/qemu/afaerber.git qom-cpu-4
Andreas Färber (4):
qemu-thread: Let qemu_thread_is_self() return bool
cpu: Move CPU_COMMON_THREAD into CPUState
cpu: Move thread field into CPUState
cpu: Move thread_kicked to CPUState
cpu-defs.h | 11 ----------
cpus.c | 56 +++++++++++++++++++++++++++++++-------------------
include/qemu/cpu.h | 7 ++++++
qemu-thread-posix.c | 2 +-
qemu-thread-win32.c | 2 +-
qemu-thread.h | 3 +-
6 files changed, 46 insertions(+), 35 deletions(-)
^ permalink raw reply [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH for-1.2 1/4] qemu-thread: Let qemu_thread_is_self() return bool
2012-08-02 0:48 [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements Andreas Färber
@ 2012-08-02 0:48 ` Andreas Färber
2012-08-02 6:27 ` Stefan Weil
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 2/4] cpu: Move CPU_COMMON_THREAD into CPUState Andreas Färber
` (3 subsequent siblings)
4 siblings, 1 reply; 8+ messages in thread
From: Andreas Färber @ 2012-08-02 0:48 UTC (permalink / raw)
To: qemu-devel; +Cc: Stefan Weil, Andreas Färber, anthony
qemu_cpu_is_self(), passing the return value through, will later be
adapted to return bool as well.
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
qemu-thread-posix.c | 2 +-
qemu-thread-win32.c | 2 +-
qemu-thread.h | 3 ++-
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/qemu-thread-posix.c b/qemu-thread-posix.c
index 9e1b5fb..8fbabda 100644
--- a/qemu-thread-posix.c
+++ b/qemu-thread-posix.c
@@ -151,7 +151,7 @@ void qemu_thread_get_self(QemuThread *thread)
thread->thread = pthread_self();
}
-int qemu_thread_is_self(QemuThread *thread)
+bool qemu_thread_is_self(QemuThread *thread)
{
return pthread_equal(pthread_self(), thread->thread);
}
diff --git a/qemu-thread-win32.c b/qemu-thread-win32.c
index 3524c8b..177b398 100644
--- a/qemu-thread-win32.c
+++ b/qemu-thread-win32.c
@@ -330,7 +330,7 @@ HANDLE qemu_thread_get_handle(QemuThread *thread)
return handle;
}
-int qemu_thread_is_self(QemuThread *thread)
+bool qemu_thread_is_self(QemuThread *thread)
{
return GetCurrentThreadId() == thread->tid;
}
diff --git a/qemu-thread.h b/qemu-thread.h
index a78a8f2..05fdaaf 100644
--- a/qemu-thread.h
+++ b/qemu-thread.h
@@ -2,6 +2,7 @@
#define __QEMU_THREAD_H 1
#include <inttypes.h>
+#include <stdbool.h>
typedef struct QemuMutex QemuMutex;
typedef struct QemuCond QemuCond;
@@ -42,7 +43,7 @@ void qemu_thread_create(QemuThread *thread,
void *arg, int mode);
void *qemu_thread_join(QemuThread *thread);
void qemu_thread_get_self(QemuThread *thread);
-int qemu_thread_is_self(QemuThread *thread);
+bool qemu_thread_is_self(QemuThread *thread);
void qemu_thread_exit(void *retval);
#endif
--
1.7.7
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH for-1.2 2/4] cpu: Move CPU_COMMON_THREAD into CPUState
2012-08-02 0:48 [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 1/4] qemu-thread: Let qemu_thread_is_self() return bool Andreas Färber
@ 2012-08-02 0:48 ` Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 3/4] cpu: Move thread field " Andreas Färber
` (2 subsequent siblings)
4 siblings, 0 replies; 8+ messages in thread
From: Andreas Färber @ 2012-08-02 0:48 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber, anthony
CPU_COMMON_THREAD was only used for Windows, adding an hThread field
to CPU_COMMON.
Move the field into QOM CPUState and change its type to HANDLE,
which it is assigned from. This requires Windows headers, pulled in
through qemu-thread.h.
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
cpu-defs.h | 9 ---------
cpus.c | 10 +++++++---
include/qemu/cpu.h | 5 +++++
3 files changed, 12 insertions(+), 12 deletions(-)
diff --git a/cpu-defs.h b/cpu-defs.h
index f49e950..d0dd781 100644
--- a/cpu-defs.h
+++ b/cpu-defs.h
@@ -151,14 +151,6 @@ typedef struct CPUWatchpoint {
QTAILQ_ENTRY(CPUWatchpoint) entry;
} CPUWatchpoint;
-#ifdef _WIN32
-#define CPU_COMMON_THREAD \
- void *hThread;
-
-#else
-#define CPU_COMMON_THREAD
-#endif
-
#define CPU_TEMP_BUF_NLONGS 128
#define CPU_COMMON \
struct TranslationBlock *current_tb; /* currently executing TB */ \
@@ -217,7 +209,6 @@ typedef struct CPUWatchpoint {
uint32_t stop; /* Stop request */ \
uint32_t stopped; /* Artificially stopped */ \
struct QemuThread *thread; \
- CPU_COMMON_THREAD \
struct QemuCond *halt_cond; \
int thread_kicked; \
struct qemu_work_item *queued_work_first, *queued_work_last; \
diff --git a/cpus.c b/cpus.c
index 756e624..7042fb5 100644
--- a/cpus.c
+++ b/cpus.c
@@ -852,9 +852,10 @@ static void qemu_cpu_kick_thread(CPUArchState *env)
}
#else /* _WIN32 */
if (!qemu_cpu_is_self(env)) {
- SuspendThread(env->hThread);
+ CPUState *cpu = ENV_GET_CPU(env);
+ SuspendThread(cpu->hThread);
cpu_signal(0);
- ResumeThread(env->hThread);
+ ResumeThread(cpu->hThread);
}
#endif
}
@@ -974,6 +975,9 @@ void resume_all_vcpus(void)
static void qemu_tcg_init_vcpu(void *_env)
{
CPUArchState *env = _env;
+#ifdef _WIN32
+ CPUState *cpu = ENV_GET_CPU(env);
+#endif
/* share a single thread for all cpus with TCG */
if (!tcg_cpu_thread) {
@@ -984,7 +988,7 @@ static void qemu_tcg_init_vcpu(void *_env)
qemu_thread_create(env->thread, qemu_tcg_cpu_thread_fn, env,
QEMU_THREAD_JOINABLE);
#ifdef _WIN32
- env->hThread = qemu_thread_get_handle(env->thread);
+ cpu->hThread = qemu_thread_get_handle(env->thread);
#endif
while (env->created == 0) {
qemu_cond_wait(&qemu_cpu_cond, &qemu_global_mutex);
diff --git a/include/qemu/cpu.h b/include/qemu/cpu.h
index 78b65b3..5d52e1c 100644
--- a/include/qemu/cpu.h
+++ b/include/qemu/cpu.h
@@ -21,6 +21,7 @@
#define QEMU_CPU_H
#include "qemu/object.h"
+#include "qemu-thread.h"
/**
* SECTION:cpu
@@ -61,6 +62,10 @@ struct CPUState {
Object parent_obj;
/*< public >*/
+#ifdef _WIN32
+ HANDLE hThread;
+#endif
+
/* TODO Move common fields from CPUArchState here. */
};
--
1.7.7
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH for-1.2 3/4] cpu: Move thread field into CPUState
2012-08-02 0:48 [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 1/4] qemu-thread: Let qemu_thread_is_self() return bool Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 2/4] cpu: Move CPU_COMMON_THREAD into CPUState Andreas Färber
@ 2012-08-02 0:48 ` Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 4/4] cpu: Move thread_kicked to CPUState Andreas Färber
2012-08-03 20:44 ` [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements Anthony Liguori
4 siblings, 0 replies; 8+ messages in thread
From: Andreas Färber @ 2012-08-02 0:48 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber, anthony
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
cpu-defs.h | 1 -
cpus.c | 40 +++++++++++++++++++++++-----------------
include/qemu/cpu.h | 1 +
3 files changed, 24 insertions(+), 18 deletions(-)
diff --git a/cpu-defs.h b/cpu-defs.h
index d0dd781..be89684 100644
--- a/cpu-defs.h
+++ b/cpu-defs.h
@@ -208,7 +208,6 @@ typedef struct CPUWatchpoint {
uint32_t created; \
uint32_t stop; /* Stop request */ \
uint32_t stopped; /* Artificially stopped */ \
- struct QemuThread *thread; \
struct QemuCond *halt_cond; \
int thread_kicked; \
struct qemu_work_item *queued_work_first, *queued_work_last; \
diff --git a/cpus.c b/cpus.c
index 7042fb5..565abb4 100644
--- a/cpus.c
+++ b/cpus.c
@@ -728,10 +728,11 @@ static void qemu_kvm_wait_io_event(CPUArchState *env)
static void *qemu_kvm_cpu_thread_fn(void *arg)
{
CPUArchState *env = arg;
+ CPUState *cpu = ENV_GET_CPU(env);
int r;
qemu_mutex_lock(&qemu_global_mutex);
- qemu_thread_get_self(env->thread);
+ qemu_thread_get_self(cpu->thread);
env->thread_id = qemu_get_thread_id();
cpu_single_env = env;
@@ -767,11 +768,12 @@ static void *qemu_dummy_cpu_thread_fn(void *arg)
exit(1);
#else
CPUArchState *env = arg;
+ CPUState *cpu = ENV_GET_CPU(env);
sigset_t waitset;
int r;
qemu_mutex_lock_iothread();
- qemu_thread_get_self(env->thread);
+ qemu_thread_get_self(cpu->thread);
env->thread_id = qemu_get_thread_id();
sigemptyset(&waitset);
@@ -807,9 +809,10 @@ static void tcg_exec_all(void);
static void *qemu_tcg_cpu_thread_fn(void *arg)
{
CPUArchState *env = arg;
+ CPUState *cpu = ENV_GET_CPU(env);
qemu_tcg_init_cpu_signals();
- qemu_thread_get_self(env->thread);
+ qemu_thread_get_self(cpu->thread);
/* signal CPU creation */
qemu_mutex_lock(&qemu_global_mutex);
@@ -842,17 +845,17 @@ static void *qemu_tcg_cpu_thread_fn(void *arg)
static void qemu_cpu_kick_thread(CPUArchState *env)
{
+ CPUState *cpu = ENV_GET_CPU(env);
#ifndef _WIN32
int err;
- err = pthread_kill(env->thread->thread, SIG_IPI);
+ err = pthread_kill(cpu->thread->thread, SIG_IPI);
if (err) {
fprintf(stderr, "qemu:%s: %s", __func__, strerror(err));
exit(1);
}
#else /* _WIN32 */
if (!qemu_cpu_is_self(env)) {
- CPUState *cpu = ENV_GET_CPU(env);
SuspendThread(cpu->hThread);
cpu_signal(0);
ResumeThread(cpu->hThread);
@@ -888,8 +891,9 @@ void qemu_cpu_kick_self(void)
int qemu_cpu_is_self(void *_env)
{
CPUArchState *env = _env;
+ CPUState *cpu = ENV_GET_CPU(env);
- return qemu_thread_is_self(env->thread);
+ return qemu_thread_is_self(cpu->thread);
}
void qemu_mutex_lock_iothread(void)
@@ -975,37 +979,37 @@ void resume_all_vcpus(void)
static void qemu_tcg_init_vcpu(void *_env)
{
CPUArchState *env = _env;
-#ifdef _WIN32
CPUState *cpu = ENV_GET_CPU(env);
-#endif
/* share a single thread for all cpus with TCG */
if (!tcg_cpu_thread) {
- env->thread = g_malloc0(sizeof(QemuThread));
+ cpu->thread = g_malloc0(sizeof(QemuThread));
env->halt_cond = g_malloc0(sizeof(QemuCond));
qemu_cond_init(env->halt_cond);
tcg_halt_cond = env->halt_cond;
- qemu_thread_create(env->thread, qemu_tcg_cpu_thread_fn, env,
+ qemu_thread_create(cpu->thread, qemu_tcg_cpu_thread_fn, env,
QEMU_THREAD_JOINABLE);
#ifdef _WIN32
- cpu->hThread = qemu_thread_get_handle(env->thread);
+ cpu->hThread = qemu_thread_get_handle(cpu->thread);
#endif
while (env->created == 0) {
qemu_cond_wait(&qemu_cpu_cond, &qemu_global_mutex);
}
- tcg_cpu_thread = env->thread;
+ tcg_cpu_thread = cpu->thread;
} else {
- env->thread = tcg_cpu_thread;
+ cpu->thread = tcg_cpu_thread;
env->halt_cond = tcg_halt_cond;
}
}
static void qemu_kvm_start_vcpu(CPUArchState *env)
{
- env->thread = g_malloc0(sizeof(QemuThread));
+ CPUState *cpu = ENV_GET_CPU(env);
+
+ cpu->thread = g_malloc0(sizeof(QemuThread));
env->halt_cond = g_malloc0(sizeof(QemuCond));
qemu_cond_init(env->halt_cond);
- qemu_thread_create(env->thread, qemu_kvm_cpu_thread_fn, env,
+ qemu_thread_create(cpu->thread, qemu_kvm_cpu_thread_fn, env,
QEMU_THREAD_JOINABLE);
while (env->created == 0) {
qemu_cond_wait(&qemu_cpu_cond, &qemu_global_mutex);
@@ -1014,10 +1018,12 @@ static void qemu_kvm_start_vcpu(CPUArchState *env)
static void qemu_dummy_start_vcpu(CPUArchState *env)
{
- env->thread = g_malloc0(sizeof(QemuThread));
+ CPUState *cpu = ENV_GET_CPU(env);
+
+ cpu->thread = g_malloc0(sizeof(QemuThread));
env->halt_cond = g_malloc0(sizeof(QemuCond));
qemu_cond_init(env->halt_cond);
- qemu_thread_create(env->thread, qemu_dummy_cpu_thread_fn, env,
+ qemu_thread_create(cpu->thread, qemu_dummy_cpu_thread_fn, env,
QEMU_THREAD_JOINABLE);
while (env->created == 0) {
qemu_cond_wait(&qemu_cpu_cond, &qemu_global_mutex);
diff --git a/include/qemu/cpu.h b/include/qemu/cpu.h
index 5d52e1c..d20644b 100644
--- a/include/qemu/cpu.h
+++ b/include/qemu/cpu.h
@@ -62,6 +62,7 @@ struct CPUState {
Object parent_obj;
/*< public >*/
+ struct QemuThread *thread;
#ifdef _WIN32
HANDLE hThread;
#endif
--
1.7.7
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [Qemu-devel] [PATCH for-1.2 4/4] cpu: Move thread_kicked to CPUState
2012-08-02 0:48 [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements Andreas Färber
` (2 preceding siblings ...)
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 3/4] cpu: Move thread field " Andreas Färber
@ 2012-08-02 0:48 ` Andreas Färber
2012-08-03 20:44 ` [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements Anthony Liguori
4 siblings, 0 replies; 8+ messages in thread
From: Andreas Färber @ 2012-08-02 0:48 UTC (permalink / raw)
To: qemu-devel; +Cc: Andreas Färber, anthony
Change field type to bool.
Signed-off-by: Andreas Färber <afaerber@suse.de>
---
cpu-defs.h | 1 -
cpus.c | 14 +++++++++-----
include/qemu/cpu.h | 1 +
3 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/cpu-defs.h b/cpu-defs.h
index be89684..4018b88 100644
--- a/cpu-defs.h
+++ b/cpu-defs.h
@@ -209,7 +209,6 @@ typedef struct CPUWatchpoint {
uint32_t stop; /* Stop request */ \
uint32_t stopped; /* Artificially stopped */ \
struct QemuCond *halt_cond; \
- int thread_kicked; \
struct qemu_work_item *queued_work_first, *queued_work_last; \
const char *cpu_model_str; \
struct KVMState *kvm_state; \
diff --git a/cpus.c b/cpus.c
index 565abb4..b61f60e 100644
--- a/cpus.c
+++ b/cpus.c
@@ -686,13 +686,15 @@ static void flush_queued_work(CPUArchState *env)
static void qemu_wait_io_event_common(CPUArchState *env)
{
+ CPUState *cpu = ENV_GET_CPU(env);
+
if (env->stop) {
env->stop = 0;
env->stopped = 1;
qemu_cond_signal(&qemu_pause_cond);
}
flush_queued_work(env);
- env->thread_kicked = false;
+ cpu->thread_kicked = false;
}
static void qemu_tcg_wait_io_event(void)
@@ -866,11 +868,12 @@ static void qemu_cpu_kick_thread(CPUArchState *env)
void qemu_cpu_kick(void *_env)
{
CPUArchState *env = _env;
+ CPUState *cpu = ENV_GET_CPU(env);
qemu_cond_broadcast(env->halt_cond);
- if (!tcg_enabled() && !env->thread_kicked) {
+ if (!tcg_enabled() && !cpu->thread_kicked) {
qemu_cpu_kick_thread(env);
- env->thread_kicked = true;
+ cpu->thread_kicked = true;
}
}
@@ -878,10 +881,11 @@ void qemu_cpu_kick_self(void)
{
#ifndef _WIN32
assert(cpu_single_env);
+ CPUState *cpu_single_cpu = ENV_GET_CPU(cpu_single_env);
- if (!cpu_single_env->thread_kicked) {
+ if (!cpu_single_cpu->thread_kicked) {
qemu_cpu_kick_thread(cpu_single_env);
- cpu_single_env->thread_kicked = true;
+ cpu_single_cpu->thread_kicked = true;
}
#else
abort();
diff --git a/include/qemu/cpu.h b/include/qemu/cpu.h
index d20644b..ad706a6 100644
--- a/include/qemu/cpu.h
+++ b/include/qemu/cpu.h
@@ -66,6 +66,7 @@ struct CPUState {
#ifdef _WIN32
HANDLE hThread;
#endif
+ bool thread_kicked;
/* TODO Move common fields from CPUArchState here. */
};
--
1.7.7
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH for-1.2 1/4] qemu-thread: Let qemu_thread_is_self() return bool
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 1/4] qemu-thread: Let qemu_thread_is_self() return bool Andreas Färber
@ 2012-08-02 6:27 ` Stefan Weil
2012-08-02 16:14 ` Andreas Färber
0 siblings, 1 reply; 8+ messages in thread
From: Stefan Weil @ 2012-08-02 6:27 UTC (permalink / raw)
To: Andreas Färber; +Cc: qemu-devel, anthony
Am 02.08.2012 02:48, schrieb Andreas Färber:
> qemu_cpu_is_self(), passing the return value through, will later be
> adapted to return bool as well.
>
> Signed-off-by: Andreas Färber <afaerber@suse.de>
> ---
> qemu-thread-posix.c | 2 +-
> qemu-thread-win32.c | 2 +-
> qemu-thread.h | 3 ++-
> 3 files changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/qemu-thread-posix.c b/qemu-thread-posix.c
> index 9e1b5fb..8fbabda 100644
> --- a/qemu-thread-posix.c
> +++ b/qemu-thread-posix.c
> @@ -151,7 +151,7 @@ void qemu_thread_get_self(QemuThread *thread)
> thread->thread = pthread_self();
> }
>
> -int qemu_thread_is_self(QemuThread *thread)
> +bool qemu_thread_is_self(QemuThread *thread)
> {
> return pthread_equal(pthread_self(), thread->thread);
> }
> diff --git a/qemu-thread-win32.c b/qemu-thread-win32.c
> index 3524c8b..177b398 100644
> --- a/qemu-thread-win32.c
> +++ b/qemu-thread-win32.c
> @@ -330,7 +330,7 @@ HANDLE qemu_thread_get_handle(QemuThread *thread)
> return handle;
> }
>
> -int qemu_thread_is_self(QemuThread *thread)
> +bool qemu_thread_is_self(QemuThread *thread)
> {
> return GetCurrentThreadId() == thread->tid;
> }
> diff --git a/qemu-thread.h b/qemu-thread.h
> index a78a8f2..05fdaaf 100644
> --- a/qemu-thread.h
> +++ b/qemu-thread.h
> @@ -2,6 +2,7 @@
> #define __QEMU_THREAD_H 1
>
> #include <inttypes.h>
> +#include <stdbool.h>
>
> typedef struct QemuMutex QemuMutex;
> typedef struct QemuCond QemuCond;
> @@ -42,7 +43,7 @@ void qemu_thread_create(QemuThread *thread,
> void *arg, int mode);
> void *qemu_thread_join(QemuThread *thread);
> void qemu_thread_get_self(QemuThread *thread);
> -int qemu_thread_is_self(QemuThread *thread);
> +bool qemu_thread_is_self(QemuThread *thread);
> void qemu_thread_exit(void *retval);
>
> #endif
Reviewed-by: Stefan Weil <sw@weilnetz.de>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PATCH for-1.2 1/4] qemu-thread: Let qemu_thread_is_self() return bool
2012-08-02 6:27 ` Stefan Weil
@ 2012-08-02 16:14 ` Andreas Färber
0 siblings, 0 replies; 8+ messages in thread
From: Andreas Färber @ 2012-08-02 16:14 UTC (permalink / raw)
To: Stefan Weil; +Cc: qemu-devel, anthony
Am 02.08.2012 08:27, schrieb Stefan Weil:
> Am 02.08.2012 02:48, schrieb Andreas Färber:
>> qemu_cpu_is_self(), passing the return value through, will later be
>> adapted to return bool as well.
>>
>> Signed-off-by: Andreas Färber <afaerber@suse.de>
>> ---
>> qemu-thread-posix.c | 2 +-
>> qemu-thread-win32.c | 2 +-
>> qemu-thread.h | 3 ++-
>> 3 files changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/qemu-thread-posix.c b/qemu-thread-posix.c
>> index 9e1b5fb..8fbabda 100644
>> --- a/qemu-thread-posix.c
>> +++ b/qemu-thread-posix.c
>> @@ -151,7 +151,7 @@ void qemu_thread_get_self(QemuThread *thread)
>> thread->thread = pthread_self();
>> }
>> -int qemu_thread_is_self(QemuThread *thread)
>> +bool qemu_thread_is_self(QemuThread *thread)
>> {
>> return pthread_equal(pthread_self(), thread->thread);
>> }
>> diff --git a/qemu-thread-win32.c b/qemu-thread-win32.c
>> index 3524c8b..177b398 100644
>> --- a/qemu-thread-win32.c
>> +++ b/qemu-thread-win32.c
>> @@ -330,7 +330,7 @@ HANDLE qemu_thread_get_handle(QemuThread *thread)
>> return handle;
>> }
>> -int qemu_thread_is_self(QemuThread *thread)
>> +bool qemu_thread_is_self(QemuThread *thread)
>> {
>> return GetCurrentThreadId() == thread->tid;
>> }
>> diff --git a/qemu-thread.h b/qemu-thread.h
>> index a78a8f2..05fdaaf 100644
>> --- a/qemu-thread.h
>> +++ b/qemu-thread.h
>> @@ -2,6 +2,7 @@
>> #define __QEMU_THREAD_H 1
>> #include <inttypes.h>
>> +#include <stdbool.h>
>> typedef struct QemuMutex QemuMutex;
>> typedef struct QemuCond QemuCond;
>> @@ -42,7 +43,7 @@ void qemu_thread_create(QemuThread *thread,
>> void *arg, int mode);
>> void *qemu_thread_join(QemuThread *thread);
>> void qemu_thread_get_self(QemuThread *thread);
>> -int qemu_thread_is_self(QemuThread *thread);
>> +bool qemu_thread_is_self(QemuThread *thread);
>> void qemu_thread_exit(void *retval);
>> #endif
>
> Reviewed-by: Stefan Weil <sw@weilnetz.de>
Thanks, branch updated.
/-F
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements
2012-08-02 0:48 [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements Andreas Färber
` (3 preceding siblings ...)
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 4/4] cpu: Move thread_kicked to CPUState Andreas Färber
@ 2012-08-03 20:44 ` Anthony Liguori
4 siblings, 0 replies; 8+ messages in thread
From: Anthony Liguori @ 2012-08-03 20:44 UTC (permalink / raw)
To: Andreas Färber, qemu-devel; +Cc: Igor Mammedov
Andreas Färber <afaerber@suse.de> writes:
> Hello Anthony,
>
> Please pull a next batch of QOM CPUState refactorings, cherry-picked
> from my long-standing QOM CPUState part 4 series.
>
> Some parts of that series (s390 and xen) had already been merged.
> This batch now includes actual field movements common to softmmu and *-user.
> Patches depending on changes to APIC modelling are postponed pending v2.
>
> Tested on Linux/x86_64 and compile-tested for mingw32/64.
Pulled. Thanks.
Regards,
Anthony Liguori
>
> Regards,
> Andreas
>
> Cc: Anthony Liguori <anthony@codemonkey.ws>
>
> Cc: Igor Mammedov <imammedo@redhat.com>
>
> The following changes since commit 02d2bd5d57812154cfb978bc2098cf49d551583d:
>
> Replace 'struct siginfo' with 'siginfo_t'. (2012-08-01 08:54:07 -0500)
>
> are available in the git repository at:
> git://repo.or.cz/qemu/afaerber.git qom-cpu-4
>
> Andreas Färber (4):
> qemu-thread: Let qemu_thread_is_self() return bool
> cpu: Move CPU_COMMON_THREAD into CPUState
> cpu: Move thread field into CPUState
> cpu: Move thread_kicked to CPUState
>
> cpu-defs.h | 11 ----------
> cpus.c | 56 +++++++++++++++++++++++++++++++-------------------
> include/qemu/cpu.h | 7 ++++++
> qemu-thread-posix.c | 2 +-
> qemu-thread-win32.c | 2 +-
> qemu-thread.h | 3 +-
> 6 files changed, 46 insertions(+), 35 deletions(-)
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2012-08-03 20:44 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-02 0:48 [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 1/4] qemu-thread: Let qemu_thread_is_self() return bool Andreas Färber
2012-08-02 6:27 ` Stefan Weil
2012-08-02 16:14 ` Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 2/4] cpu: Move CPU_COMMON_THREAD into CPUState Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 3/4] cpu: Move thread field " Andreas Färber
2012-08-02 0:48 ` [Qemu-devel] [PATCH for-1.2 4/4] cpu: Move thread_kicked to CPUState Andreas Färber
2012-08-03 20:44 ` [Qemu-devel] [PULL for-1.2] QOM CPUState, part 4: initial field movements Anthony Liguori
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.