From: Fabrice Bellard <fabrice@bellard.org>
To: weil@mail.berlios.de
Cc: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel][PATCH]Get machine name from name of executable
Date: Sun, 14 May 2006 13:48:04 +0200 [thread overview]
Message-ID: <446718F4.9080400@bellard.org> (raw)
In-Reply-To: <44670987.1030203@mail.berlios.de>
Hi,
The long term plan for qemu is to have a single executable for all
machines. If you make a single executable for mips and mipsel, it is
better to select the endianness in the code of the machine itself when
initializing the CPU.
Regards,
Fabrice.
Stefan Weil wrote:
> Today, QEMU allows machine selection using command line option -M.
> Without this option, it will always take the first machine
> for the given target architecture.
>
> With my patch, QEMU first parses the name of the executable.
> The string after the last '-' is interpreted as machine name.
> If this machine does not exist, the first machine is taken,
> so the new QEMU remains compatible with the old behaviour.
>
> With this patch, an installation might link e.g. qemu-system-arm
> to qemu-system-arm-integratorcp926, and running
> qemu-system-arm-integratorcp926
> will automatically select machine integratorcp926.
>
> My goal is a MIPS emulation which supports big and little endian mode
> in the same executable (like the real hardware). qemu-system-mipsel
> would be a symbolic link to qemu-system-mips and enable little endian mode.
>
> I propose another code modification: instead of registration of all
> machines
> in vl.c, vl.c might call a target procedure which does this registration.
> So if MIPS, ARM or other targets add machines, vl.c would not change.
> Example: vl.c calls qemu_register_mips_machines() which calls
> qemu_register_machine(&mips_machine).
>
> Regards,
> Stefan
>
>
> --- vl.c 3 May 2006 22:02:44 -0000 1.185
> +++ vl.c 12 May 2006 20:19:15 -0000
> @@ -4252,7 +4254,7 @@
> return 0;
> }
>
> -QEMUMachine *find_machine(const char *name)
> +static QEMUMachine *find_machine(const char *name)
> {
> QEMUMachine *m;
>
> @@ -5075,7 +5077,14 @@
> mallopt(M_MMAP_THRESHOLD, 4096 * 1024);
> #endif
> register_machines();
> + machine = 0;
> + optarg = strrchr(argv[0], '-');
> + if (optarg != 0) {
> + machine = find_machine(optarg + 1);
> + }
> + if (!machine) {
> machine = first_machine;
> + }
> initrd_filename = NULL;
> for(i = 0; i < MAX_FD; i++)
> fd_filename[i] = NULL;
>
>
>
> _______________________________________________
> Qemu-devel mailing list
> Qemu-devel@nongnu.org
> http://lists.nongnu.org/mailman/listinfo/qemu-devel
>
>
next prev parent reply other threads:[~2006-05-14 11:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-14 10:42 [Qemu-devel][PATCH]Get machine name from name of executable Stefan Weil
2006-05-14 11:34 ` Thiemo Seufer
2006-05-14 11:48 ` Fabrice Bellard [this message]
2006-05-14 13:30 ` Stefan Weil
2006-05-14 18:03 ` Fabrice Bellard
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=446718F4.9080400@bellard.org \
--to=fabrice@bellard.org \
--cc=qemu-devel@nongnu.org \
--cc=weil@mail.berlios.de \
/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.