From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56565) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zm36a-0004q8-4k for qemu-devel@nongnu.org; Tue, 13 Oct 2015 13:11:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Zm36V-0000qj-TD for qemu-devel@nongnu.org; Tue, 13 Oct 2015 13:11:16 -0400 Received: from roura.ac.upc.es ([147.83.33.10]:55473) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Zm36V-0000qc-IM for qemu-devel@nongnu.org; Tue, 13 Oct 2015 13:11:11 -0400 From: =?utf-8?b?TGx1w61z?= Vilanova Date: Tue, 13 Oct 2015 19:11:01 +0200 Message-Id: <20151013171100.21325.36966.stgit@localhost> In-Reply-To: <20151013171020.21325.27626.stgit@localhost> References: <20151013171020.21325.27626.stgit@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCHv17/8] [trivial] Track when QEMU has finished initialization List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Blue Swirl , Stefan Hajnoczi , Riku Voipio , Paolo Bonzini Signed-off-by: Llu=C3=ADs Vilanova --- Makefile.objs | 2 +- bsd-user/main.c | 1 + include/qemu-common.h | 3 +++ linux-user/main.c | 1 + qemu-common.c | 14 ++++++++++++++ stubs/Makefile.objs | 1 + stubs/qemu-common-stub.c | 21 +++++++++++++++++++++ vl.c | 2 ++ 8 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 qemu-common.c create mode 100644 stubs/qemu-common-stub.c diff --git a/Makefile.objs b/Makefile.objs index bc43e5c..e1d7b25 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -2,7 +2,7 @@ # Common libraries for tools and emulators stub-obj-y =3D stubs/ util-obj-y =3D util/ qobject/ qapi/ -util-obj-y +=3D qmp-introspect.o qapi-types.o qapi-visit.o qapi-event.o +util-obj-y +=3D qmp-introspect.o qapi-types.o qapi-visit.o qapi-event.o = qemu-common.o =20 ####################################################################### # block-obj-y is code used by both qemu system emulation and qemu-img diff --git a/bsd-user/main.c b/bsd-user/main.c index f0a1268..43f85e6 100644 --- a/bsd-user/main.c +++ b/bsd-user/main.c @@ -1121,6 +1121,7 @@ int main(int argc, char **argv) gdbserver_start (gdbstub_port); gdb_handlesig(cpu, 0); } + qemu_initialized =3D true; cpu_loop(env); /* never exits */ return 0; diff --git a/include/qemu-common.h b/include/qemu-common.h index 0bd212b..33f6909 100644 --- a/include/qemu-common.h +++ b/include/qemu-common.h @@ -35,6 +35,9 @@ # error Unknown pointer size #endif =20 +/* Whether the system has finished initializing */ +extern bool qemu_initialized; + void cpu_ticks_init(void); =20 /* icount */ diff --git a/linux-user/main.c b/linux-user/main.c index 1f60ff2..9bd2912 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -4663,6 +4663,7 @@ int main(int argc, char **argv, char **envp) } gdb_handlesig(cpu, 0); } + qemu_initialized =3D true; cpu_loop(env); /* never exits */ return 0; diff --git a/qemu-common.c b/qemu-common.c new file mode 100644 index 0000000..4b5ca1a --- /dev/null +++ b/qemu-common.c @@ -0,0 +1,14 @@ +/* + * Common symbol definitions for all tools and targets. + * + * Copyright (C) 2011-2015 Llu=C3=ADs Vilanova + * + * This work is licensed under the terms of the GNU GPL, version 2 or la= ter. + * See the COPYING file in the top-level directory. +*/ + +#include "qemu-common.h" + + +/* Whether QEMU has been initialized. */ +bool qemu_initialized; diff --git a/stubs/Makefile.objs b/stubs/Makefile.objs index 85e4e81..259504f 100644 --- a/stubs/Makefile.objs +++ b/stubs/Makefile.objs @@ -39,3 +39,4 @@ stub-obj-y +=3D cpus.o stub-obj-y +=3D kvm.o stub-obj-y +=3D qmp_pc_dimm_device_list.o stub-obj-y +=3D target-monitor-defs.o +stub-obj-y +=3D qemu-common-stub.o diff --git a/stubs/qemu-common-stub.c b/stubs/qemu-common-stub.c new file mode 100644 index 0000000..f34f019 --- /dev/null +++ b/stubs/qemu-common-stub.c @@ -0,0 +1,21 @@ +/* + * Common symbol definitions for all tools and targets. + * + * Copyright (C) 2011-2015 Llu=C3=ADs Vilanova + * + * This work is licensed under the terms of the GNU GPL, version 2 or la= ter. + * See the COPYING file in the top-level directory. +*/ + +#include "qemu-common.h" +#include + + +static void do_qemu_initialized_init(void) +{ + /* Tools always consider QEMU as inited */ + qemu_initialized =3D true; +} + +/* Block is always inited on both tools (and targets) */ +block_init(do_qemu_initialized_init); diff --git a/vl.c b/vl.c index f2bd8d2..aae8d47 100644 --- a/vl.c +++ b/vl.c @@ -4637,6 +4637,8 @@ int main(int argc, char **argv, char **envp) } } =20 + qemu_initialized =3D true; + main_loop(); bdrv_close_all(); pause_all_vcpus();