From: Anthony Liguori <anthony@codemonkey.ws>
To: "Andreas Färber" <afaerber@suse.de>
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH RFC v3 02/21] qom: Add QOM support to user emulators
Date: Mon, 06 Feb 2012 13:16:22 -0600 [thread overview]
Message-ID: <4F302706.9060000@codemonkey.ws> (raw)
In-Reply-To: <1328237992-14953-3-git-send-email-afaerber@suse.de>
On 02/02/2012 08:59 PM, Andreas Färber wrote:
> Link the Object base class and the module infrastructure for class
> registration. Call QOM module init.
>
> Signed-off-by: Andreas Färber<afaerber@suse.de>
> Cc: Anthony Liguori<anthony@codemonkey.ws>
If we're going to go down this road, then I have a hard requirement. We need to
build the common infrastructure only once.
Otherwise build times are going to explode and we'll end up with
CONFIG_USER_ONLY #defines all over the place.
Regards,
Anthony Liguori
> ---
> Makefile.objs | 6 ++++++
> Makefile.user | 1 +
> bsd-user/main.c | 2 ++
> configure | 2 ++
> darwin-user/main.c | 3 +++
> linux-user/main.c | 2 ++
> qemu-user.c | 37 +++++++++++++++++++++++++++++++++++++
> 7 files changed, 53 insertions(+), 0 deletions(-)
> create mode 100644 qemu-user.c
>
> diff --git a/Makefile.objs b/Makefile.objs
> index ec35320..1155cc0 100644
> --- a/Makefile.objs
> +++ b/Makefile.objs
> @@ -182,7 +182,11 @@ user-obj-y =
> user-obj-y += envlist.o path.o
> user-obj-y += tcg-runtime.o host-utils.o
> user-obj-y += cutils.o cache-utils.o
> +user-obj-y += module.o
> +user-obj-y += qemu-user.o
> user-obj-y += $(trace-obj-y)
> +user-obj-y += $(qobject-obj-y)
> +user-obj-y += $(addprefix qom/, $(qom-y))
>
> ######################################################################
> # libhw
> @@ -421,6 +425,8 @@ qapi-obj-y = $(addprefix qapi/, $(qapi-nested-y))
> common-obj-y += qmp-marshal.o qapi-visit.o qapi-types.o $(qapi-obj-y)
> common-obj-y += qmp.o hmp.o
>
> +user-obj-y += $(qapi-obj-y)
> +
> ######################################################################
> # guest agent
>
> diff --git a/Makefile.user b/Makefile.user
> index 2b1e4d1..72d01c1 100644
> --- a/Makefile.user
> +++ b/Makefile.user
> @@ -9,6 +9,7 @@ include $(SRC_PATH)/rules.mak
> $(call set-vpath, $(SRC_PATH))
>
> QEMU_CFLAGS+=-I..
> +QEMU_CFLAGS+=-I$(SRC_PATH)/include
>
> include $(SRC_PATH)/Makefile.objs
>
> diff --git a/bsd-user/main.c b/bsd-user/main.c
> index cc7d4a3..cdb0d0a 100644
> --- a/bsd-user/main.c
> +++ b/bsd-user/main.c
> @@ -748,6 +748,8 @@ int main(int argc, char **argv)
> if (argc<= 1)
> usage();
>
> + module_call_init(MODULE_INIT_QOM);
> +
> if ((envlist = envlist_create()) == NULL) {
> (void) fprintf(stderr, "Unable to allocate envlist\n");
> exit(1);
> diff --git a/configure b/configure
> index 3b0b300..ee1140e 100755
> --- a/configure
> +++ b/configure
> @@ -3849,6 +3849,8 @@ fi
> d=libuser
> mkdir -p $d
> mkdir -p $d/trace
> +mkdir -p $d/qapi
> +mkdir -p $d/qom
> symlink $source_path/Makefile.user $d/Makefile
>
> if test "$docs" = "yes" ; then
> diff --git a/darwin-user/main.c b/darwin-user/main.c
> index 9b57c20..e1519c7 100644
> --- a/darwin-user/main.c
> +++ b/darwin-user/main.c
> @@ -28,6 +28,7 @@
> #include<sys/mman.h>
>
> #include "qemu.h"
> +#include "qemu-common.h"
>
> #define DEBUG_LOGFILE "/tmp/qemu.log"
>
> @@ -749,6 +750,8 @@ int main(int argc, char **argv)
> if (argc<= 1)
> usage();
>
> + module_call_init(MODULE_INIT_QOM);
> +
> optind = 1;
> for(;;) {
> if (optind>= argc)
> diff --git a/linux-user/main.c b/linux-user/main.c
> index 64d2208..f55109c 100644
> --- a/linux-user/main.c
> +++ b/linux-user/main.c
> @@ -3278,6 +3278,8 @@ int main(int argc, char **argv, char **envp)
> int i;
> int ret;
>
> + module_call_init(MODULE_INIT_QOM);
> +
> qemu_cache_utils_init(envp);
>
> if ((envlist = envlist_create()) == NULL) {
> diff --git a/qemu-user.c b/qemu-user.c
> new file mode 100644
> index 0000000..51b2649
> --- /dev/null
> +++ b/qemu-user.c
> @@ -0,0 +1,37 @@
> +/*
> + * Stubs for QEMU user emulation
> + *
> + * Copyright (c) 2012 SUSE LINUX Products GmbH
> + *
> + * This program is free software; you can redistribute it and/or
> + * modify it under the terms of the GNU General Public License
> + * as published by the Free Software Foundation; either version 2
> + * of the License, or (at your option) any later version.
> + *
> + * This program is distributed in the hope that it will be useful,
> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
> + * GNU General Public License for more details.
> + *
> + * You should have received a copy of the GNU General Public License
> + * along with this program; if not, see
> + *<http://www.gnu.org/licenses/old-licenses/gpl-2.0>
> + */
> +
> +#include "qemu-common.h"
> +#include "monitor.h"
> +
> +Monitor *cur_mon;
> +
> +int monitor_cur_is_qmp(void)
> +{
> + return 0;
> +}
> +
> +void monitor_vprintf(Monitor *mon, const char *fmt, va_list ap)
> +{
> +}
> +
> +void monitor_set_error(Monitor *mon, QError *qerror)
> +{
> +}
next prev parent reply other threads:[~2012-02-06 19:16 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-03 2:59 [Qemu-devel] [PATCH RFC v3 00/21] Introduce QOM CPU and use it for ARM Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH v3 01/21] qom: Register QOM infrastructure early Andreas Färber
2012-02-06 19:14 ` Anthony Liguori
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 02/21] qom: Add QOM support to user emulators Andreas Färber
2012-02-06 19:16 ` Anthony Liguori [this message]
2012-02-06 23:23 ` Andreas Färber
2012-02-07 17:25 ` Peter Maydell
2012-02-07 17:51 ` Anthony Liguori
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 03/21] qom: Introduce CPU class Andreas Färber
2012-02-06 19:24 ` Anthony Liguori
2012-02-06 20:01 ` Peter Maydell
2012-02-06 20:14 ` Andreas Färber
2012-02-06 21:22 ` Anthony Liguori
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 04/21] target-arm: Introduce QOM CPU and use it for CPUID lookup Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 05/21] target-arm: Embed CPUARMState in QOM ARMCPU Andreas Färber
2012-02-06 23:00 ` Anthony Liguori
2012-02-06 23:05 ` Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 06/21] target-arm: Prepare model-specific class_init function Andreas Färber
2012-02-06 23:03 ` Anthony Liguori
2012-02-06 23:08 ` Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 07/21] target-arm: Overwrite reset handler for ti925t Andreas Färber
2012-02-07 17:30 ` Peter Maydell
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 08/21] target-arm: Move CPU feature flags out of CPUState Andreas Färber
2012-02-07 17:28 ` Peter Maydell
2012-02-07 17:43 ` Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 09/21] target-arm: No longer abort on unhandled CPUIDs on reset Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 10/21] target-arm: Store cp15 c0_c1 and c0_c2 in ARMCPUClass Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 11/21] target-arm: Store cp15 c0_cachetype register " Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 12/21] target-arm: Move cp15 c1_sys register to ARMCPUClass Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 13/21] target-arm: Store JTAG_ID in ARMCPUClass Andreas Färber
2012-02-07 17:47 ` Peter Maydell
2012-02-07 18:41 ` Andreas Färber
2012-02-07 19:06 ` Peter Maydell
2012-02-07 22:07 ` Andreas Färber
2012-02-07 23:30 ` Peter Maydell
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 14/21] target-arm: Move the PXA270's iwMMXt reset to pxa270_reset() Andreas Färber
2012-02-17 9:59 ` andrzej zaborowski
2012-02-17 12:03 ` Andreas Färber
2012-02-17 12:44 ` andrzej zaborowski
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 15/21] target-arm: Store VFP FPSID register in ARMCPUClass Andreas Färber
2012-02-07 17:44 ` Peter Maydell
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 16/21] target-arm: Store VFP MVFR0 and MVFR1 " Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 17/21] target-arm: Store CLIDR " Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 18/21] target-arm: Store CCSIDRs " Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 19/21] target-arm: Kill off cpu_reset_model_id() Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [PATCH RFC v3 20/21] target-arm: Prepare halted property for CPU Andreas Färber
2012-02-03 2:59 ` [Qemu-devel] [FYI v3 21/21] target-arm: Just for testing! Andreas Färber
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F302706.9060000@codemonkey.ws \
--to=anthony@codemonkey.ws \
--cc=afaerber@suse.de \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.