source: trunk/packages/xen-3.1/xen-3.1/tools/ioemu/patches/vnc-start-vncviewer @ 34

Last change on this file since 34 was 34, checked in by hartmans, 18 years ago

Add xen and xen-common

File size: 3.0 KB
Line 
1Index: ioemu/vnc.c
2===================================================================
3--- ioemu.orig/vnc.c    2007-05-03 10:24:06.000000000 +0100
4+++ ioemu/vnc.c 2007-05-03 10:24:06.000000000 +0100
5@@ -1189,3 +1189,31 @@
6 
7     vnc_dpy_resize(vs->ds, 640, 400);
8 }
9+
10+int vnc_start_viewer(int port)
11+{
12+    int pid, i, open_max;
13+    char s[16];
14+
15+    sprintf(s, ":%d", port);
16+
17+    switch (pid = fork()) {
18+    case -1:
19+       fprintf(stderr, "vncviewer failed fork\n");
20+       exit(1);
21+
22+    case 0:    /* child */
23+       open_max = sysconf(_SC_OPEN_MAX);
24+       for (i = 0; i < open_max; i++)
25+           if (i != STDIN_FILENO &&
26+               i != STDOUT_FILENO &&
27+               i != STDERR_FILENO)
28+               close(i);
29+       execlp("vncviewer", "vncviewer", s, NULL);
30+       fprintf(stderr, "vncviewer execlp failed\n");
31+       exit(1);
32+
33+    default:
34+       return pid;
35+    }
36+}
37Index: ioemu/vl.c
38===================================================================
39--- ioemu.orig/vl.c     2007-05-03 10:24:05.000000000 +0100
40+++ ioemu/vl.c  2007-05-03 10:24:06.000000000 +0100
41@@ -121,6 +121,7 @@
42 int bios_size;
43 static DisplayState display_state;
44 int nographic;
45+int vncviewer;
46 const char* keyboard_layout = NULL;
47 int64_t ticks_per_sec;
48 int boot_device = 'c';
49@@ -5415,6 +5416,7 @@
50 #endif
51            "-loadvm file    start right away with a saved state (loadvm in monitor)\n"
52           "-vnc display    start a VNC server on display\n"
53+           "-vncviewer      start a vncviewer process for this domain\n"
54            "-acpi           disable or enable ACPI of HVM domain \n"
55            "\n"
56            "During emulation, the following keys are useful:\n"
57@@ -5501,6 +5503,7 @@
58     QEMU_OPTION_d,
59     QEMU_OPTION_vcpus,
60     QEMU_OPTION_acpi,
61+    QEMU_OPTION_vncviewer,
62 };
63 
64 typedef struct QEMUOption {
65@@ -5575,6 +5578,7 @@
66     { "usbdevice", HAS_ARG, QEMU_OPTION_usbdevice },
67     { "smp", HAS_ARG, QEMU_OPTION_smp },
68     { "vnc", HAS_ARG, QEMU_OPTION_vnc },
69+    { "vncviewer", 0, QEMU_OPTION_vncviewer },
70     
71     /* temporary options */
72     { "usb", 0, QEMU_OPTION_usb },
73@@ -5933,6 +5937,7 @@
74 #endif
75     snapshot = 0;
76     nographic = 0;
77+    vncviewer = 0;
78     kernel_filename = NULL;
79     kernel_cmdline = "";
80 #ifdef TARGET_PPC
81@@ -6328,6 +6333,9 @@
82             case QEMU_OPTION_acpi:
83                 acpi_enabled = 1;
84                 break;
85+            case QEMU_OPTION_vncviewer:
86+                vncviewer++;
87+                break;
88             }
89         }
90     }
91@@ -6530,6 +6538,8 @@
92         dumb_display_init(ds);
93     } else if (vnc_display != -1) {
94        vnc_display_init(ds, vnc_display);
95+       if (vncviewer)
96+           vnc_start_viewer(vnc_display);
97     } else {
98 #if defined(CONFIG_SDL)
99         sdl_display_init(ds, full_screen);
100Index: ioemu/vl.h
101===================================================================
102--- ioemu.orig/vl.h     2007-05-03 10:24:05.000000000 +0100
103+++ ioemu/vl.h  2007-05-03 10:24:06.000000000 +0100
104@@ -786,6 +786,7 @@
105 
106 /* vnc.c */
107 void vnc_display_init(DisplayState *ds, int display);
108+int vnc_start_viewer(int port);
109 
110 /* ide.c */
111 #define MAX_DISKS 4
Note: See TracBrowser for help on using the repository browser.