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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).