summaryrefslogtreecommitdiffstats
path: root/meta/packages/qemu/qemu-git/qemu-git-qemugl-host.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/packages/qemu/qemu-git/qemu-git-qemugl-host.patch')
-rw-r--r--meta/packages/qemu/qemu-git/qemu-git-qemugl-host.patch561
1 files changed, 239 insertions, 322 deletions
diff --git a/meta/packages/qemu/qemu-git/qemu-git-qemugl-host.patch b/meta/packages/qemu/qemu-git/qemu-git-qemugl-host.patch
index 00d9ca7cc2..7ec491daed 100644
--- a/meta/packages/qemu/qemu-git/qemu-git-qemugl-host.patch
+++ b/meta/packages/qemu/qemu-git/qemu-git-qemugl-host.patch
@@ -1,21 +1,18 @@
1Index: git/Makefile.target 1Index: qemu/Makefile.target
2=================================================================== 2===================================================================
3--- git.orig/Makefile.target 2009-12-02 13:13:56.000000000 +0000 3--- qemu.orig/Makefile.target 2010-05-11 18:05:22.955784896 -0400
4+++ git/Makefile.target 2010-01-14 16:34:58.000000000 +0000 4+++ qemu/Makefile.target 2010-05-14 13:34:07.721301429 -0400
5@@ -153,6 +153,10 @@ 5@@ -46,6 +46,7 @@ libobj-$(CONFIG_SOFTFLOAT) += fpu/softfl
6 CPPFLAGS+=-I$(SRC_PATH)/fpu 6 libobj-$(CONFIG_NOSOFTFLOAT) += fpu/softfloat-native.o
7 LIBOBJS+= op_helper.o helper.o 7 libobj-y += op_helper.o helper.o
8 libobj-$(CONFIG_NEED_MMU) += mmu.o
9+libobj-$(TARGET_I386) += helper_opengl.o opengl_exec.o
10 libobj-$(TARGET_ARM) += neon_helper.o iwmmxt_helper.o
11 libobj-$(TARGET_ALPHA) += alpha_palcode.o
8 12
9+ifeq ($(TARGET_BASE_ARCH), i386) 13@@ -82,6 +83,21 @@ op_helper.o cpu-exec.o: QEMU_CFLAGS += $
10+LIBOBJS+=helper_opengl.o opengl_exec.o 14 # cpu_signal_handler() in cpu-exec.c.
11+endif 15 signal.o: QEMU_CFLAGS += $(HELPER_CFLAGS)
12+
13 ifeq ($(TARGET_BASE_ARCH), arm)
14 LIBOBJS+= neon_helper.o iwmmxt_helper.o
15 endif
16@@ -224,6 +228,21 @@
17
18 cpu-exec.o: CFLAGS += $(HELPER_CFLAGS)
19 16
20+parse_gl_h: parse_gl_h.c 17+parse_gl_h: parse_gl_h.c
21+ $(HOST_CC) -g -o $@ $< 18+ $(HOST_CC) -g -o $@ $<
@@ -35,29 +32,31 @@ Index: git/Makefile.target
35 ######################################################### 32 #########################################################
36 # Linux user emulator target 33 # Linux user emulator target
37 34
38@@ -584,7 +603,7 @@ 35@@ -196,6 +212,10 @@ obj-i386-y += usb-uhci.o vmmouse.o vmpor
39 OBJS+= cirrus_vga.o apic.o parallel.o acpi.o piix_pci.o 36 obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o wdt_ib700.o
40 OBJS+= usb-uhci.o vmmouse.o vmport.o vmware_vga.o hpet.o 37 obj-i386-y += ne2000-isa.o
41 OBJS += device-hotplug.o pci-hotplug.o 38
42-CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE 39+ifeq ($(TARGET_BASE_ARCH), i386)
43+CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE -DTARGET_OPENGL_OK 40+QEMU_CFLAGS += -DTARGET_OPENGL_OK
44 endif 41+endif
45 ifeq ($(TARGET_BASE_ARCH), ppc) 42+
46 CPPFLAGS += -DHAS_AUDIO -DHAS_AUDIO_CHOICE 43 # shared objects
47@@ -727,7 +746,7 @@ 44 obj-ppc-y = ppc.o ide/core.o ide/qdev.o ide/isa.o ide/pci.o ide/macio.o
48 $(QEMU_PROG): LIBS += $(SDL_LIBS) $(COCOA_LIBS) $(CURSES_LIBS) $(BRLAPI_LIBS) $(VDE_LIBS) 45 obj-ppc-y += ide/cmd646.o
46@@ -303,6 +323,8 @@ vl.o: qemu-options.h
49 47
50 $(QEMU_PROG): $(OBJS) ../libqemu_common.a libqemu.a 48 monitor.o: qemu-monitor.h
51- $(LINK)
52+ $(LINK) -lGL -lGLU
53 49
54 endif # !CONFIG_USER_ONLY 50+LIBS += -lGL -lGLU
51+
52 ARLIBS=../libqemu_common.a libqemu.a $(HWLIB)
55 53
56Index: git/hw/pixel_ops.h 54 endif # CONFIG_SOFTMMU
55Index: qemu/hw/pixel_ops.h
57=================================================================== 56===================================================================
58--- git.orig/hw/pixel_ops.h 2009-12-02 13:13:56.000000000 +0000 57--- qemu.orig/hw/pixel_ops.h 2010-05-11 18:05:22.959804376 -0400
59+++ git/hw/pixel_ops.h 2010-01-14 15:55:40.000000000 +0000 58+++ qemu/hw/pixel_ops.h 2010-05-12 12:10:40.092908994 -0400
60@@ -4,6 +4,12 @@ 59@@ -4,6 +4,12 @@ static inline unsigned int rgb_to_pixel8
61 return ((r >> 5) << 5) | ((g >> 5) << 2) | (b >> 6); 60 return ((r >> 5) << 5) | ((g >> 5) << 2) | (b >> 6);
62 } 61 }
63 62
@@ -70,11 +69,11 @@ Index: git/hw/pixel_ops.h
70 static inline unsigned int rgb_to_pixel15(unsigned int r, unsigned int g, 69 static inline unsigned int rgb_to_pixel15(unsigned int r, unsigned int g,
71 unsigned int b) 70 unsigned int b)
72 { 71 {
73Index: git/hw/vmware_vga.c 72Index: qemu/hw/vmware_vga.c
74=================================================================== 73===================================================================
75--- git.orig/hw/vmware_vga.c 2009-12-02 13:13:56.000000000 +0000 74--- qemu.orig/hw/vmware_vga.c 2010-05-11 18:05:22.959804376 -0400
76+++ git/hw/vmware_vga.c 2010-01-14 15:55:40.000000000 +0000 75+++ qemu/hw/vmware_vga.c 2010-05-12 12:10:40.124785891 -0400
77@@ -484,6 +484,8 @@ 76@@ -489,6 +489,8 @@ static inline void vmsvga_cursor_define(
78 77
79 #define CMD(f) le32_to_cpu(s->cmd->f) 78 #define CMD(f) le32_to_cpu(s->cmd->f)
80 79
@@ -83,7 +82,7 @@ Index: git/hw/vmware_vga.c
83 static inline int vmsvga_fifo_empty(struct vmsvga_state_s *s) 82 static inline int vmsvga_fifo_empty(struct vmsvga_state_s *s)
84 { 83 {
85 if (!s->config || !s->enable) 84 if (!s->config || !s->enable)
86@@ -493,11 +495,18 @@ 85@@ -498,11 +500,18 @@ static inline int vmsvga_fifo_empty(stru
87 86
88 static inline uint32_t vmsvga_fifo_read_raw(struct vmsvga_state_s *s) 87 static inline uint32_t vmsvga_fifo_read_raw(struct vmsvga_state_s *s)
89 { 88 {
@@ -106,7 +105,7 @@ Index: git/hw/vmware_vga.c
106 } 105 }
107 106
108 static inline uint32_t vmsvga_fifo_read(struct vmsvga_state_s *s) 107 static inline uint32_t vmsvga_fifo_read(struct vmsvga_state_s *s)
109@@ -507,12 +516,12 @@ 108@@ -512,12 +521,12 @@ static inline uint32_t vmsvga_fifo_read(
110 109
111 static void vmsvga_fifo_run(struct vmsvga_state_s *s) 110 static void vmsvga_fifo_run(struct vmsvga_state_s *s)
112 { 111 {
@@ -121,7 +120,7 @@ Index: git/hw/vmware_vga.c
121 case SVGA_CMD_UPDATE: 120 case SVGA_CMD_UPDATE:
122 case SVGA_CMD_UPDATE_VERBOSE: 121 case SVGA_CMD_UPDATE_VERBOSE:
123 x = vmsvga_fifo_read(s); 122 x = vmsvga_fifo_read(s);
124@@ -612,7 +621,7 @@ 123@@ -617,7 +626,7 @@ static void vmsvga_fifo_run(struct vmsvg
125 while (args --) 124 while (args --)
126 vmsvga_fifo_read(s); 125 vmsvga_fifo_read(s);
127 printf("%s: Unknown command 0x%02x in SVGA command FIFO\n", 126 printf("%s: Unknown command 0x%02x in SVGA command FIFO\n",
@@ -130,71 +129,24 @@ Index: git/hw/vmware_vga.c
130 break; 129 break;
131 } 130 }
132 131
133@@ -914,8 +923,9 @@ 132@@ -1136,6 +1145,12 @@ static void vmsvga_init(struct vmsvga_st
134 s->width = -1;
135 s->height = -1;
136 s->svgaid = SVGA_ID;
137- s->depth = 24;
138+ s->depth = 32;
139 s->bypp = (s->depth + 7) >> 3;
140+ s->bypp = 4; /* XXX: until we can get host's actual depth */
141 s->cursor.on = 0;
142 s->redraw_fifo_first = 0;
143 s->redraw_fifo_last = 0;
144@@ -1140,6 +1150,12 @@
145 /* XXX: use optimized standard vga accesses */
146 cpu_register_physical_memory(VBE_DISPI_LFB_PHYSICAL_ADDRESS,
147 vga_ram_size, vga_ram_offset);
148+
149+#ifdef EMBED_STDVGA
150+ s->map_addr = VBE_DISPI_LFB_PHYSICAL_ADDRESS;
151+ s->map_end = VBE_DISPI_LFB_PHYSICAL_ADDRESS + vga_ram_size;
152+ vga_dirty_log_start((VGAState *) s);
153+#endif
154 #endif
155 }
156 133
157Index: git/kqemu.c 134 vga_init_vbe(&s->vga);
158===================================================================
159--- git.orig/kqemu.c 2009-12-02 13:13:56.000000000 +0000
160+++ git/kqemu.c 2010-01-14 15:55:40.000000000 +0000
161@@ -93,6 +93,8 @@
162 int qpi_io_memory;
163 uint32_t kqemu_comm_base; /* physical address of the QPI communication page */
164 135
165+extern int enable_gl; 136+#ifdef EMBED_STDVGA
137+ s->vga.map_addr = VBE_DISPI_LFB_PHYSICAL_ADDRESS;
138+ s->vga.map_end = VBE_DISPI_LFB_PHYSICAL_ADDRESS + vga_ram_size;
139+ vga_dirty_log_start(s);
140+#endif
166+ 141+
167 #define cpuid(index, eax, ebx, ecx, edx) \ 142 rom_add_vga(VGABIOS_FILENAME);
168 asm volatile ("cpuid" \
169 : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx) \
170@@ -860,6 +862,22 @@
171 else
172 env->hflags &= ~HF_OSFXSR_MASK;
173 143
174+ /* OPENGL Stuff */ 144 vmsvga_reset(s);
175+ if (enable_gl && ((env->hflags & HF_CPL_MASK) == 3)) { 145Index: qemu/qemu-char.c
176+ int index = (env->eip >> TARGET_PAGE_BITS) & (CPU_TLB_SIZE - 1);
177+ if (env->segs[R_CS].base != 0)
178+ fprintf(stderr, "env->segs[R_CS].base != 0 !\n");
179+ else if (__builtin_expect(env->tlb_table[1][index].addr_code !=
180+ (env->eip & TARGET_PAGE_MASK), 0))
181+ ldub_code(env->eip);
182+
183+ if (env->tlb_table[1][index].addend) {
184+ unsigned char *ptr = env->eip + env->tlb_table[1][index].addend;
185+ if (ptr[0] == 0xcd && ptr[1] == 0x99)
186+ helper_opengl();
187+ }
188+ }
189+
190 LOG_INT("kqemu: kqemu_cpu_exec: ret=0x%x\n", ret);
191 if (ret == KQEMU_RET_SYSCALL) {
192 /* syscall instruction */
193Index: git/qemu-char.c
194=================================================================== 146===================================================================
195--- git.orig/qemu-char.c 2009-12-02 13:13:56.000000000 +0000 147--- qemu.orig/qemu-char.c 2010-05-11 18:05:22.955784896 -0400
196+++ git/qemu-char.c 2010-01-14 15:55:40.000000000 +0000 148+++ qemu/qemu-char.c 2010-05-12 17:20:54.280909040 -0400
197@@ -2112,6 +2112,69 @@ 149@@ -2232,6 +2232,69 @@ static CharDriverState *qemu_chr_open_so
198 return NULL; 150 return NULL;
199 } 151 }
200 152
@@ -253,7 +205,7 @@ Index: git/qemu-char.c
253+ chr->opaque = chr; 205+ chr->opaque = chr;
254+ chr->chr_write = opengl_chr_write; 206+ chr->chr_write = opengl_chr_write;
255+ 207+
256+ qemu_chr_reset(chr); 208+ qemu_chr_generic_open(chr);
257+ 209+
258+ return chr; 210+ return chr;
259+} 211+}
@@ -261,57 +213,66 @@ Index: git/qemu-char.c
261+#define qemu_chr_open_opengl() 0 213+#define qemu_chr_open_opengl() 0
262+#endif 214+#endif
263+ 215+
264 CharDriverState *qemu_chr_open(const char *label, const char *filename, void (*init)(struct CharDriverState *s)) 216 QemuOpts *qemu_chr_parse_compat(const char *label, const char *filename)
265 { 217 {
266 const char *p; 218 char host[65], port[33], width[8], height[8];
267@@ -2192,6 +2255,9 @@ 219@@ -2352,6 +2415,10 @@ QemuOpts *qemu_chr_parse_compat(const ch
268 chr = chr_baum_init(); 220 qemu_opt_set(opts, "path", filename);
269 } else 221 return opts;
270 #endif
271+ if (!strcmp(filename, "opengl")) {
272+ chr = qemu_chr_open_opengl();
273+ } else
274 {
275 chr = NULL;
276 } 222 }
277Index: git/sdl.c 223+ if (!strcmp(filename, "opengl")){
224+ qemu_opt_set(opts, "backend", "opengl");
225+ return opts;
226+ }
227
228 fail:
229 fprintf(stderr, "%s: fail on \"%s\"\n", __FUNCTION__, filename);
230@@ -2368,6 +2435,7 @@ static const struct {
231 { .name = "udp", .open = qemu_chr_open_udp },
232 { .name = "msmouse", .open = qemu_chr_open_msmouse },
233 { .name = "vc", .open = text_console_init },
234+ { .name = "opengl", .open = qemu_chr_open_opengl },
235 #ifdef _WIN32
236 { .name = "file", .open = qemu_chr_open_win_file_out },
237 { .name = "pipe", .open = qemu_chr_open_win_pipe },
238Index: qemu/sdl.c
278=================================================================== 239===================================================================
279--- git.orig/sdl.c 2009-12-02 13:13:56.000000000 +0000 240--- qemu.orig/sdl.c 2010-05-11 18:05:22.959804376 -0400
280+++ git/sdl.c 2010-01-14 15:55:40.000000000 +0000 241+++ qemu/sdl.c 2010-05-12 12:10:40.128783931 -0400
281@@ -54,6 +54,8 @@ 242@@ -58,6 +58,8 @@ static uint8_t allocator;
282 static int guest_x, guest_y; 243 static SDL_PixelFormat host_format;
283 static SDL_Cursor *guest_sprite = 0; 244 static int scaling_active = 0;
284 245
285+extern void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window); 246+extern void opengl_exec_set_parent_window(Display* _dpy, Window _parent_window);
286+ 247+
287 static void sdl_update(DisplayState *ds, int x, int y, int w, int h) 248 static void sdl_update(DisplayState *ds, int x, int y, int w, int h)
288 { 249 {
289 SDL_Rect rec; 250 // printf("updating x=%d y=%d w=%d h=%d\n", x, y, w, h);
290@@ -85,7 +87,9 @@ 251@@ -119,12 +121,22 @@ static void do_sdl_resize(int new_width,
291 252
292 static void sdl_resize(DisplayState *ds) 253 static void sdl_resize(DisplayState *ds)
293 { 254 {
255- if (!allocator) {
294+ SDL_SysWMinfo info; 256+ SDL_SysWMinfo info;
295 int flags;
296+ static Display *dpy; 257+ static Display *dpy;
297
298 // printf("resizing to %d %d\n", w, h);
299
300@@ -104,6 +108,13 @@
301 }
302
303 sdl_setdata(ds);
304+ 258+
305+ SDL_GetWMInfo(&info); 259+ if (!allocator) {
306+ if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display && 260 if (!scaling_active)
307+ (!dpy || dpy == info.info.x11.display)) { 261 do_sdl_resize(ds_get_width(ds), ds_get_height(ds), 0);
308+ dpy = info.info.x11.display; 262 else if (real_screen->format->BitsPerPixel != ds_get_bits_per_pixel(ds))
309+ opengl_exec_set_parent_window(dpy, info.info.x11.window); 263 do_sdl_resize(real_screen->w, real_screen->h, ds_get_bits_per_pixel(ds));
310+ } 264 sdl_setdata(ds);
311 } 265+
312 266+ SDL_GetWMInfo(&info);
313 /* generic keyboard conversion */ 267+ if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display &&
314@@ -323,7 +334,7 @@ 268+ (!dpy || dpy == info.info.x11.display)) {
269+ dpy = info.info.x11.display;
270+ opengl_exec_set_parent_window(dpy, info.info.x11.window);
271+ }
272 } else {
273 if (guest_screen != NULL) {
274 SDL_FreeSurface(guest_screen);
275@@ -453,7 +465,7 @@ static void sdl_show_cursor(void)
315 276
316 if (!kbd_mouse_is_absolute()) { 277 if (!kbd_mouse_is_absolute()) {
317 SDL_ShowCursor(1); 278 SDL_ShowCursor(1);
@@ -320,7 +281,7 @@ Index: git/sdl.c
320 (gui_grab || kbd_mouse_is_absolute() || absolute_enabled)) 281 (gui_grab || kbd_mouse_is_absolute() || absolute_enabled))
321 SDL_SetCursor(guest_sprite); 282 SDL_SetCursor(guest_sprite);
322 else 283 else
323@@ -334,7 +345,8 @@ 284@@ -464,7 +476,8 @@ static void sdl_show_cursor(void)
324 static void sdl_grab_start(void) 285 static void sdl_grab_start(void)
325 { 286 {
326 if (guest_cursor) { 287 if (guest_cursor) {
@@ -330,7 +291,7 @@ Index: git/sdl.c
330 if (!kbd_mouse_is_absolute() && !absolute_enabled) 291 if (!kbd_mouse_is_absolute() && !absolute_enabled)
331 SDL_WarpMouse(guest_x, guest_y); 292 SDL_WarpMouse(guest_x, guest_y);
332 } else 293 } else
333@@ -375,8 +387,8 @@ 294@@ -505,8 +518,8 @@ static void sdl_send_mouse_event(int dx,
334 absolute_enabled = 1; 295 absolute_enabled = 1;
335 } 296 }
336 297
@@ -341,7 +302,7 @@ Index: git/sdl.c
341 } else if (absolute_enabled) { 302 } else if (absolute_enabled) {
342 sdl_show_cursor(); 303 sdl_show_cursor();
343 absolute_enabled = 0; 304 absolute_enabled = 0;
344@@ -606,7 +618,8 @@ 305@@ -760,7 +773,8 @@ static void sdl_mouse_warp(int x, int y,
345 if (!guest_cursor) 306 if (!guest_cursor)
346 sdl_show_cursor(); 307 sdl_show_cursor();
347 if (gui_grab || kbd_mouse_is_absolute() || absolute_enabled) { 308 if (gui_grab || kbd_mouse_is_absolute() || absolute_enabled) {
@@ -351,18 +312,7 @@ Index: git/sdl.c
351 if (!kbd_mouse_is_absolute() && !absolute_enabled) 312 if (!kbd_mouse_is_absolute() && !absolute_enabled)
352 SDL_WarpMouse(x, y); 313 SDL_WarpMouse(x, y);
353 } 314 }
354@@ -631,6 +644,10 @@ 315@@ -814,7 +828,7 @@ static void sdl_mouse_define(int width,
355 line = image;
356 for (x = 0; x < width; x ++, dst ++) {
357 switch (bpp) {
358+ case 32:
359+ src = *(line ++); src |= *(line ++);
360+ src = *(line ++); src |= *(line ++);
361+ break;
362 case 24:
363 src = *(line ++); src |= *(line ++); src |= *(line ++);
364 break;
365@@ -657,7 +674,7 @@
366 } 316 }
367 guest_sprite = SDL_CreateCursor(sprite, mask, width, height, hot_x, hot_y); 317 guest_sprite = SDL_CreateCursor(sprite, mask, width, height, hot_x, hot_y);
368 318
@@ -371,17 +321,17 @@ Index: git/sdl.c
371 (gui_grab || kbd_mouse_is_absolute() || absolute_enabled)) 321 (gui_grab || kbd_mouse_is_absolute() || absolute_enabled))
372 SDL_SetCursor(guest_sprite); 322 SDL_SetCursor(guest_sprite);
373 } 323 }
374@@ -673,6 +690,7 @@ 324@@ -831,6 +845,7 @@ void sdl_display_init(DisplayState *ds,
375 {
376 int flags; 325 int flags;
377 uint8_t data = 0; 326 uint8_t data = 0;
327 DisplayAllocator *da;
378+ SDL_SysWMinfo info; 328+ SDL_SysWMinfo info;
329 const SDL_VideoInfo *vi;
379 330
380 #if defined(__APPLE__) 331 #if defined(__APPLE__)
381 /* always use generic keymaps */ 332@@ -855,6 +870,12 @@ void sdl_display_init(DisplayState *ds,
382@@ -694,6 +712,12 @@ 333 vi = SDL_GetVideoInfo();
383 exit(1); 334 host_format = *(vi->vfmt);
384 }
385 335
386+ SDL_GetWMInfo(&info); 336+ SDL_GetWMInfo(&info);
387+ if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display) 337+ if (info.subsystem == SDL_SYSWM_X11 && info.info.x11.display)
@@ -392,7 +342,7 @@ Index: git/sdl.c
392 dcl = qemu_mallocz(sizeof(DisplayChangeListener)); 342 dcl = qemu_mallocz(sizeof(DisplayChangeListener));
393 dcl->dpy_update = sdl_update; 343 dcl->dpy_update = sdl_update;
394 dcl->dpy_resize = sdl_resize; 344 dcl->dpy_resize = sdl_resize;
395@@ -717,4 +741,9 @@ 345@@ -890,4 +911,9 @@ void sdl_display_init(DisplayState *ds,
396 gui_fullscreen_initial_grab = 1; 346 gui_fullscreen_initial_grab = 1;
397 sdl_grab_start(); 347 sdl_grab_start();
398 } 348 }
@@ -402,31 +352,19 @@ Index: git/sdl.c
402+ opengl_exec_set_parent_window(info.info.x11.display, 352+ opengl_exec_set_parent_window(info.info.x11.display,
403+ info.info.x11.window); 353+ info.info.x11.window);
404 } 354 }
405Index: git/slirp/ctl.h 355Index: qemu/slirp/udp.c
406=================================================================== 356===================================================================
407--- git.orig/slirp/ctl.h 2009-12-02 13:13:56.000000000 +0000 357--- qemu.orig/slirp/udp.c 2010-05-11 18:05:22.955784896 -0400
408+++ git/slirp/ctl.h 2010-01-14 15:55:40.000000000 +0000 358+++ qemu/slirp/udp.c 2010-05-12 12:10:40.129784123 -0400
409@@ -2,6 +2,7 @@
410 #define CTL_EXEC 1
411 #define CTL_ALIAS 2
412 #define CTL_DNS 3
413+#define CTL_OPENGL 6
414
415 #define CTL_SPECIAL "10.0.2.0"
416 #define CTL_LOCAL "10.0.2.15"
417Index: git/slirp/udp.c
418===================================================================
419--- git.orig/slirp/udp.c 2009-12-02 13:13:56.000000000 +0000
420+++ git/slirp/udp.c 2010-01-14 15:55:40.000000000 +0000
421@@ -40,6 +40,7 @@ 359@@ -40,6 +40,7 @@
422 360
423 #include <slirp.h> 361 #include <slirp.h>
424 #include "ip_icmp.h" 362 #include "ip_icmp.h"
425+#include "bswap.h" 363+#include "bswap.h"
426 364
427 #ifdef LOG_ENABLED 365 static u_int8_t udp_tos(struct socket *so);
428 struct udpstat udpstat; 366
429@@ -153,6 +154,11 @@ 367@@ -125,6 +126,11 @@ udp_input(register struct mbuf *m, int i
430 goto bad; 368 goto bad;
431 } 369 }
432 370
@@ -435,25 +373,25 @@ Index: git/slirp/udp.c
435+ goto bad; 373+ goto bad;
436+ } 374+ }
437+ 375+
438 if (slirp_restrict) 376 if (slirp->restricted) {
439 goto bad; 377 goto bad;
440 378 }
441Index: git/sysemu.h 379Index: qemu/sysemu.h
442=================================================================== 380===================================================================
443--- git.orig/sysemu.h 2009-12-02 13:13:56.000000000 +0000 381--- qemu.orig/sysemu.h 2010-05-11 18:05:22.959804376 -0400
444+++ git/sysemu.h 2010-01-14 15:55:40.000000000 +0000 382+++ qemu/sysemu.h 2010-05-12 12:10:40.129784123 -0400
445@@ -96,6 +96,7 @@ 383@@ -141,6 +141,7 @@ extern int semihosting_enabled;
446 extern int no_quit;
447 extern int semihosting_enabled;
448 extern int old_param; 384 extern int old_param;
385 extern int boot_menu;
386 extern QEMUClock *rtc_clock;
449+extern int force_pointer; 387+extern int force_pointer;
450 extern const char *bootp_filename;
451 388
452 #ifdef USE_KQEMU 389 #define MAX_NODES 64
453Index: git/target-i386/beginend_funcs.sh 390 extern int nb_numa_nodes;
391Index: qemu/target-i386/beginend_funcs.sh
454=================================================================== 392===================================================================
455--- /dev/null 1970-01-01 00:00:00.000000000 +0000 393--- /dev/null 1970-01-01 00:00:00.000000000 +0000
456+++ git/target-i386/beginend_funcs.sh 2010-01-14 15:55:40.000000000 +0000 394+++ qemu/target-i386/beginend_funcs.sh 2010-05-12 12:10:40.129784123 -0400
457@@ -0,0 +1,23 @@ 395@@ -0,0 +1,23 @@
458+#! /bin/sh 396+#! /bin/sh
459+# Copyright 2008 (C) Intel Corporation 397+# Copyright 2008 (C) Intel Corporation
@@ -478,10 +416,10 @@ Index: git/target-i386/beginend_funcs.sh
478+echo -e MAGIC_MACRO\(glCallList\)\\n 416+echo -e MAGIC_MACRO\(glCallList\)\\n
479+echo -e MAGIC_MACRO\(glCallLists\)\\n 417+echo -e MAGIC_MACRO\(glCallLists\)\\n
480+echo -e MAGIC_MACRO\(glEdgeFlag{,v}\)\\n 418+echo -e MAGIC_MACRO\(glEdgeFlag{,v}\)\\n
481Index: git/target-i386/ghash.c 419Index: qemu/target-i386/ghash.c
482=================================================================== 420===================================================================
483--- /dev/null 1970-01-01 00:00:00.000000000 +0000 421--- /dev/null 1970-01-01 00:00:00.000000000 +0000
484+++ git/target-i386/ghash.c 2010-01-14 15:55:40.000000000 +0000 422+++ qemu/target-i386/ghash.c 2010-05-12 12:10:40.130781590 -0400
485@@ -0,0 +1,347 @@ 423@@ -0,0 +1,347 @@
486+/* This is a modified and simplified version of original ghash.c */ 424+/* This is a modified and simplified version of original ghash.c */
487+ 425+
@@ -830,10 +768,10 @@ Index: git/target-i386/ghash.c
830+ hash_node = next; 768+ hash_node = next;
831+ } 769+ }
832+} 770+}
833Index: git/target-i386/ghash.h 771Index: qemu/target-i386/ghash.h
834=================================================================== 772===================================================================
835--- /dev/null 1970-01-01 00:00:00.000000000 +0000 773--- /dev/null 1970-01-01 00:00:00.000000000 +0000
836+++ git/target-i386/ghash.h 2010-01-14 15:55:40.000000000 +0000 774+++ qemu/target-i386/ghash.h 2010-05-12 12:10:40.130781590 -0400
837@@ -0,0 +1,59 @@ 775@@ -0,0 +1,59 @@
838+/* This is a modified and simplified version of original ghash.h */ 776+/* This is a modified and simplified version of original ghash.h */
839+ 777+
@@ -894,10 +832,10 @@ Index: git/target-i386/ghash.h
894+ 832+
895+#endif /* __SIMPLE_HASH_H__ */ 833+#endif /* __SIMPLE_HASH_H__ */
896+ 834+
897Index: git/target-i386/gl_func_perso.h 835Index: qemu/target-i386/gl_func_perso.h
898=================================================================== 836===================================================================
899--- /dev/null 1970-01-01 00:00:00.000000000 +0000 837--- /dev/null 1970-01-01 00:00:00.000000000 +0000
900+++ git/target-i386/gl_func_perso.h 2010-01-14 15:55:40.000000000 +0000 838+++ qemu/target-i386/gl_func_perso.h 2010-05-12 12:10:40.130781590 -0400
901@@ -0,0 +1,135 @@ 839@@ -0,0 +1,135 @@
902+/* 840+/*
903+ * Hand-implemented GL/GLX API 841+ * Hand-implemented GL/GLX API
@@ -1034,11 +972,11 @@ Index: git/target-i386/gl_func_perso.h
1034+MAGIC_MACRO(_glGetSelectBuffer_fake), 972+MAGIC_MACRO(_glGetSelectBuffer_fake),
1035+MAGIC_MACRO(_glFeedbackBuffer_fake), 973+MAGIC_MACRO(_glFeedbackBuffer_fake),
1036+MAGIC_MACRO(_glGetFeedbackBuffer_fake), 974+MAGIC_MACRO(_glGetFeedbackBuffer_fake),
1037Index: git/target-i386/helper.c 975Index: qemu/target-i386/helper.c
1038=================================================================== 976===================================================================
1039--- git.orig/target-i386/helper.c 2009-12-02 13:13:56.000000000 +0000 977--- qemu.orig/target-i386/helper.c 2010-05-11 18:05:22.955784896 -0400
1040+++ git/target-i386/helper.c 2010-01-14 15:55:40.000000000 +0000 978+++ qemu/target-i386/helper.c 2010-05-12 12:10:40.131781711 -0400
1041@@ -1326,7 +1326,7 @@ 979@@ -1433,7 +1433,7 @@ target_phys_addr_t cpu_get_phys_page_deb
1042 } 980 }
1043 981
1044 page_offset = (addr & TARGET_PAGE_MASK) & (page_size - 1); 982 page_offset = (addr & TARGET_PAGE_MASK) & (page_size - 1);
@@ -1047,21 +985,21 @@ Index: git/target-i386/helper.c
1047 return paddr; 985 return paddr;
1048 } 986 }
1049 987
1050Index: git/target-i386/helper.h 988Index: qemu/target-i386/helper.h
1051=================================================================== 989===================================================================
1052--- git.orig/target-i386/helper.h 2009-12-02 13:13:56.000000000 +0000 990--- qemu.orig/target-i386/helper.h 2010-05-11 18:05:22.956804503 -0400
1053+++ git/target-i386/helper.h 2010-01-14 15:55:40.000000000 +0000 991+++ qemu/target-i386/helper.h 2010-05-12 12:10:40.131781711 -0400
1054@@ -214,4 +214,6 @@ 992@@ -217,4 +217,6 @@ DEF_HELPER_2(rclq, tl, tl, tl)
1055 DEF_HELPER_2(rcrq, tl, tl, tl) 993 DEF_HELPER_2(rcrq, tl, tl, tl)
1056 #endif 994 #endif
1057 995
1058+DEF_HELPER_0(opengl, void) 996+DEF_HELPER_0(opengl, void)
1059+ 997+
1060 #include "def-helper.h" 998 #include "def-helper.h"
1061Index: git/target-i386/helper_opengl.c 999Index: qemu/target-i386/helper_opengl.c
1062=================================================================== 1000===================================================================
1063--- /dev/null 1970-01-01 00:00:00.000000000 +0000 1001--- /dev/null 1970-01-01 00:00:00.000000000 +0000
1064+++ git/target-i386/helper_opengl.c 2010-01-14 16:36:59.000000000 +0000 1002+++ qemu/target-i386/helper_opengl.c 2010-05-12 12:10:40.132781622 -0400
1065@@ -0,0 +1,1207 @@ 1003@@ -0,0 +1,1207 @@
1066+/* 1004+/*
1067+ * Host-side implementation of GL/GLX API 1005+ * Host-side implementation of GL/GLX API
@@ -1148,16 +1086,16 @@ Index: git/target-i386/helper_opengl.c
1148+ cpu_x86_handle_mmu_fault((CPUState *) env, addr, 0, 1, 1)); 1086+ cpu_x86_handle_mmu_fault((CPUState *) env, addr, 0, 1, 1));
1149+ return NULL; 1087+ return NULL;
1150+ } else { 1088+ } else {
1151+ if (ret + TARGET_PAGE_SIZE <= phys_ram_size) { 1089+ if (ret + TARGET_PAGE_SIZE <= last_ram_offset) {
1152+ return phys_ram_base + ret + 1090+ return qemu_get_ram_ptr(ret +
1153+ (((target_ulong) addr) & (TARGET_PAGE_SIZE - 1)); 1091+ (((target_ulong) addr) & (TARGET_PAGE_SIZE - 1)));
1154+ } else { 1092+ } else {
1155+ fprintf(stderr, 1093+ fprintf(stderr,
1156+ "cpu_get_phys_page_debug(env, " TARGET_FMT_lx ") == " 1094+ "cpu_get_phys_page_debug(env, " TARGET_FMT_lx ") == "
1157+ TARGET_FMT_lx "\n", addr, ret); 1095+ TARGET_FMT_lx "\n", addr, ret);
1158+ fprintf(stderr, 1096+ fprintf(stderr,
1159+ "ret=" TARGET_FMT_lx " phys_ram_size= " TARGET_FMT_lx 1097+ "ret=" TARGET_FMT_lx " last_ram_offset= " TARGET_FMT_lx
1160+ "\n", ret, (target_ulong) phys_ram_size); 1098+ "\n", ret, (target_ulong) last_ram_offset);
1161+ return NULL; 1099+ return NULL;
1162+ } 1100+ }
1163+ } 1101+ }
@@ -2270,11 +2208,11 @@ Index: git/target-i386/helper_opengl.c
2270+ io_register(); 2208+ io_register();
2271+} 2209+}
2272+#endif 2210+#endif
2273Index: git/target-i386/kvm.c 2211Index: qemu/target-i386/kvm.c
2274=================================================================== 2212===================================================================
2275--- git.orig/target-i386/kvm.c 2009-12-02 13:13:56.000000000 +0000 2213--- qemu.orig/target-i386/kvm.c 2010-05-11 18:05:22.956804503 -0400
2276+++ git/target-i386/kvm.c 2010-01-14 15:55:40.000000000 +0000 2214+++ qemu/target-i386/kvm.c 2010-05-12 12:10:40.132781622 -0400
2277@@ -480,7 +480,7 @@ 2215@@ -528,7 +528,7 @@ static int kvm_get_fpu(CPUState *env)
2278 return 0; 2216 return 0;
2279 } 2217 }
2280 2218
@@ -2283,10 +2221,10 @@ Index: git/target-i386/kvm.c
2283 { 2221 {
2284 struct kvm_sregs sregs; 2222 struct kvm_sregs sregs;
2285 uint32_t hflags; 2223 uint32_t hflags;
2286Index: git/target-i386/mesa_enums.c 2224Index: qemu/target-i386/mesa_enums.c
2287=================================================================== 2225===================================================================
2288--- /dev/null 1970-01-01 00:00:00.000000000 +0000 2226--- /dev/null 1970-01-01 00:00:00.000000000 +0000
2289+++ git/target-i386/mesa_enums.c 2010-01-14 15:55:40.000000000 +0000 2227+++ qemu/target-i386/mesa_enums.c 2010-05-12 12:10:40.163783695 -0400
2290@@ -0,0 +1,4890 @@ 2228@@ -0,0 +1,4890 @@
2291+/* DO NOT EDIT - This file generated automatically by gl_enums.py (from Mesa) script */ 2229+/* DO NOT EDIT - This file generated automatically by gl_enums.py (from Mesa) script */
2292+ 2230+
@@ -7178,10 +7116,10 @@ Index: git/target-i386/mesa_enums.c
7178+} 7116+}
7179+ 7117+
7180+ 7118+
7181Index: git/target-i386/mesa_get.c 7119Index: qemu/target-i386/mesa_get.c
7182=================================================================== 7120===================================================================
7183--- /dev/null 1970-01-01 00:00:00.000000000 +0000 7121--- /dev/null 1970-01-01 00:00:00.000000000 +0000
7184+++ git/target-i386/mesa_get.c 2010-01-14 15:55:40.000000000 +0000 7122+++ qemu/target-i386/mesa_get.c 2010-05-12 12:10:40.171781452 -0400
7185@@ -0,0 +1,5563 @@ 7123@@ -0,0 +1,5563 @@
7186+ 7124+
7187+/*** 7125+/***
@@ -12746,10 +12684,10 @@ Index: git/target-i386/mesa_get.c
12746+ params[i] = (GLdouble) values[i]; 12684+ params[i] = (GLdouble) values[i];
12747+} 12685+}
12748+ 12686+
12749Index: git/target-i386/mesa_gl.h 12687Index: qemu/target-i386/mesa_gl.h
12750=================================================================== 12688===================================================================
12751--- /dev/null 1970-01-01 00:00:00.000000000 +0000 12689--- /dev/null 1970-01-01 00:00:00.000000000 +0000
12752+++ git/target-i386/mesa_gl.h 2010-01-14 15:55:40.000000000 +0000 12690+++ qemu/target-i386/mesa_gl.h 2010-05-12 12:10:40.173780926 -0400
12753@@ -0,0 +1,2251 @@ 12691@@ -0,0 +1,2251 @@
12754+/* 12692+/*
12755+ * Mesa 3-D graphics library 12693+ * Mesa 3-D graphics library
@@ -15002,10 +14940,10 @@ Index: git/target-i386/mesa_gl.h
15002+#endif 14940+#endif
15003+ 14941+
15004+#endif /* __gl_h_ */ 14942+#endif /* __gl_h_ */
15005Index: git/target-i386/mesa_glext.h 14943Index: qemu/target-i386/mesa_glext.h
15006=================================================================== 14944===================================================================
15007--- /dev/null 1970-01-01 00:00:00.000000000 +0000 14945--- /dev/null 1970-01-01 00:00:00.000000000 +0000
15008+++ git/target-i386/mesa_glext.h 2010-01-14 15:55:40.000000000 +0000 14946+++ qemu/target-i386/mesa_glext.h 2010-05-12 12:10:40.180780867 -0400
15009@@ -0,0 +1,7279 @@ 14947@@ -0,0 +1,7279 @@
15010+#ifndef __glext_h_ 14948+#ifndef __glext_h_
15011+#define __glext_h_ 14949+#define __glext_h_
@@ -22286,10 +22224,10 @@ Index: git/target-i386/mesa_glext.h
22286+ 22224+
22287+/* ERO */ 22225+/* ERO */
22288+GLAPI void GLAPIENTRY fake_gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *data); 22226+GLAPI void GLAPIENTRY fake_gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *data);
22289Index: git/target-i386/mesa_glu.h 22227Index: qemu/target-i386/mesa_glu.h
22290=================================================================== 22228===================================================================
22291--- /dev/null 1970-01-01 00:00:00.000000000 +0000 22229--- /dev/null 1970-01-01 00:00:00.000000000 +0000
22292+++ git/target-i386/mesa_glu.h 2010-01-14 15:55:40.000000000 +0000 22230+++ qemu/target-i386/mesa_glu.h 2010-05-12 12:10:40.181781686 -0400
22293@@ -0,0 +1,354 @@ 22231@@ -0,0 +1,354 @@
22294+/* 22232+/*
22295+** License Applicability. Except to the extent portions of this file are 22233+** License Applicability. Except to the extent portions of this file are
@@ -22645,10 +22583,10 @@ Index: git/target-i386/mesa_glu.h
22645+#endif 22583+#endif
22646+ 22584+
22647+#endif /* __glu_h__ */ 22585+#endif /* __glu_h__ */
22648Index: git/target-i386/mesa_glx.h 22586Index: qemu/target-i386/mesa_glx.h
22649=================================================================== 22587===================================================================
22650--- /dev/null 1970-01-01 00:00:00.000000000 +0000 22588--- /dev/null 1970-01-01 00:00:00.000000000 +0000
22651+++ git/target-i386/mesa_glx.h 2010-01-14 15:55:40.000000000 +0000 22589+++ qemu/target-i386/mesa_glx.h 2010-05-12 12:10:40.181781686 -0400
22652@@ -0,0 +1,510 @@ 22590@@ -0,0 +1,510 @@
22653+/* 22591+/*
22654+ * Mesa 3-D graphics library 22592+ * Mesa 3-D graphics library
@@ -23160,10 +23098,10 @@ Index: git/target-i386/mesa_glx.h
23160+#endif 23098+#endif
23161+ 23099+
23162+#endif 23100+#endif
23163Index: git/target-i386/mesa_glxext.h 23101Index: qemu/target-i386/mesa_glxext.h
23164=================================================================== 23102===================================================================
23165--- /dev/null 1970-01-01 00:00:00.000000000 +0000 23103--- /dev/null 1970-01-01 00:00:00.000000000 +0000
23166+++ git/target-i386/mesa_glxext.h 2010-01-14 15:55:40.000000000 +0000 23104+++ qemu/target-i386/mesa_glxext.h 2010-05-12 12:10:40.182781668 -0400
23167@@ -0,0 +1,785 @@ 23105@@ -0,0 +1,785 @@
23168+#ifndef __glxext_h_ 23106+#ifndef __glxext_h_
23169+#define __glxext_h_ 23107+#define __glxext_h_
@@ -23950,10 +23888,10 @@ Index: git/target-i386/mesa_glxext.h
23950+#endif 23888+#endif
23951+ 23889+
23952+#endif 23890+#endif
23953Index: git/target-i386/mesa_mipmap.c 23891Index: qemu/target-i386/mesa_mipmap.c
23954=================================================================== 23892===================================================================
23955--- /dev/null 1970-01-01 00:00:00.000000000 +0000 23893--- /dev/null 1970-01-01 00:00:00.000000000 +0000
23956+++ git/target-i386/mesa_mipmap.c 2010-01-14 15:55:40.000000000 +0000 23894+++ qemu/target-i386/mesa_mipmap.c 2010-05-12 12:10:40.183781579 -0400
23957@@ -0,0 +1,824 @@ 23895@@ -0,0 +1,824 @@
23958+ 23896+
23959+/* 23897+/*
@@ -24779,10 +24717,10 @@ Index: git/target-i386/mesa_mipmap.c
24779+ 24717+
24780+ return retval; 24718+ return retval;
24781+} 24719+}
24782Index: git/target-i386/opengl_exec.c 24720Index: qemu/target-i386/opengl_exec.c
24783=================================================================== 24721===================================================================
24784--- /dev/null 1970-01-01 00:00:00.000000000 +0000 24722--- /dev/null 1970-01-01 00:00:00.000000000 +0000
24785+++ git/target-i386/opengl_exec.c 2010-01-14 16:34:53.000000000 +0000 24723+++ qemu/target-i386/opengl_exec.c 2010-05-14 13:34:05.506295624 -0400
24786@@ -0,0 +1,3931 @@ 24724@@ -0,0 +1,3931 @@
24787+/* 24725+/*
24788+ * Host-side implementation of GL/GLX API 24726+ * Host-side implementation of GL/GLX API
@@ -28715,10 +28653,10 @@ Index: git/target-i386/opengl_exec.c
28715+ 28653+
28716+ return ret_int; 28654+ return ret_int;
28717+} 28655+}
28718Index: git/target-i386/opengl_func.h 28656Index: qemu/target-i386/opengl_func.h
28719=================================================================== 28657===================================================================
28720--- /dev/null 1970-01-01 00:00:00.000000000 +0000 28658--- /dev/null 1970-01-01 00:00:00.000000000 +0000
28721+++ git/target-i386/opengl_func.h 2010-01-14 15:55:40.000000000 +0000 28659+++ qemu/target-i386/opengl_func.h 2010-05-12 12:10:40.187781086 -0400
28722@@ -0,0 +1,1108 @@ 28660@@ -0,0 +1,1108 @@
28723+/* 28661+/*
28724+ * Main header for both host and guest sides 28662+ * Main header for both host and guest sides
@@ -29828,10 +29766,10 @@ Index: git/target-i386/opengl_func.h
29828+#error Unsupported ABI 29766+#error Unsupported ABI
29829+#endif 29767+#endif
29830+#endif 29768+#endif
29831Index: git/target-i386/opengl_player.c 29769Index: qemu/target-i386/opengl_player.c
29832=================================================================== 29770===================================================================
29833--- /dev/null 1970-01-01 00:00:00.000000000 +0000 29771--- /dev/null 1970-01-01 00:00:00.000000000 +0000
29834+++ git/target-i386/opengl_player.c 2010-01-14 15:55:40.000000000 +0000 29772+++ qemu/target-i386/opengl_player.c 2010-05-12 12:10:40.188781627 -0400
29835@@ -0,0 +1,1461 @@ 29773@@ -0,0 +1,1461 @@
29836+/* 29774+/*
29837+ * Plays a sequence of OpenGL calls recorded either under qemu or with opengl_server 29775+ * Plays a sequence of OpenGL calls recorded either under qemu or with opengl_server
@@ -31294,10 +31232,10 @@ Index: git/target-i386/opengl_player.c
31294+ } 31232+ }
31295+ return 0; 31233+ return 0;
31296+} 31234+}
31297Index: git/target-i386/opengl_server.c 31235Index: qemu/target-i386/opengl_server.c
31298=================================================================== 31236===================================================================
31299--- /dev/null 1970-01-01 00:00:00.000000000 +0000 31237--- /dev/null 1970-01-01 00:00:00.000000000 +0000
31300+++ git/target-i386/opengl_server.c 2010-01-14 15:55:40.000000000 +0000 31238+++ qemu/target-i386/opengl_server.c 2010-05-12 12:10:40.188781627 -0400
31301@@ -0,0 +1,826 @@ 31239@@ -0,0 +1,826 @@
31302+/* 31240+/*
31303+ * TCP/IP OpenGL server 31241+ * TCP/IP OpenGL server
@@ -32125,10 +32063,10 @@ Index: git/target-i386/opengl_server.c
32125+ 32063+
32126+ return 0; 32064+ return 0;
32127+} 32065+}
32128Index: git/target-i386/opengl_utils.h 32066Index: qemu/target-i386/opengl_utils.h
32129=================================================================== 32067===================================================================
32130--- /dev/null 1970-01-01 00:00:00.000000000 +0000 32068--- /dev/null 1970-01-01 00:00:00.000000000 +0000
32131+++ git/target-i386/opengl_utils.h 2010-01-14 15:55:40.000000000 +0000 32069+++ qemu/target-i386/opengl_utils.h 2010-05-12 12:10:40.189781608 -0400
32132@@ -0,0 +1,453 @@ 32070@@ -0,0 +1,453 @@
32133+/* 32071+/*
32134+ * Functions used by host & client sides 32072+ * Functions used by host & client sides
@@ -32583,10 +32521,10 @@ Index: git/target-i386/opengl_utils.h
32583+} 32521+}
32584+ 32522+
32585+#endif 32523+#endif
32586Index: git/target-i386/parse_gl_h.c 32524Index: qemu/target-i386/parse_gl_h.c
32587=================================================================== 32525===================================================================
32588--- /dev/null 1970-01-01 00:00:00.000000000 +0000 32526--- /dev/null 1970-01-01 00:00:00.000000000 +0000
32589+++ git/target-i386/parse_gl_h.c 2010-01-14 15:55:40.000000000 +0000 32527+++ qemu/target-i386/parse_gl_h.c 2010-05-12 12:10:40.190781520 -0400
32590@@ -0,0 +1,1496 @@ 32528@@ -0,0 +1,1496 @@
32591+/* 32529+/*
32592+ * Parse gl.h et glx.h to auto-generate source code 32530+ * Parse gl.h et glx.h to auto-generate source code
@@ -34084,10 +34022,10 @@ Index: git/target-i386/parse_gl_h.c
34084+ 34022+
34085+ return 0; 34023+ return 0;
34086+} 34024+}
34087Index: git/target-i386/parse_mesa_get_c.c 34025Index: qemu/target-i386/parse_mesa_get_c.c
34088=================================================================== 34026===================================================================
34089--- /dev/null 1970-01-01 00:00:00.000000000 +0000 34027--- /dev/null 1970-01-01 00:00:00.000000000 +0000
34090+++ git/target-i386/parse_mesa_get_c.c 2010-01-14 15:55:40.000000000 +0000 34028+++ qemu/target-i386/parse_mesa_get_c.c 2010-05-12 12:10:40.190781520 -0400
34091@@ -0,0 +1,225 @@ 34029@@ -0,0 +1,225 @@
34092+/* 34030+/*
34093+ * Parse the "get.c" from mesa source tree to generate "glgetv_cst.h" 34031+ * Parse the "get.c" from mesa source tree to generate "glgetv_cst.h"
@@ -34314,11 +34252,11 @@ Index: git/target-i386/parse_mesa_get_c.c
34314+ fclose(outf); 34252+ fclose(outf);
34315+ return 0; 34253+ return 0;
34316+} 34254+}
34317Index: git/target-i386/translate.c 34255Index: qemu/target-i386/translate.c
34318=================================================================== 34256===================================================================
34319--- git.orig/target-i386/translate.c 2009-12-02 13:13:56.000000000 +0000 34257--- qemu.orig/target-i386/translate.c 2010-05-11 18:05:22.957804134 -0400
34320+++ git/target-i386/translate.c 2010-01-14 15:55:40.000000000 +0000 34258+++ qemu/target-i386/translate.c 2010-05-12 12:10:40.192781553 -0400
34321@@ -741,6 +741,8 @@ 34259@@ -743,6 +743,8 @@ static void gen_check_io(DisasContext *s
34322 int state_saved; 34260 int state_saved;
34323 target_ulong next_eip; 34261 target_ulong next_eip;
34324 34262
@@ -34327,7 +34265,7 @@ Index: git/target-i386/translate.c
34327 state_saved = 0; 34265 state_saved = 0;
34328 if (s->pe && (s->cpl > s->iopl || s->vm86)) { 34266 if (s->pe && (s->cpl > s->iopl || s->vm86)) {
34329 if (s->cc_op != CC_OP_DYNAMIC) 34267 if (s->cc_op != CC_OP_DYNAMIC)
34330@@ -2592,11 +2594,18 @@ 34268@@ -2676,11 +2678,18 @@ static void gen_exception(DisasContext *
34331 s->is_jmp = 3; 34269 s->is_jmp = 3;
34332 } 34270 }
34333 34271
@@ -34346,78 +34284,36 @@ Index: git/target-i386/translate.c
34346 if (s->cc_op != CC_OP_DYNAMIC) 34284 if (s->cc_op != CC_OP_DYNAMIC)
34347 gen_op_set_cc_op(s->cc_op); 34285 gen_op_set_cc_op(s->cc_op);
34348 gen_jmp_im(cur_eip); 34286 gen_jmp_im(cur_eip);
34349Index: git/vl.c 34287Index: qemu/vl.c
34350=================================================================== 34288===================================================================
34351--- git.orig/vl.c 2009-12-02 13:13:56.000000000 +0000 34289--- qemu.orig/vl.c 2010-05-11 18:05:22.959804376 -0400
34352+++ git/vl.c 2010-01-14 15:55:40.000000000 +0000 34290+++ qemu/vl.c 2010-05-12 17:10:46.174909450 -0400
34353@@ -245,6 +245,7 @@ 34291@@ -238,6 +238,7 @@ int semihosting_enabled = 0;
34354 #ifdef TARGET_ARM 34292 #ifdef TARGET_ARM
34355 int old_param = 0; 34293 int old_param = 0;
34356 #endif 34294 #endif
34357+int force_pointer = 0; 34295+int force_pointer = 0;
34358 const char *qemu_name; 34296 const char *qemu_name;
34359 int alt_grab = 0; 34297 int alt_grab = 0;
34360 #if defined(TARGET_SPARC) || defined(TARGET_PPC) 34298 int ctrl_grab = 0;
34361@@ -253,6 +254,7 @@ 34299@@ -246,6 +247,7 @@ unsigned int nb_prom_envs = 0;
34300 const char *prom_envs[MAX_PROM_ENVS];
34362 #endif 34301 #endif
34363 int nb_drives_opt; 34302 int boot_menu;
34364 struct drive_opt drives_opt[MAX_DRIVES];
34365+extern int enable_gl; 34303+extern int enable_gl;
34366 34304
34367 static CPUState *cur_cpu; 34305 int nb_numa_nodes;
34368 static CPUState *next_cpu; 34306 uint64_t node_mem[MAX_NODES];
34369@@ -4208,12 +4210,14 @@ 34307@@ -4418,6 +4420,8 @@ static void select_vgahw (const char *p)
34370 QEMU_OPTION_clock, 34308 } else if (strstart(p, "xenfb", &opts)) {
34371 QEMU_OPTION_localtime, 34309 vga_interface_type = VGA_XENFB;
34372 QEMU_OPTION_startdate, 34310 } else if (!strstart(p, "none", &opts)) {
34373+ QEMU_OPTION_enable_gl, 34311+ }
34374 QEMU_OPTION_icount, 34312+ else {
34375 QEMU_OPTION_echr,
34376 QEMU_OPTION_virtiocon,
34377 QEMU_OPTION_show_cursor,
34378 QEMU_OPTION_semihosting,
34379 QEMU_OPTION_old_param,
34380+ QEMU_OPTION_force_pointer,
34381 QEMU_OPTION_tb_size,
34382 QEMU_OPTION_incoming,
34383 QEMU_OPTION_chroot,
34384@@ -4344,6 +4348,8 @@
34385 #if defined(TARGET_ARM)
34386 { "old-param", 0, QEMU_OPTION_old_param },
34387 #endif
34388+ { "force-pointer", 0, QEMU_OPTION_force_pointer },
34389+ { "enable-gl", 0, QEMU_OPTION_enable_gl },
34390 { "tb-size", HAS_ARG, QEMU_OPTION_tb_size },
34391 { "incoming", HAS_ARG, QEMU_OPTION_incoming },
34392 { "chroot", HAS_ARG, QEMU_OPTION_chroot },
34393@@ -4496,22 +4502,17 @@
34394 {
34395 const char *opts;
34396
34397+ std_vga_enabled = 0;
34398+ cirrus_vga_enabled = 0;
34399+ vmsvga_enabled = 0;
34400+
34401 if (strstart(p, "std", &opts)) {
34402 std_vga_enabled = 1;
34403- cirrus_vga_enabled = 0;
34404- vmsvga_enabled = 0;
34405 } else if (strstart(p, "cirrus", &opts)) {
34406 cirrus_vga_enabled = 1;
34407- std_vga_enabled = 0;
34408- vmsvga_enabled = 0;
34409 } else if (strstart(p, "vmware", &opts)) {
34410- cirrus_vga_enabled = 0;
34411- std_vga_enabled = 0;
34412 vmsvga_enabled = 1;
34413 } else if (strstart(p, "none", &opts)) {
34414- cirrus_vga_enabled = 0;
34415- std_vga_enabled = 0;
34416- vmsvga_enabled = 0;
34417 } else {
34418 invalid_vga: 34313 invalid_vga:
34419 fprintf(stderr, "Unknown vga type: %s\n", p); 34314 fprintf(stderr, "Unknown vga type: %s\n", p);
34420@@ -5220,6 +5221,9 @@ 34315 exit(1);
34316@@ -5540,6 +5544,9 @@ int main(int argc, char **argv, char **e
34421 old_param = 1; 34317 old_param = 1;
34422 break; 34318 break;
34423 #endif 34319 #endif
@@ -34427,20 +34323,21 @@ Index: git/vl.c
34427 case QEMU_OPTION_clock: 34323 case QEMU_OPTION_clock:
34428 configure_alarms(optarg); 34324 configure_alarms(optarg);
34429 break; 34325 break;
34430@@ -5261,6 +5265,11 @@ 34326@@ -5554,6 +5561,12 @@ int main(int argc, char **argv, char **e
34431 }
34432 } 34327 }
34328 configure_rtc(opts);
34433 break; 34329 break;
34434+#ifdef TARGET_OPENGL_OK 34330+#ifdef TARGET_OPENGL_OK
34435+ case QEMU_OPTION_enable_gl: 34331+ case QEMU_OPTION_enable_gl:
34332+ fprintf(stderr, "Enabling opengl\n");
34436+ enable_gl = 1; 34333+ enable_gl = 1;
34437+ break; 34334+ break;
34438+#endif 34335+#endif
34439 case QEMU_OPTION_tb_size: 34336 case QEMU_OPTION_tb_size:
34440 tb_size = strtol(optarg, NULL, 0); 34337 tb_size = strtol(optarg, NULL, 0);
34441 if (tb_size < 0) 34338 if (tb_size < 0)
34442@@ -5545,6 +5554,17 @@ 34339@@ -5907,6 +5920,14 @@ int main(int argc, char **argv, char **e
34443 exit(1); 34340 }
34444 } 34341 }
34445 } 34342 }
34446+#ifdef TARGET_OPENGL_OK 34343+#ifdef TARGET_OPENGL_OK
@@ -34448,12 +34345,32 @@ Index: git/vl.c
34448+ /* Use second serial port */ 34345+ /* Use second serial port */
34449+ int opengl_serial = 1; 34346+ int opengl_serial = 1;
34450+ 34347+
34451+ if (serial_devices[opengl_serial]) 34348+ add_device_config(DEV_SERIAL, "opengl");
34452+ fprintf(stderr, "overriding second serial "
34453+ "port for OpenGL use\n");
34454+ serial_devices[opengl_serial] = "opengl";
34455+ } 34349+ }
34456+#endif 34350+#endif
34457 34351
34458 if (monitor_device) { 34352 if (foreach_device_config(DEV_SERIAL, serial_parse) < 0)
34459 monitor_hd = qemu_chr_open("monitor", monitor_device, NULL); 34353 exit(1);
34354Index: qemu/qemu-options.hx
34355===================================================================
34356--- qemu.orig/qemu-options.hx 2010-05-11 18:05:22.959804376 -0400
34357+++ qemu/qemu-options.hx 2010-05-12 17:18:10.420907903 -0400
34358@@ -1783,6 +1783,18 @@ many timer interrupts were not processed
34359 re-inject them.
34360 ETEXI
34361
34362+DEF("enable-gl", 0, QEMU_OPTION_enable_gl, \
34363+ "-enable-gl\n")
34364+STEXI
34365+@item -enable-gl
34366+ETEXI
34367+
34368+DEF("force-pointer", 0, QEMU_OPTION_force_pointer, \
34369+ "-force-pointer\n")
34370+STEXI
34371+@item -force-pointer
34372+ETEXI
34373+
34374 DEF("icount", HAS_ARG, QEMU_OPTION_icount, \
34375 "-icount [N|auto]\n" \
34376 " enable virtual instruction counter with 2^N clock ticks per\n" \