qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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
> 
> 

  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).