On Sun, Jun 24, 2012 at 3:05 PM, liu ping fan <[email protected]> wrote:
> On Fri, Jun 22, 2012 at 8:36 PM, Stefan Hajnoczi <[email protected]> wrote:
>> On Thu, Jun 21, 2012 at 4:06 PM, Liu Ping Fan <[email protected]> wrote:
>>> diff --git a/cpu-defs.h b/cpu-defs.h
>>> index f49e950..7305822 100644
>>> --- a/cpu-defs.h
>>> +++ b/cpu-defs.h
>>> @@ -30,6 +30,7 @@
>>>  #include "osdep.h"
>>>  #include "qemu-queue.h"
>>>  #include "targphys.h"
>>> +#include "qemu-thread-posix.h"
>>
>> This breaks Windows, you need qemu-thread.h.
>>
>>>
>>>  #ifndef TARGET_LONG_BITS
>>>  #error TARGET_LONG_BITS must be defined before including this header
>>> @@ -220,6 +221,7 @@ typedef struct CPUWatchpoint {
>>>     CPU_COMMON_THREAD                                                   \
>>>     struct QemuCond *halt_cond;                                         \
>>>     int thread_kicked;                                                  \
>>> +    struct QemuMutex *cpu_lock;                                         \
>>
>> It would be nicer to declare it QemuMutex cpu_lock (no pointer) so
>> that you don't need to worry about malloc/free.
>>
> Yes :), I have considered about it, and not quite sure.  But I figure
> out the lock for per-device to break BQL will be like this for some
> reason.
> After all, have not decided yet.

Start simple.  If you need it to be a pointer later that's fine but
for now I see no reason to do the malloc (especially since there is no
free!).

>>> diff --git a/main-loop.h b/main-loop.h
>>> index dce1cd9..d8d44a4 100644
>>> --- a/main-loop.h
>>> +++ b/main-loop.h
>>> @@ -323,6 +323,9 @@ void qemu_bh_delete(QEMUBH *bh);
>>>  int qemu_add_child_watch(pid_t pid);
>>>  #endif
>>>
>>> +void qemu_mutex_lock_cpu(void *_env);
>>> +void qemu_mutex_unlock_cpu(void *_env);
>>
>> Why void* instead of CPUArchState*?
>>
> Because we can hide the CPUArchState from apic.c

There's probably a nicer way of doing that than void*.

Stefan

Reply via email to