From: Stefan Weil <weil@mail.berlios.de>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel][PATCH]Get machine name from name of executable
Date: Sun, 14 May 2006 12:42:15 +0200 [thread overview]
Message-ID: <44670987.1030203@mail.berlios.de> (raw)
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;
next reply other threads:[~2006-05-14 10:43 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-14 10:42 Stefan Weil [this message]
2006-05-14 11:34 ` [Qemu-devel][PATCH]Get machine name from name of executable Thiemo Seufer
2006-05-14 11:48 ` Fabrice Bellard
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=44670987.1030203@mail.berlios.de \
--to=weil@mail.berlios.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 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).