From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1HNh83-0007jq-UJ for qemu-devel@nongnu.org; Sat, 03 Mar 2007 22:11:19 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1HNh81-0007je-Gb for qemu-devel@nongnu.org; Sat, 03 Mar 2007 22:11:18 -0500 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1HNh81-0007jb-Bp for qemu-devel@nongnu.org; Sat, 03 Mar 2007 22:11:17 -0500 Received: from wx-out-0506.google.com ([66.249.82.233]) by monty-python.gnu.org with esmtp (Exim 4.52) id 1HNh81-0002pB-02 for qemu-devel@nongnu.org; Sat, 03 Mar 2007 22:11:17 -0500 Received: by wx-out-0506.google.com with SMTP id i30so1892547wxd for ; Sat, 03 Mar 2007 19:11:16 -0800 (PST) Message-ID: <45EA38D2.7050903@codemonkey.ws> Date: Sat, 03 Mar 2007 21:11:14 -0600 From: Anthony Liguori MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------050502060906040803020305" Subject: [Qemu-devel] [PATCH] Add -name option 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 This is a multi-part message in MIME format. --------------050502060906040803020305 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit This option helps differentiate between guests when running more than one instance of QEMU. It adds a string to the SDL window title and to the VNC server title. Having a name associated with a guest is also terribly useful for management tools as it gives a standard way to identify guests to the user. Regards, Anthony Liguori --------------050502060906040803020305 Content-Type: text/x-patch; name="qemu-name.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="qemu-name.diff" diff -r 5b37ca9b68f9 monitor.c --- a/monitor.c Sun Mar 04 00:52:16 2007 +0000 +++ b/monitor.c Sat Mar 03 20:59:23 2007 -0600 @@ -233,6 +233,12 @@ static void do_info_version(void) static void do_info_version(void) { term_printf("%s\n", QEMU_VERSION); +} + +static void do_info_name(void) +{ + if (qemu_name) + term_printf("%s\n", qemu_name); } static void do_info_block(void) @@ -1303,6 +1309,8 @@ static term_cmd_t info_cmds[] = { "", "show which guest mouse is receiving events" }, { "vnc", "", do_info_vnc, "", "show the vnc server status"}, + { "name", "", do_info_name, + "", "show the current VM name" }, { NULL, NULL, }, }; diff -r 5b37ca9b68f9 qemu-doc.texi --- a/qemu-doc.texi Sun Mar 04 00:52:16 2007 +0000 +++ b/qemu-doc.texi Sat Mar 03 21:05:12 2007 -0600 @@ -330,6 +330,10 @@ slows down the IDE transfers). @item -option-rom file Load the contents of file as an option ROM. This option is useful to load things like EtherBoot. + +@item -name string +Sets the name of the guest. This name will be display in the SDL window +caption. The name will also be used for the VNC server. @end table diff -r 5b37ca9b68f9 sdl.c --- a/sdl.c Sun Mar 04 00:52:16 2007 +0000 +++ b/sdl.c Sat Mar 03 20:58:51 2007 -0600 @@ -216,13 +216,19 @@ static void sdl_update_caption(void) static void sdl_update_caption(void) { char buf[1024]; - strcpy(buf, "QEMU"); - if (!vm_running) { - strcat(buf, " [Stopped]"); - } - if (gui_grab) { - strcat(buf, " - Press Ctrl-Alt to exit grab"); - } + const char *status = ""; + + if (!vm_running) + status = " [Stopped]"; + else if (gui_grab) + status = " - Press Ctrl-Alt to exit grab"; + + if (qemu_name) + snprintf(buf, sizeof(buf), "QEMU (%s)%s", + qemu_name, status); + else + snprintf(buf, sizeof(buf), "QEMU%s", status); + SDL_WM_SetCaption(buf, "QEMU"); } diff -r 5b37ca9b68f9 vl.c --- a/vl.c Sun Mar 04 00:52:16 2007 +0000 +++ b/vl.c Sat Mar 03 21:06:32 2007 -0600 @@ -189,6 +189,7 @@ int nb_option_roms; int nb_option_roms; int semihosting_enabled = 0; int autostart = 1; +const char *qemu_name; /***********************************************************/ /* x86 ISA bus support */ @@ -6391,6 +6392,7 @@ void help(void) #if defined(TARGET_PPC) || defined(TARGET_SPARC) "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n" #endif + "-name string set the name of the guest\n" "\n" "Network options:\n" "-net nic[,vlan=n][,macaddr=addr][,model=type]\n" @@ -6548,7 +6550,8 @@ enum { QEMU_OPTION_no_reboot, QEMU_OPTION_daemonize, QEMU_OPTION_option_rom, - QEMU_OPTION_semihosting + QEMU_OPTION_semihosting, + QEMU_OPTION_name, }; typedef struct QEMUOption { @@ -6638,6 +6641,7 @@ const QEMUOption qemu_options[] = { #if defined(TARGET_ARM) { "semihosting", 0, QEMU_OPTION_semihosting }, #endif + { "name", HAS_ARG, QEMU_OPTION_name }, { NULL }, }; @@ -7318,6 +7322,9 @@ int main(int argc, char **argv) case QEMU_OPTION_semihosting: semihosting_enabled = 1; break; + case QEMU_OPTION_name: + qemu_name = optarg; + break; } } } diff -r 5b37ca9b68f9 vl.h --- a/vl.h Sun Mar 04 00:52:16 2007 +0000 +++ b/vl.h Sat Mar 03 20:58:51 2007 -0600 @@ -114,6 +114,7 @@ extern const char *bios_dir; extern const char *bios_dir; extern int vm_running; +extern const char *qemu_name; typedef struct vm_change_state_entry VMChangeStateEntry; typedef void VMChangeStateHandler(void *opaque, int running); diff -r 5b37ca9b68f9 vnc.c --- a/vnc.c Sun Mar 04 00:52:16 2007 +0000 +++ b/vnc.c Sat Mar 03 20:58:51 2007 -0600 @@ -1056,6 +1056,8 @@ static int protocol_client_init(VncState static int protocol_client_init(VncState *vs, char *data, size_t len) { char pad[3] = { 0, 0, 0 }; + char buf[1024]; + int size; vs->width = vs->ds->width; vs->height = vs->ds->height; @@ -1100,8 +1102,13 @@ static int protocol_client_init(VncState vnc_write(vs, pad, 3); /* padding */ - vnc_write_u32(vs, 4); - vnc_write(vs, "QEMU", 4); + if (qemu_name) + size = snprintf(buf, sizeof(buf), "QEMU (%s)", qemu_name); + else + size = snprintf(buf, sizeof(buf), "QEMU"); + + vnc_write_u32(vs, size); + vnc_write(vs, buf, size); vnc_flush(vs); vnc_read_when(vs, protocol_client_msg, 1); --------------050502060906040803020305--