From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1LXUT2-00025r-Si for qemu-devel@nongnu.org; Thu, 12 Feb 2009 00:50:32 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1LXUT1-00025e-9M for qemu-devel@nongnu.org; Thu, 12 Feb 2009 00:50:32 -0500 Received: from [199.232.76.173] (port=54885 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1LXUT1-00025b-1C for qemu-devel@nongnu.org; Thu, 12 Feb 2009 00:50:31 -0500 Received: from mout.perfora.net ([74.208.4.194]:51910) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1LXUT0-0006vq-KN for qemu-devel@nongnu.org; Thu, 12 Feb 2009 00:50:30 -0500 From: Cory Fields Date: Thu, 12 Feb 2009 01:48:47 -0500 Message-Id: <1234421329-8119-3-git-send-email-FOSS@AtlasTechnologiesInc.com> In-Reply-To: <1234421329-8119-1-git-send-email-FOSS@AtlasTechnologiesInc.com> References: <1234421329-8119-1-git-send-email-FOSS@AtlasTechnologiesInc.com> Subject: [Qemu-devel] [PATCH] Add args for quiet and prompt Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Syntax is -boot [cad],prompt=x,quiet=x where x is [0,1,true,false] Boot drive is mandatory If prompt is set user will see "Press f12 for boot menu" This behavior has changed, it is now off by default If quiet is set user will see no normal text output from bios. Errors will stil be displayed. Signed-off-by: Cory Fields --- vl.c | 48 ++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 44 insertions(+), 4 deletions(-) diff --git a/vl.c b/vl.c index 3676537..b2da109 100644 --- a/vl.c +++ b/vl.c @@ -230,6 +230,9 @@ int no_shutdown = 0; int cursor_hide = 1; int graphic_rotate = 0; int daemonize = 0; +int biosprompt = 0; +int quietbios = 0; + const char *option_rom[MAX_OPTION_ROMS]; int nb_option_roms; int semihosting_enabled = 0; @@ -3875,6 +3878,10 @@ static void help(int exitcode) "-sd file use 'file' as SecureDigital card image\n" "-pflash file use 'file' as a parallel flash image\n" "-boot [a|c|d|n] boot on floppy (a), hard disk (c), CD-ROM (d), or network (n)\n" + " [,quiet=true|false]\n" + " hide bios text [default=false]\n" + " [,prompt=true|false]\n" + " hide boot menu prompt [default=true]\n" "-snapshot write to temporary files instead of disk image files\n" "-m megs set virtual RAM size to megs MB [default=%d]\n" #ifndef _WIN32 @@ -4556,7 +4563,7 @@ int main(int argc, char **argv, char **envp) int snapshot, linux_boot, net_boot; const char *initrd_filename; const char *kernel_filename, *kernel_cmdline; - const char *boot_devices = ""; + char boot_devices[32] = ""; DisplayState *ds; DisplayChangeListener *dcl; int cyls, heads, secs, translation; @@ -4829,14 +4836,15 @@ int main(int argc, char **argv, char **envp) drive_add(optarg, CDROM_ALIAS); break; case QEMU_OPTION_boot: - boot_devices = optarg; /* We just do some generic consistency checks */ { /* Could easily be extended to 64 devices if needed */ const char *p; + int num_drive_letters = 0; + char boot_opts[128]; boot_devices_bitmap = 0; - for (p = boot_devices; *p != '\0'; p++) { + for (p = optarg; *p != '\0' && *p != ','; p++) { /* Allowed boot devices are: * a b : floppy disk drives * c ... f : IDE disk drives @@ -4856,6 +4864,38 @@ int main(int argc, char **argv, char **envp) exit(1); } boot_devices_bitmap |= 1 << (*p - 'a'); + boot_devices[num_drive_letters]=*p; + num_drive_letters++; + + } + + strcpy(boot_opts,optarg); + if (*p == ',') p++; + if (get_param_value(boot_opts, sizeof(boot_opts), "quiet", p)) { + if (!strcmp(boot_opts, "true") || !strcmp(boot_opts, "1")) { + quietbios=1; + biosprompt=0; + } + else if (!strcmp(boot_opts, "false") || !strcmp(boot_opts, "0")) { + quietbios=0; + } + else { + printf("Boot option not recognized\n"); + exit(1); + } + } + + if (get_param_value(boot_opts, sizeof(boot_opts), "prompt", p)){ + if (!strcmp(boot_opts, "true") || !strcmp(boot_opts, "1")) { + biosprompt=1; + } + else if (!strcmp(boot_opts, "false") || !strcmp(boot_opts, "0")) { + biosprompt=0; + } + else { + printf("Boot option not recognized\n"); + exit(1); + } } } break; @@ -5343,7 +5383,7 @@ int main(int argc, char **argv, char **envp) /* boot to floppy or the default cd if no hard disk defined yet */ if (!boot_devices[0]) { - boot_devices = "cad"; + strcpy(boot_devices,"cad"); } setvbuf(stdout, NULL, _IOLBF, 0); -- 1.6.0.6