Commit c35734b2a6f9b028edacd5813ff271728ce2a9e3

Authored by ths
1 parent dcfb9014

Add -name option, by Anthony Liguori.


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2505 c046a42c-6fe2-441c-8c8c-71466251a162
monitor.c
... ... @@ -235,6 +235,12 @@ static void do_info_version(void)
235 235 term_printf("%s\n", QEMU_VERSION);
236 236 }
237 237  
  238 +static void do_info_name(void)
  239 +{
  240 + if (qemu_name)
  241 + term_printf("%s\n", qemu_name);
  242 +}
  243 +
238 244 static void do_info_block(void)
239 245 {
240 246 bdrv_info();
... ... @@ -1314,6 +1320,8 @@ static term_cmd_t info_cmds[] = {
1314 1320 "", "show which guest mouse is receiving events" },
1315 1321 { "vnc", "", do_info_vnc,
1316 1322 "", "show the vnc server status"},
  1323 + { "name", "", do_info_name,
  1324 + "", "show the current VM name" },
1317 1325 #if defined(TARGET_PPC)
1318 1326 { "cpustats", "", do_info_cpu_stats,
1319 1327 "", "show CPU statistics", },
... ...
qemu-doc.texi
... ... @@ -331,6 +331,10 @@ slows down the IDE transfers).
331 331 Load the contents of file as an option ROM. This option is useful to load
332 332 things like EtherBoot.
333 333  
  334 +@item -name string
  335 +Sets the name of the guest. This name will be display in the SDL window
  336 +caption. The name will also be used for the VNC server.
  337 +
334 338 @end table
335 339  
336 340 USB options:
... ...
... ... @@ -216,13 +216,18 @@ static void sdl_process_key(SDL_KeyboardEvent *ev)
216 216 static void sdl_update_caption(void)
217 217 {
218 218 char buf[1024];
219   - strcpy(buf, "QEMU");
220   - if (!vm_running) {
221   - strcat(buf, " [Stopped]");
222   - }
223   - if (gui_grab) {
224   - strcat(buf, " - Press Ctrl-Alt to exit grab");
225   - }
  219 + const char *status = "";
  220 +
  221 + if (!vm_running)
  222 + status = " [Stopped]";
  223 + else if (gui_grab)
  224 + status = " - Press Ctrl-Alt to exit grab";
  225 +
  226 + if (qemu_name)
  227 + snprintf(buf, sizeof(buf), "QEMU (%s)%s", qemu_name, status);
  228 + else
  229 + snprintf(buf, sizeof(buf), "QEMU%s", status);
  230 +
226 231 SDL_WM_SetCaption(buf, "QEMU");
227 232 }
228 233  
... ...
... ... @@ -189,6 +189,7 @@ const char *option_rom[MAX_OPTION_ROMS];
189 189 int nb_option_roms;
190 190 int semihosting_enabled = 0;
191 191 int autostart = 1;
  192 +const char *qemu_name;
192 193  
193 194 /***********************************************************/
194 195 /* x86 ISA bus support */
... ... @@ -6395,6 +6396,7 @@ void help(void)
6395 6396 #if defined(TARGET_PPC) || defined(TARGET_SPARC)
6396 6397 "-g WxH[xDEPTH] Set the initial graphical resolution and depth\n"
6397 6398 #endif
  6399 + "-name string set the name of the guest\n"
6398 6400 "\n"
6399 6401 "Network options:\n"
6400 6402 "-net nic[,vlan=n][,macaddr=addr][,model=type]\n"
... ... @@ -6553,7 +6555,8 @@ enum {
6553 6555 QEMU_OPTION_no_reboot,
6554 6556 QEMU_OPTION_daemonize,
6555 6557 QEMU_OPTION_option_rom,
6556   - QEMU_OPTION_semihosting
  6558 + QEMU_OPTION_semihosting,
  6559 + QEMU_OPTION_name,
6557 6560 };
6558 6561  
6559 6562 typedef struct QEMUOption {
... ... @@ -6644,6 +6647,7 @@ const QEMUOption qemu_options[] = {
6644 6647 #if defined(TARGET_ARM)
6645 6648 { "semihosting", 0, QEMU_OPTION_semihosting },
6646 6649 #endif
  6650 + { "name", HAS_ARG, QEMU_OPTION_name },
6647 6651 { NULL },
6648 6652 };
6649 6653  
... ... @@ -7340,6 +7344,9 @@ int main(int argc, char **argv)
7340 7344 case QEMU_OPTION_semihosting:
7341 7345 semihosting_enabled = 1;
7342 7346 break;
  7347 + case QEMU_OPTION_name:
  7348 + qemu_name = optarg;
  7349 + break;
7343 7350 }
7344 7351 }
7345 7352 }
... ...
... ... @@ -114,6 +114,7 @@ void hw_error(const char *fmt, ...);
114 114 extern const char *bios_dir;
115 115  
116 116 extern int vm_running;
  117 +extern const char *qemu_name;
117 118  
118 119 typedef struct vm_change_state_entry VMChangeStateEntry;
119 120 typedef void VMChangeStateHandler(void *opaque, int running);
... ...
... ... @@ -1056,6 +1056,8 @@ static int protocol_client_msg(VncState *vs, char *data, size_t len)
1056 1056 static int protocol_client_init(VncState *vs, char *data, size_t len)
1057 1057 {
1058 1058 char pad[3] = { 0, 0, 0 };
  1059 + char buf[1024];
  1060 + int size;
1059 1061  
1060 1062 vs->width = vs->ds->width;
1061 1063 vs->height = vs->ds->height;
... ... @@ -1100,8 +1102,13 @@ static int protocol_client_init(VncState *vs, char *data, size_t len)
1100 1102  
1101 1103 vnc_write(vs, pad, 3); /* padding */
1102 1104  
1103   - vnc_write_u32(vs, 4);
1104   - vnc_write(vs, "QEMU", 4);
  1105 + if (qemu_name)
  1106 + size = snprintf(buf, sizeof(buf), "QEMU (%s)", qemu_name);
  1107 + else
  1108 + size = snprintf(buf, sizeof(buf), "QEMU");
  1109 +
  1110 + vnc_write_u32(vs, size);
  1111 + vnc_write(vs, buf, size);
1105 1112 vnc_flush(vs);
1106 1113  
1107 1114 vnc_read_when(vs, protocol_client_msg, 1);
... ...