* [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
@ 2009-01-16 19:04 Anthony Liguori
2009-01-18 12:54 ` Shin-ichiro KAWASAKI
2009-02-09 11:38 ` Riku Voipio
0 siblings, 2 replies; 19+ messages in thread
From: Anthony Liguori @ 2009-01-16 19:04 UTC (permalink / raw)
To: qemu-devel
Revision: 6344
http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6344
Author: aliguori
Date: 2009-01-16 19:04:14 +0000 (Fri, 16 Jan 2009)
Log Message:
-----------
graphical_console_init change (Stefano Stabellini)
Patch 5/7
This patch changes the graphical_console_init function to return an
allocated DisplayState instead of a QEMUConsole.
This patch contains just the graphical_console_init change and few other
modifications mainly in console.c and vl.c.
It was necessary to move the display frontends (e.g. sdl and vnc)
initialization after machine->init in vl.c.
This patch does *not* include any required changes to any device, these
changes come with the following patches.
Patch 6/7
This patch changes the QEMUMachine init functions not to take a
DisplayState as an argument because is not needed any more;
In few places the graphic hardware initialization function was called
only if DisplayState was not NULL, now they are always called.
Apart from these cases, the rest are all mechanical substitutions.
Patch 7/7
This patch updates the graphic device code to use the new
graphical_console_init function.
As for the previous patch, in few places graphical_console_init was called
only if DisplayState was not NULL, now it is always called.
Apart from these cases, the rest are all mechanical substitutions.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Modified Paths:
--------------
trunk/console.c
trunk/console.h
trunk/hw/an5206.c
trunk/hw/blizzard.c
trunk/hw/boards.h
trunk/hw/cirrus_vga.c
trunk/hw/devices.h
trunk/hw/dummy_m68k.c
trunk/hw/etraxfs.c
trunk/hw/g364fb.c
trunk/hw/gumstix.c
trunk/hw/i2c.h
trunk/hw/integratorcp.c
trunk/hw/jazz_led.c
trunk/hw/mainstone.c
trunk/hw/mcf5208.c
trunk/hw/mips.h
trunk/hw/mips_jazz.c
trunk/hw/mips_malta.c
trunk/hw/mips_mipssim.c
trunk/hw/mips_r4k.c
trunk/hw/musicpal.c
trunk/hw/nseries.c
trunk/hw/omap.h
trunk/hw/omap1.c
trunk/hw/omap2.c
trunk/hw/omap_dss.c
trunk/hw/omap_lcdc.c
trunk/hw/omap_sx1.c
trunk/hw/palm.c
trunk/hw/pc.c
trunk/hw/pc.h
trunk/hw/pci.h
trunk/hw/pl110.c
trunk/hw/ppc405_boards.c
trunk/hw/ppc_chrp.c
trunk/hw/ppc_oldworld.c
trunk/hw/ppc_prep.c
trunk/hw/primecell.h
trunk/hw/pxa.h
trunk/hw/pxa2xx.c
trunk/hw/pxa2xx_lcd.c
trunk/hw/r2d.c
trunk/hw/realview.c
trunk/hw/shix.c
trunk/hw/sm501.c
trunk/hw/spitz.c
trunk/hw/ssd0303.c
trunk/hw/ssd0323.c
trunk/hw/stellaris.c
trunk/hw/sun4m.c
trunk/hw/sun4m.h
trunk/hw/sun4u.c
trunk/hw/tc6393xb.c
trunk/hw/tcx.c
trunk/hw/tosa.c
trunk/hw/versatilepb.c
trunk/hw/vga.c
trunk/hw/vga_int.h
trunk/hw/vmware_vga.c
trunk/qemu-char.c
trunk/sysemu.h
trunk/vl.c
Modified: trunk/console.c
===================================================================
--- trunk/console.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/console.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -1190,6 +1190,17 @@
}
}
+static TextConsole *get_graphic_console() {
+ int i;
+ TextConsole *s;
+ for (i = 0; i < nb_consoles; i++) {
+ s = consoles[i];
+ if (s->console_type == GRAPHIC_CONSOLE)
+ return s;
+ }
+ return NULL;
+}
+
static TextConsole *new_console(DisplayState *ds, console_type_t console_type)
{
TextConsole *s;
@@ -1217,27 +1228,39 @@
consoles[i] = consoles[i - 1];
}
consoles[i] = s;
+ nb_consoles++;
}
return s;
}
-TextConsole *graphic_console_init(DisplayState *ds, vga_hw_update_ptr update,
- vga_hw_invalidate_ptr invalidate,
- vga_hw_screen_dump_ptr screen_dump,
- vga_hw_text_update_ptr text_update,
- void *opaque)
+DisplayState *graphic_console_init(vga_hw_update_ptr update,
+ vga_hw_invalidate_ptr invalidate,
+ vga_hw_screen_dump_ptr screen_dump,
+ vga_hw_text_update_ptr text_update,
+ void *opaque)
{
TextConsole *s;
+ DisplayState *ds;
+
+ ds = (DisplayState *) qemu_mallocz(sizeof(DisplayState));
+ if (ds == NULL)
+ return NULL;
+ ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
s = new_console(ds, GRAPHIC_CONSOLE);
- if (!s)
- return NULL;
+ if (s == NULL) {
+ qemu_free_displaysurface(ds->surface);
+ qemu_free(ds);
+ return NULL;
+ }
s->hw_update = update;
s->hw_invalidate = invalidate;
s->hw_screen_dump = screen_dump;
s->hw_text_update = text_update;
s->hw = opaque;
- return s;
+
+ register_displaystate(ds);
+ return ds;
}
int is_graphic_console(void)
@@ -1285,6 +1308,7 @@
s->out_fifo.buf = s->out_fifo_buf;
s->out_fifo.buf_size = sizeof(s->out_fifo_buf);
s->kbd_timer = qemu_new_timer(rt_clock, kbd_send_chars, s);
+ s->ds = ds;
if (!color_inited) {
color_inited = 1;
@@ -1337,22 +1361,22 @@
return chr;
}
-void qemu_console_resize(QEMUConsole *console, int width, int height)
+void qemu_console_resize(DisplayState *ds, int width, int height)
{
- console->g_width = width;
- console->g_height = height;
- if (active_console == console) {
- DisplayState *ds = console->ds;
+ TextConsole *s = get_graphic_console();
+ s->g_width = width;
+ s->g_height = height;
+ if (is_graphic_console()) {
ds->surface = qemu_resize_displaysurface(ds->surface, width, height, 32, 4 * width);
- dpy_resize(console->ds);
+ dpy_resize(ds);
}
}
-void qemu_console_copy(QEMUConsole *console, int src_x, int src_y,
- int dst_x, int dst_y, int w, int h)
+void qemu_console_copy(DisplayState *ds, int src_x, int src_y,
+ int dst_x, int dst_y, int w, int h)
{
- if (active_console == console) {
- dpy_copy(console->ds, src_x, src_y, dst_x, dst_y, w, h);
+ if (is_graphic_console()) {
+ dpy_copy(ds, src_x, src_y, dst_x, dst_y, w, h);
}
}
Modified: trunk/console.h
===================================================================
--- trunk/console.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/console.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -122,8 +122,12 @@
void (*mouse_set)(int x, int y, int on);
void (*cursor_define)(int width, int height, int bpp, int hot_x, int hot_y,
uint8_t *image, uint8_t *mask);
+
+ struct DisplayState *next;
};
+void register_displaystate(DisplayState *ds);
+DisplayState *get_displaystate(void);
DisplaySurface* qemu_create_displaysurface(int width, int height, int bpp, int linesize);
DisplaySurface* qemu_resize_displaysurface(DisplaySurface *surface,
int width, int height, int bpp, int linesize);
@@ -248,11 +252,12 @@
typedef void (*vga_hw_screen_dump_ptr)(void *, const char *);
typedef void (*vga_hw_text_update_ptr)(void *, console_ch_t *);
-TextConsole *graphic_console_init(DisplayState *ds, vga_hw_update_ptr update,
- vga_hw_invalidate_ptr invalidate,
- vga_hw_screen_dump_ptr screen_dump,
- vga_hw_text_update_ptr text_update,
- void *opaque);
+DisplayState *graphic_console_init(vga_hw_update_ptr update,
+ vga_hw_invalidate_ptr invalidate,
+ vga_hw_screen_dump_ptr screen_dump,
+ vga_hw_text_update_ptr text_update,
+ void *opaque);
+
void vga_hw_update(void);
void vga_hw_invalidate(void);
void vga_hw_screen_dump(const char *filename);
@@ -263,9 +268,9 @@
CharDriverState *text_console_init(DisplayState *ds, const char *p);
void console_select(unsigned int index);
void console_color_init(DisplayState *ds);
-void qemu_console_resize(QEMUConsole *console, int width, int height);
-void qemu_console_copy(QEMUConsole *console, int src_x, int src_y,
- int dst_x, int dst_y, int w, int h);
+void qemu_console_resize(DisplayState *ds, int width, int height);
+void qemu_console_copy(DisplayState *ds, int src_x, int src_y,
+ int dst_x, int dst_y, int w, int h);
/* sdl.c */
void sdl_display_init(DisplayState *ds, int full_screen, int no_frame);
Modified: trunk/hw/an5206.c
===================================================================
--- trunk/hw/an5206.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/an5206.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -27,7 +27,7 @@
/* Board init. */
static void an5206_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
Modified: trunk/hw/blizzard.c
===================================================================
--- trunk/hw/blizzard.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/blizzard.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -72,7 +72,6 @@
uint8_t iformat;
uint8_t source;
DisplayState *state;
- QEMUConsole *console;
blizzard_fn_t *line_fn_tab[2];
void *fb;
@@ -896,7 +895,7 @@
if (s->x != ds_get_width(s->state) || s->y != ds_get_height(s->state)) {
s->invalidate = 1;
- qemu_console_resize(s->console, s->x, s->y);
+ qemu_console_resize(s->state, s->x, s->y);
}
if (s->invalidate) {
@@ -954,11 +953,10 @@
#define DEPTH 32
#include "blizzard_template.h"
-void *s1d13745_init(qemu_irq gpio_int, DisplayState *ds)
+void *s1d13745_init(qemu_irq gpio_int)
{
struct blizzard_s *s = (struct blizzard_s *) qemu_mallocz(sizeof(*s));
- s->state = ds;
s->fb = qemu_malloc(0x180000);
switch (ds_get_bits_per_pixel(s->state)) {
@@ -993,9 +991,9 @@
blizzard_reset(s);
- s->console = graphic_console_init(s->state, blizzard_update_display,
- blizzard_invalidate_display,
- blizzard_screen_dump, NULL, s);
+ s->state = graphic_console_init(blizzard_update_display,
+ blizzard_invalidate_display,
+ blizzard_screen_dump, NULL, s);
return s;
}
Modified: trunk/hw/boards.h
===================================================================
--- trunk/hw/boards.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/boards.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -4,7 +4,7 @@
#define HW_BOARDS_H
typedef void QEMUMachineInitFunc(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
Modified: trunk/hw/cirrus_vga.c
===================================================================
--- trunk/hw/cirrus_vga.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/cirrus_vga.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -774,7 +774,7 @@
s->cirrus_blt_width, s->cirrus_blt_height);
if (notify)
- qemu_console_copy(s->console,
+ qemu_console_copy(s->ds,
sx, sy, dx, dy,
s->cirrus_blt_width / depth,
s->cirrus_blt_height);
@@ -3290,7 +3290,7 @@
*
***************************************/
-void isa_cirrus_vga_init(DisplayState *ds, uint8_t *vga_ram_base,
+void isa_cirrus_vga_init(uint8_t *vga_ram_base,
ram_addr_t vga_ram_offset, int vga_ram_size)
{
CirrusVGAState *s;
@@ -3298,10 +3298,10 @@
s = qemu_mallocz(sizeof(CirrusVGAState));
vga_common_init((VGAState *)s,
- ds, vga_ram_base, vga_ram_offset, vga_ram_size);
+ vga_ram_base, vga_ram_offset, vga_ram_size);
cirrus_init_common(s, CIRRUS_ID_CLGD5430, 0);
- s->console = graphic_console_init(s->ds, s->update, s->invalidate,
- s->screen_dump, s->text_update, s);
+ s->ds = graphic_console_init(s->update, s->invalidate,
+ s->screen_dump, s->text_update, s);
/* XXX ISA-LFB support */
}
@@ -3339,7 +3339,7 @@
s->cirrus_mmio_io_addr);
}
-void pci_cirrus_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base,
+void pci_cirrus_vga_init(PCIBus *bus, uint8_t *vga_ram_base,
ram_addr_t vga_ram_offset, int vga_ram_size)
{
PCICirrusVGAState *d;
@@ -3366,11 +3366,11 @@
/* setup VGA */
s = &d->cirrus_vga;
vga_common_init((VGAState *)s,
- ds, vga_ram_base, vga_ram_offset, vga_ram_size);
+ vga_ram_base, vga_ram_offset, vga_ram_size);
cirrus_init_common(s, device_id, 1);
- s->console = graphic_console_init(s->ds, s->update, s->invalidate,
- s->screen_dump, s->text_update, s);
+ s->ds = graphic_console_init(s->update, s->invalidate,
+ s->screen_dump, s->text_update, s);
s->pci_dev = (PCIDevice *)d;
Modified: trunk/hw/devices.h
===================================================================
--- trunk/hw/devices.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/devices.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -8,7 +8,7 @@
/* ssd0323.c */
int ssd0323_xfer_ssi(void *opaque, int data);
-void *ssd0323_init(DisplayState *ds, qemu_irq *cmd_p);
+void *ssd0323_init(qemu_irq *cmd_p);
/* ads7846.c */
struct ads7846_state_s;
@@ -37,7 +37,7 @@
void stellaris_gamepad_init(int n, qemu_irq *irq, const int *keycode);
/* blizzard.c */
-void *s1d13745_init(qemu_irq gpio_int, DisplayState *ds);
+void *s1d13745_init(qemu_irq gpio_int);
void s1d13745_write(void *opaque, int dc, uint16_t value);
void s1d13745_write_block(void *opaque, int dc,
void *buf, size_t len, int pitch);
@@ -67,13 +67,13 @@
/* tc6393xb.c */
struct tc6393xb_s;
#define TC6393XB_RAM 0x110000 /* amount of ram for Video and USB */
-struct tc6393xb_s *tc6393xb_init(uint32_t base, qemu_irq irq, DisplayState *ds);
+struct tc6393xb_s *tc6393xb_init(uint32_t base, qemu_irq irq);
void tc6393xb_gpio_out_set(struct tc6393xb_s *s, int line,
qemu_irq handler);
qemu_irq *tc6393xb_gpio_in_get(struct tc6393xb_s *s);
qemu_irq tc6393xb_l3v_get(struct tc6393xb_s *s);
/* sm501.c */
-void sm501_init(DisplayState *ds, uint32_t base, unsigned long local_mem_base,
+void sm501_init(uint32_t base, unsigned long local_mem_base,
uint32_t local_mem_bytes, CharDriverState *chr);
#endif
Modified: trunk/hw/dummy_m68k.c
===================================================================
--- trunk/hw/dummy_m68k.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/dummy_m68k.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -15,7 +15,7 @@
/* Board init. */
static void dummy_m68k_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
Modified: trunk/hw/etraxfs.c
===================================================================
--- trunk/hw/etraxfs.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/etraxfs.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -47,7 +47,7 @@
static
void bareetraxfs_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
Modified: trunk/hw/g364fb.c
===================================================================
--- trunk/hw/g364fb.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/g364fb.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -32,7 +32,6 @@
uint8_t palette[256][3];
/* display refresh support */
DisplayState *ds;
- QEMUConsole *console;
int graphic_mode;
uint32_t scr_width, scr_height; /* in pixels */
} G364State;
@@ -131,7 +130,7 @@
full_update = 1;
}
if (s->scr_width != ds_get_width(s->ds) || s->scr_height != ds_get_height(s->ds)) {
- qemu_console_resize(s->console, s->scr_width, s->scr_height);
+ qemu_console_resize(s->ds, s->scr_width, s->scr_height);
full_update = 1;
}
switch(graphic_mode) {
@@ -354,8 +353,7 @@
g364fb_mem_writel,
};
-int g364fb_mm_init(DisplayState *ds,
- int vram_size, int it_shift,
+int g364fb_mm_init(int vram_size, int it_shift,
target_phys_addr_t vram_base, target_phys_addr_t ctrl_base)
{
G364State *s;
@@ -371,12 +369,10 @@
qemu_register_reset(g364fb_reset, s);
g364fb_reset(s);
- s->ds = ds;
+ s->ds = graphic_console_init(g364fb_update_display,
+ g364fb_invalidate_display,
+ g364fb_screen_dump, NULL, s);
- s->console = graphic_console_init(ds, g364fb_update_display,
- g364fb_invalidate_display,
- g364fb_screen_dump, NULL, s);
-
io_vram = cpu_register_io_memory(0, g364fb_mem_read, g364fb_mem_write, s);
cpu_register_physical_memory(vram_base, vram_size, io_vram);
Modified: trunk/hw/gumstix.c
===================================================================
--- trunk/hw/gumstix.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/gumstix.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -42,7 +42,7 @@
static const int sector_len = 128 * 1024;
static void connex_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -58,7 +58,7 @@
exit(1);
}
- cpu = pxa255_init(connex_ram, ds);
+ cpu = pxa255_init(connex_ram);
index = drive_get_index(IF_PFLASH, 0, 0);
if (index == -1) {
@@ -82,7 +82,7 @@
}
static void verdex_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -98,7 +98,7 @@
exit(1);
}
- cpu = pxa270_init(verdex_ram, ds, cpu_model ?: "pxa270-c0");
+ cpu = pxa270_init(verdex_ram, cpu_model ?: "pxa270-c0");
index = drive_get_index(IF_PFLASH, 0, 0);
if (index == -1) {
Modified: trunk/hw/i2c.h
===================================================================
--- trunk/hw/i2c.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/i2c.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -71,7 +71,7 @@
void wm8750_set_bclk_in(void *opaque, int new_hz);
/* ssd0303.c */
-void ssd0303_init(DisplayState *ds, i2c_bus *bus, int address);
+void ssd0303_init(i2c_bus *bus, int address);
/* twl92230.c */
i2c_slave *twl92230_init(i2c_bus *bus, qemu_irq irq);
Modified: trunk/hw/integratorcp.c
===================================================================
--- trunk/hw/integratorcp.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/integratorcp.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -454,7 +454,7 @@
};
static void integratorcp_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -499,7 +499,7 @@
pl181_init(0x1c000000, drives_table[sd].bdrv, pic[23], pic[24]);
if (nd_table[0].vlan)
smc91c111_init(&nd_table[0], 0xc8000000, pic[27]);
- pl110_init(ds, 0xc0000000, pic[22], 0);
+ pl110_init(0xc0000000, pic[22], 0);
integrator_binfo.ram_size = ram_size;
integrator_binfo.kernel_filename = kernel_filename;
Modified: trunk/hw/jazz_led.c
===================================================================
--- trunk/hw/jazz_led.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/jazz_led.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -36,7 +36,6 @@
typedef struct LedState {
uint8_t segments;
DisplayState *ds;
- QEMUConsole *console;
screen_state_t state;
} LedState;
@@ -289,7 +288,7 @@
char buf[2];
dpy_cursor(s->ds, -1, -1);
- qemu_console_resize(s->console, 2, 1);
+ qemu_console_resize(s->ds, 2, 1);
/* TODO: draw the segments */
snprintf(buf, 2, "%02hhx\n", s->segments);
@@ -299,7 +298,7 @@
dpy_update(s->ds, 0, 0, 2, 1);
}
-void jazz_led_init(DisplayState *ds, target_phys_addr_t base)
+void jazz_led_init(target_phys_addr_t base)
{
LedState *s;
int io;
@@ -308,15 +307,14 @@
if (!s)
return;
- s->ds = ds;
s->state = REDRAW_SEGMENTS | REDRAW_BACKGROUND;
io = cpu_register_io_memory(0, led_read, led_write, s);
cpu_register_physical_memory(base, 1, io);
- s->console = graphic_console_init(ds, jazz_led_update_display,
- jazz_led_invalidate_display,
- jazz_led_screen_dump,
- jazz_led_text_update, s);
- qemu_console_resize(s->console, 60, 80);
+ s->ds = graphic_console_init(jazz_led_update_display,
+ jazz_led_invalidate_display,
+ jazz_led_screen_dump,
+ jazz_led_text_update, s);
+ qemu_console_resize(s->ds, 60, 80);
}
Modified: trunk/hw/mainstone.c
===================================================================
--- trunk/hw/mainstone.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/mainstone.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -69,7 +69,7 @@
};
static void mainstone_common_init(ram_addr_t ram_size, int vga_ram_size,
- DisplayState *ds, const char *kernel_filename,
+ const char *kernel_filename,
const char *kernel_cmdline, const char *initrd_filename,
const char *cpu_model, enum mainstone_model_e model, int arm_id)
{
@@ -91,7 +91,7 @@
exit(1);
}
- cpu = pxa270_init(mainstone_binfo.ram_size, ds, cpu_model);
+ cpu = pxa270_init(mainstone_binfo.ram_size, cpu_model);
cpu_register_physical_memory(0, MAINSTONE_ROM,
qemu_ram_alloc(MAINSTONE_ROM) | IO_MEM_ROM);
@@ -135,11 +135,11 @@
}
static void mainstone_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- mainstone_common_init(ram_size, vga_ram_size, ds, kernel_filename,
+ mainstone_common_init(ram_size, vga_ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, mainstone, 0x196);
}
Modified: trunk/hw/mcf5208.c
===================================================================
--- trunk/hw/mcf5208.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/mcf5208.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -198,7 +198,7 @@
}
static void mcf5208evb_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
Modified: trunk/hw/mips.h
===================================================================
--- trunk/hw/mips.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/mips.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -10,15 +10,14 @@
void ds1225y_set_protection(void *opaque, int protection);
/* g364fb.c */
-int g364fb_mm_init(DisplayState *ds,
- int vram_size, int it_shift,
+int g364fb_mm_init(int vram_size, int it_shift,
target_phys_addr_t vram_base, target_phys_addr_t ctrl_base);
/* mipsnet.c */
void mipsnet_init(int base, qemu_irq irq, NICInfo *nd);
/* jazz_led.c */
-extern void jazz_led_init(DisplayState *ds, target_phys_addr_t base);
+extern void jazz_led_init(target_phys_addr_t base);
/* mips_int.c */
extern void cpu_mips_irq_init_cpu(CPUState *env);
Modified: trunk/hw/mips_jazz.c
===================================================================
--- trunk/hw/mips_jazz.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/mips_jazz.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -125,7 +125,7 @@
static
void mips_jazz_init (ram_addr_t ram_size, int vga_ram_size,
- DisplayState *ds, const char *cpu_model,
+ const char *cpu_model,
enum jazz_model_e jazz_model)
{
char buf[1024];
@@ -201,10 +201,10 @@
/* Video card */
switch (jazz_model) {
case JAZZ_MAGNUM:
- g364fb_mm_init(ds, vga_ram_size, 0, 0x40000000, 0x60000000);
+ g364fb_mm_init(vga_ram_size, 0, 0x40000000, 0x60000000);
break;
case JAZZ_PICA61:
- isa_vga_mm_init(ds, phys_ram_base + ram_size, ram_size, vga_ram_size,
+ isa_vga_mm_init(phys_ram_base + ram_size, ram_size, vga_ram_size,
0x40000000, 0x60000000, 0);
break;
default:
@@ -267,25 +267,25 @@
ds1225y_init(0x80009000, "nvram");
/* LED indicator */
- jazz_led_init(ds, 0x8000f000);
+ jazz_led_init(0x8000f000);
}
static
void mips_magnum_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- mips_jazz_init(ram_size, vga_ram_size, ds, cpu_model, JAZZ_MAGNUM);
+ mips_jazz_init(ram_size, vga_ram_size, cpu_model, JAZZ_MAGNUM);
}
static
void mips_pica61_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- mips_jazz_init(ram_size, vga_ram_size, ds, cpu_model, JAZZ_PICA61);
+ mips_jazz_init(ram_size, vga_ram_size, cpu_model, JAZZ_PICA61);
}
QEMUMachine mips_magnum_machine = {
Modified: trunk/hw/mips_malta.c
===================================================================
--- trunk/hw/mips_malta.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/mips_malta.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -763,7 +763,7 @@
static
void mips_malta_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -938,7 +938,7 @@
network_init(pci_bus);
/* Optional PCI video card */
- pci_cirrus_vga_init(pci_bus, ds, phys_ram_base + ram_size,
+ pci_cirrus_vga_init(pci_bus, phys_ram_base + ram_size,
ram_size, vga_ram_size);
}
Modified: trunk/hw/mips_mipssim.c
===================================================================
--- trunk/hw/mips_mipssim.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/mips_mipssim.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -108,7 +108,7 @@
static void
mips_mipssim_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
Modified: trunk/hw/mips_r4k.c
===================================================================
--- trunk/hw/mips_r4k.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/mips_r4k.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -148,7 +148,7 @@
static const int sector_len = 32 * 1024;
static
void mips_r4k_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -244,7 +244,7 @@
}
}
- isa_vga_init(ds, phys_ram_base + ram_size, ram_size,
+ isa_vga_init(phys_ram_base + ram_size, ram_size,
vga_ram_size);
if (nd_table[0].vlan)
Modified: trunk/hw/musicpal.c
===================================================================
--- trunk/hw/musicpal.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/musicpal.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -752,7 +752,6 @@
int page;
int page_off;
DisplayState *ds;
- QEMUConsole *console;
uint8_t video_ram[128*64/8];
} musicpal_lcd_state;
@@ -906,7 +905,7 @@
musicpal_lcd_write
};
-static void musicpal_lcd_init(DisplayState *ds, uint32_t base)
+static void musicpal_lcd_init(uint32_t base)
{
musicpal_lcd_state *s;
int iomemtype;
@@ -914,14 +913,13 @@
s = qemu_mallocz(sizeof(musicpal_lcd_state));
if (!s)
return;
- s->ds = ds;
iomemtype = cpu_register_io_memory(0, musicpal_lcd_readfn,
musicpal_lcd_writefn, s);
cpu_register_physical_memory(base, MP_LCD_SIZE, iomemtype);
- s->console = graphic_console_init(ds, lcd_refresh, lcd_invalidate,
- NULL, NULL, s);
- qemu_console_resize(s->console, 128*3, 64*3);
+ s->ds = graphic_console_init(lcd_refresh, lcd_invalidate,
+ NULL, NULL, s);
+ qemu_console_resize(s->ds, 128*3, 64*3);
}
/* PIC register offsets */
@@ -1404,7 +1402,7 @@
};
static void musicpal_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -1470,7 +1468,7 @@
}
mv88w8618_flashcfg_init(MP_FLASHCFG_BASE);
- musicpal_lcd_init(ds, MP_LCD_BASE);
+ musicpal_lcd_init(MP_LCD_BASE);
qemu_add_kbd_event_handler(musicpal_key_event, pic[MP_GPIO_IRQ]);
Modified: trunk/hw/nseries.c
===================================================================
--- trunk/hw/nseries.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/nseries.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -714,9 +714,9 @@
free(fb_blank);
}
-static void n8x0_dss_setup(struct n800_s *s, DisplayState *ds)
+static void n8x0_dss_setup(struct n800_s *s)
{
- s->blizzard.opaque = s1d13745_init(0, ds);
+ s->blizzard.opaque = s1d13745_init(0);
s->blizzard.block = s1d13745_write_block;
s->blizzard.write = s1d13745_write;
s->blizzard.read = s1d13745_read;
@@ -1266,13 +1266,14 @@
}
static void n8x0_init(ram_addr_t ram_size, const char *boot_device,
- DisplayState *ds, const char *kernel_filename,
+ const char *kernel_filename,
const char *kernel_cmdline, const char *initrd_filename,
const char *cpu_model, struct arm_boot_info *binfo, int model)
{
struct n800_s *s = (struct n800_s *) qemu_mallocz(sizeof(*s));
int sdram_size = binfo->ram_size;
int onenandram_size = 0x00010000;
+ DisplayState *ds = get_displaystate();
if (ram_size < sdram_size + onenandram_size + OMAP242X_SRAM_SIZE) {
fprintf(stderr, "This architecture uses %i bytes of memory\n",
@@ -1280,7 +1281,7 @@
exit(1);
}
- s->cpu = omap2420_mpu_init(sdram_size, NULL, cpu_model);
+ s->cpu = omap2420_mpu_init(sdram_size, cpu_model);
/* Setup peripherals
*
@@ -1317,7 +1318,7 @@
n810_kbd_setup(s);
}
n8x0_spi_setup(s);
- n8x0_dss_setup(s, ds);
+ n8x0_dss_setup(s);
n8x0_cbus_setup(s);
n8x0_uart_setup(s);
if (usb_enabled)
@@ -1384,21 +1385,21 @@
};
static void n800_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- return n8x0_init(ram_size, boot_device, ds,
+ return n8x0_init(ram_size, boot_device,
kernel_filename, kernel_cmdline, initrd_filename,
cpu_model, &n800_binfo, 800);
}
static void n810_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- return n8x0_init(ram_size, boot_device, ds,
+ return n8x0_init(ram_size, boot_device,
kernel_filename, kernel_cmdline, initrd_filename,
cpu_model, &n810_binfo, 810);
}
Modified: trunk/hw/omap.h
===================================================================
--- trunk/hw/omap.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/omap.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -746,7 +746,7 @@
struct omap_lcd_panel_s;
void omap_lcdc_reset(struct omap_lcd_panel_s *s);
struct omap_lcd_panel_s *omap_lcdc_init(target_phys_addr_t base, qemu_irq irq,
- struct omap_dma_lcd_channel_s *dma, DisplayState *ds,
+ struct omap_dma_lcd_channel_s *dma,
ram_addr_t imif_base, ram_addr_t emiff_base, omap_clk clk);
/* omap_dss.c */
@@ -759,7 +759,7 @@
struct omap_dss_s;
void omap_dss_reset(struct omap_dss_s *s);
struct omap_dss_s *omap_dss_init(struct omap_target_agent_s *ta,
- target_phys_addr_t l3_base, DisplayState *ds,
+ target_phys_addr_t l3_base,
qemu_irq irq, qemu_irq drq,
omap_clk fck1, omap_clk fck2, omap_clk ck54m,
omap_clk ick1, omap_clk ick2);
@@ -956,11 +956,11 @@
/* omap1.c */
struct omap_mpu_state_s *omap310_mpu_init(unsigned long sdram_size,
- DisplayState *ds, const char *core);
+ const char *core);
/* omap2.c */
struct omap_mpu_state_s *omap2420_mpu_init(unsigned long sdram_size,
- DisplayState *ds, const char *core);
+ const char *core);
# if TARGET_PHYS_ADDR_BITS == 32
# define OMAP_FMT_plx "%#08x"
Modified: trunk/hw/omap1.c
===================================================================
--- trunk/hw/omap1.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/omap1.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -4622,7 +4622,7 @@
}
struct omap_mpu_state_s *omap310_mpu_init(unsigned long sdram_size,
- DisplayState *ds, const char *core)
+ const char *core)
{
int i;
struct omap_mpu_state_s *s = (struct omap_mpu_state_s *)
@@ -4704,7 +4704,7 @@
omap_findclk(s, "clk32-kHz"));
s->lcd = omap_lcdc_init(0xfffec000, s->irq[0][OMAP_INT_LCD_CTRL],
- omap_dma_get_lcdch(s->dma), ds, imif_base, emiff_base,
+ omap_dma_get_lcdch(s->dma), imif_base, emiff_base,
omap_findclk(s, "lcd_ck"));
omap_ulpd_pm_init(0xfffe0800, s);
Modified: trunk/hw/omap2.c
===================================================================
--- trunk/hw/omap2.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/omap2.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -4492,7 +4492,7 @@
};
struct omap_mpu_state_s *omap2420_mpu_init(unsigned long sdram_size,
- DisplayState *ds, const char *core)
+ const char *core)
{
struct omap_mpu_state_s *s = (struct omap_mpu_state_s *)
qemu_mallocz(sizeof(struct omap_mpu_state_s));
@@ -4670,7 +4670,7 @@
omap_findclk(s, "spi2_fclk"),
omap_findclk(s, "spi2_iclk"));
- s->dss = omap_dss_init(omap_l4ta(s->l4, 10), 0x68000800, ds,
+ s->dss = omap_dss_init(omap_l4ta(s->l4, 10), 0x68000800,
/* XXX wire M_IRQ_25, D_L2_IRQ_30 and I_IRQ_13 together */
s->irq[0][OMAP_INT_24XX_DSS_IRQ], s->drq[OMAP24XX_DMA_DSS],
omap_findclk(s, "dss_clk1"), omap_findclk(s, "dss_clk2"),
Modified: trunk/hw/omap_dss.c
===================================================================
--- trunk/hw/omap_dss.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/omap_dss.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -1022,7 +1022,7 @@
};
struct omap_dss_s *omap_dss_init(struct omap_target_agent_s *ta,
- target_phys_addr_t l3_base, DisplayState *ds,
+ target_phys_addr_t l3_base,
qemu_irq irq, qemu_irq drq,
omap_clk fck1, omap_clk fck2, omap_clk ck54m,
omap_clk ick1, omap_clk ick2)
@@ -1033,7 +1033,6 @@
s->irq = irq;
s->drq = drq;
- s->state = ds;
omap_dss_reset(s);
iomemtype[0] = l4_register_io_memory(0, omap_diss1_readfn,
@@ -1053,9 +1052,8 @@
cpu_register_physical_memory(l3_base, 0x1000, iomemtype[4]);
#if 0
- if (ds)
- graphic_console_init(ds, omap_update_display,
- omap_invalidate_display, omap_screen_dump, s);
+ s->state = graphic_console_init(omap_update_display,
+ omap_invalidate_display, omap_screen_dump, s);
#endif
return s;
Modified: trunk/hw/omap_lcdc.c
===================================================================
--- trunk/hw/omap_lcdc.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/omap_lcdc.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -24,7 +24,6 @@
struct omap_lcd_panel_s {
qemu_irq irq;
DisplayState *state;
- QEMUConsole *console;
ram_addr_t imif_base;
ram_addr_t emiff_base;
@@ -174,7 +173,7 @@
width = omap_lcd->width;
if (width != ds_get_width(omap_lcd->state) ||
omap_lcd->height != ds_get_height(omap_lcd->state)) {
- qemu_console_resize(omap_lcd->console,
+ qemu_console_resize(omap_lcd->state,
omap_lcd->width, omap_lcd->height);
omap_lcd->invalidate = 1;
}
@@ -472,7 +471,7 @@
}
struct omap_lcd_panel_s *omap_lcdc_init(target_phys_addr_t base, qemu_irq irq,
- struct omap_dma_lcd_channel_s *dma, DisplayState *ds,
+ struct omap_dma_lcd_channel_s *dma,
ram_addr_t imif_base, ram_addr_t emiff_base, omap_clk clk)
{
int iomemtype;
@@ -481,7 +480,6 @@
s->irq = irq;
s->dma = dma;
- s->state = ds;
s->imif_base = imif_base;
s->emiff_base = emiff_base;
omap_lcdc_reset(s);
@@ -490,9 +488,9 @@
omap_lcdc_writefn, s);
cpu_register_physical_memory(base, 0x100, iomemtype);
- s->console = graphic_console_init(ds, omap_update_display,
- omap_invalidate_display,
- omap_screen_dump, NULL, s);
+ s->state = graphic_console_init(omap_update_display,
+ omap_invalidate_display,
+ omap_screen_dump, NULL, s);
return s;
}
Modified: trunk/hw/omap_sx1.c
===================================================================
--- trunk/hw/omap_sx1.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/omap_sx1.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -136,7 +136,7 @@
flash_size = flash2_size;
}
- cpu = omap310_mpu_init(sx1_binfo.ram_size, ds, cpu_model);
+ cpu = omap310_mpu_init(sx1_binfo.ram_size, cpu_model);
/* External Flash (EMIFS) */
cpu_register_physical_memory(OMAP_CS0_BASE, flash_size,
@@ -201,8 +201,7 @@
cpu->env->regs[15] = 0x00000000;
}
- ds->surface = qemu_resize_displaysurface(ds->surface, 640, 480, 32, 4 * 640);
- dpy_resize(ds);
+ qemu_console_resize(ds, 640, 480);
}
static void sx1_init_v1(ram_addr_t ram_size, int vga_ram_size,
Modified: trunk/hw/palm.c
===================================================================
--- trunk/hw/palm.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/palm.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -200,7 +200,7 @@
};
static void palmte_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -214,6 +214,7 @@
static uint32_t cs3val = 0xe1a0e1a0;
ram_addr_t phys_flash;
int rom_size, rom_loaded = 0;
+ DisplayState *ds = get_displaystate();
if (ram_size < flash_size + sdram_size + OMAP15XX_SRAM_SIZE) {
fprintf(stderr, "This architecture uses %i bytes of memory\n",
@@ -221,7 +222,7 @@
exit(1);
}
- cpu = omap310_mpu_init(sdram_size, ds, cpu_model);
+ cpu = omap310_mpu_init(sdram_size, cpu_model);
/* External Flash (EMIFS) */
cpu_register_physical_memory(OMAP_CS0_BASE, flash_size,
Modified: trunk/hw/pc.c
===================================================================
--- trunk/hw/pc.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/pc.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -752,7 +752,7 @@
/* PC hardware initialisation */
static void pc_init1(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename,
int pci_enabled, const char *cpu_model)
@@ -946,24 +946,24 @@
if (cirrus_vga_enabled) {
if (pci_enabled) {
pci_cirrus_vga_init(pci_bus,
- ds, phys_ram_base + vga_ram_addr,
+ phys_ram_base + vga_ram_addr,
vga_ram_addr, vga_ram_size);
} else {
- isa_cirrus_vga_init(ds, phys_ram_base + vga_ram_addr,
+ isa_cirrus_vga_init(phys_ram_base + vga_ram_addr,
vga_ram_addr, vga_ram_size);
}
} else if (vmsvga_enabled) {
if (pci_enabled)
- pci_vmsvga_init(pci_bus, ds, phys_ram_base + vga_ram_addr,
+ pci_vmsvga_init(pci_bus, phys_ram_base + vga_ram_addr,
vga_ram_addr, vga_ram_size);
else
fprintf(stderr, "%s: vmware_vga: no PCI bus\n", __FUNCTION__);
} else if (std_vga_enabled) {
if (pci_enabled) {
- pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_addr,
+ pci_vga_init(pci_bus, phys_ram_base + vga_ram_addr,
vga_ram_addr, vga_ram_size, 0, 0);
} else {
- isa_vga_init(ds, phys_ram_base + vga_ram_addr,
+ isa_vga_init(phys_ram_base + vga_ram_addr,
vga_ram_addr, vga_ram_size);
}
}
@@ -1111,25 +1111,25 @@
}
static void pc_init_pci(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
const char *cpu_model)
{
- pc_init1(ram_size, vga_ram_size, boot_device, ds,
+ pc_init1(ram_size, vga_ram_size, boot_device,
kernel_filename, kernel_cmdline,
initrd_filename, 1, cpu_model);
}
static void pc_init_isa(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
const char *cpu_model)
{
- pc_init1(ram_size, vga_ram_size, boot_device, ds,
+ pc_init1(ram_size, vga_ram_size, boot_device,
kernel_filename, kernel_cmdline,
initrd_filename, 0, cpu_model);
}
Modified: trunk/hw/pc.h
===================================================================
--- trunk/hw/pc.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/pc.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -132,20 +132,20 @@
#define VGA_RAM_SIZE (9 * 1024 * 1024)
#endif
-int isa_vga_init(DisplayState *ds, uint8_t *vga_ram_base,
+int isa_vga_init(uint8_t *vga_ram_base,
unsigned long vga_ram_offset, int vga_ram_size);
-int pci_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base,
+int pci_vga_init(PCIBus *bus, uint8_t *vga_ram_base,
unsigned long vga_ram_offset, int vga_ram_size,
unsigned long vga_bios_offset, int vga_bios_size);
-int isa_vga_mm_init(DisplayState *ds, uint8_t *vga_ram_base,
+int isa_vga_mm_init(uint8_t *vga_ram_base,
unsigned long vga_ram_offset, int vga_ram_size,
target_phys_addr_t vram_base, target_phys_addr_t ctrl_base,
int it_shift);
/* cirrus_vga.c */
-void pci_cirrus_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base,
+void pci_cirrus_vga_init(PCIBus *bus, uint8_t *vga_ram_base,
ram_addr_t vga_ram_offset, int vga_ram_size);
-void isa_cirrus_vga_init(DisplayState *ds, uint8_t *vga_ram_base,
+void isa_cirrus_vga_init(uint8_t *vga_ram_base,
ram_addr_t vga_ram_offset, int vga_ram_size);
/* ide.c */
Modified: trunk/hw/pci.h
===================================================================
--- trunk/hw/pci.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/pci.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -135,7 +135,7 @@
void *lsi_scsi_init(PCIBus *bus, int devfn);
/* vmware_vga.c */
-void pci_vmsvga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base,
+void pci_vmsvga_init(PCIBus *bus, uint8_t *vga_ram_base,
unsigned long vga_ram_offset, int vga_ram_size);
/* usb-uhci.c */
Modified: trunk/hw/pl110.c
===================================================================
--- trunk/hw/pl110.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/pl110.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -29,7 +29,6 @@
typedef struct {
DisplayState *ds;
- QEMUConsole *console;
/* The Versatile/PB uses a slightly modified PL110 controller. */
int versatile;
@@ -271,7 +270,7 @@
{
if (width != s->cols || height != s->rows) {
if (pl110_enabled(s)) {
- qemu_console_resize(s->console, width, height);
+ qemu_console_resize(s->ds, width, height);
}
}
s->cols = width;
@@ -386,7 +385,7 @@
s->cr = val;
s->bpp = (val >> 1) & 7;
if (pl110_enabled(s)) {
- qemu_console_resize(s->console, s->cols, s->rows);
+ qemu_console_resize(s->ds, s->cols, s->rows);
}
break;
case 10: /* LCDICR */
@@ -410,8 +409,7 @@
pl110_write
};
-void *pl110_init(DisplayState *ds, uint32_t base, qemu_irq irq,
- int versatile)
+void *pl110_init(uint32_t base, qemu_irq irq, int versatile)
{
pl110_state *s;
int iomemtype;
@@ -420,12 +418,11 @@
iomemtype = cpu_register_io_memory(0, pl110_readfn,
pl110_writefn, s);
cpu_register_physical_memory(base, 0x00001000, iomemtype);
- s->ds = ds;
s->versatile = versatile;
s->irq = irq;
- s->console = graphic_console_init(ds, pl110_update_display,
- pl110_invalidate_display,
- NULL, NULL, s);
+ s->ds = graphic_console_init(pl110_update_display,
+ pl110_invalidate_display,
+ NULL, NULL, s);
/* ??? Save/restore. */
return s;
}
Modified: trunk/hw/ppc405_boards.c
===================================================================
--- trunk/hw/ppc405_boards.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/ppc405_boards.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -172,7 +172,7 @@
}
static void ref405ep_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
@@ -496,7 +496,7 @@
}
static void taihu_405ep_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
Modified: trunk/hw/ppc_chrp.c
===================================================================
--- trunk/hw/ppc_chrp.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/ppc_chrp.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -59,7 +59,7 @@
/* PowerPC Mac99 hardware initialisation */
static void ppc_core99_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
@@ -256,7 +256,7 @@
pic = openpic_init(NULL, &pic_mem_index, smp_cpus, openpic_irqs, NULL);
pci_bus = pci_pmac_init(pic);
/* init basic PC hardware */
- pci_vga_init(pci_bus, ds, phys_ram_base + ram_size,
+ pci_vga_init(pci_bus, phys_ram_base + ram_size,
ram_size, vga_ram_size,
vga_bios_offset, vga_bios_size);
Modified: trunk/hw/ppc_oldworld.c
===================================================================
--- trunk/hw/ppc_oldworld.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/ppc_oldworld.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -108,7 +108,7 @@
}
static void ppc_heathrow_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
@@ -297,7 +297,7 @@
}
pic = heathrow_pic_init(&pic_mem_index, 1, heathrow_irqs);
pci_bus = pci_grackle_init(0xfec00000, pic);
- pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_offset,
+ pci_vga_init(pci_bus, phys_ram_base + vga_ram_offset,
vga_ram_offset, vga_ram_size,
vga_bios_offset, vga_bios_size);
Modified: trunk/hw/ppc_prep.c
===================================================================
--- trunk/hw/ppc_prep.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/ppc_prep.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -531,7 +531,7 @@
/* PowerPC PREP hardware initialisation */
static void ppc_prep_init (ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename,
@@ -655,7 +655,7 @@
cpu_register_physical_memory(0x80000000, 0x00800000, PPC_io_memory);
/* init basic PC hardware */
- pci_vga_init(pci_bus, ds, phys_ram_base + ram_size, ram_size,
+ pci_vga_init(pci_bus, phys_ram_base + ram_size, ram_size,
vga_ram_size, 0, 0);
// openpic = openpic_init(0x00000000, 0xF0000000, 1);
// pit = pit_init(0x40, i8259[0]);
Modified: trunk/hw/primecell.h
===================================================================
--- trunk/hw/primecell.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/primecell.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -9,7 +9,7 @@
void pl031_init(uint32_t base, qemu_irq irq);
/* pl110.c */
-void *pl110_init(DisplayState *ds, uint32_t base, qemu_irq irq, int);
+void *pl110_init(uint32_t base, qemu_irq irq, int);
/* pl011.c */
enum pl011_type {
Modified: trunk/hw/pxa.h
===================================================================
--- trunk/hw/pxa.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/pxa.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -89,7 +89,7 @@
/* pxa2xx_lcd.c */
struct pxa2xx_lcdc_s;
struct pxa2xx_lcdc_s *pxa2xx_lcdc_init(target_phys_addr_t base,
- qemu_irq irq, DisplayState *ds);
+ qemu_irq irq);
void pxa2xx_lcd_vsync_notifier(struct pxa2xx_lcdc_s *s, qemu_irq handler);
void pxa2xx_lcdc_oritentation(void *opaque, int angle);
@@ -215,9 +215,8 @@
# define PA_FMT "0x%08lx"
# define REG_FMT "0x" TARGET_FMT_plx
-struct pxa2xx_state_s *pxa270_init(unsigned int sdram_size, DisplayState *ds,
- const char *revision);
-struct pxa2xx_state_s *pxa255_init(unsigned int sdram_size, DisplayState *ds);
+struct pxa2xx_state_s *pxa270_init(unsigned int sdram_size, const char *revision);
+struct pxa2xx_state_s *pxa255_init(unsigned int sdram_size);
/* usb-ohci.c */
void usb_ohci_init_pxa(target_phys_addr_t base, int num_ports, int devfn,
Modified: trunk/hw/pxa2xx.c
===================================================================
--- trunk/hw/pxa2xx.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/pxa2xx.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -2010,8 +2010,7 @@
}
/* Initialise a PXA270 integrated chip (ARM based core). */
-struct pxa2xx_state_s *pxa270_init(unsigned int sdram_size,
- DisplayState *ds, const char *revision)
+struct pxa2xx_state_s *pxa270_init(unsigned int sdram_size, const char *revision)
{
struct pxa2xx_state_s *s;
struct pxa2xx_ssp_s *ssp;
@@ -2067,8 +2066,7 @@
s->fir = pxa2xx_fir_init(0x40800000, s->pic[PXA2XX_PIC_ICP],
s->dma, serial_hds[i]);
- if (ds)
- s->lcd = pxa2xx_lcdc_init(0x44000000, s->pic[PXA2XX_PIC_LCD], ds);
+ s->lcd = pxa2xx_lcdc_init(0x44000000, s->pic[PXA2XX_PIC_LCD]);
s->cm_base = 0x41300000;
s->cm_regs[CCCR >> 2] = 0x02000210; /* 416.0 MHz */
@@ -2141,8 +2139,7 @@
}
/* Initialise a PXA255 integrated chip (ARM based core). */
-struct pxa2xx_state_s *pxa255_init(unsigned int sdram_size,
- DisplayState *ds)
+struct pxa2xx_state_s *pxa255_init(unsigned int sdram_size)
{
struct pxa2xx_state_s *s;
struct pxa2xx_ssp_s *ssp;
@@ -2191,8 +2188,7 @@
s->fir = pxa2xx_fir_init(0x40800000, s->pic[PXA2XX_PIC_ICP],
s->dma, serial_hds[i]);
- if (ds)
- s->lcd = pxa2xx_lcdc_init(0x44000000, s->pic[PXA2XX_PIC_LCD], ds);
+ s->lcd = pxa2xx_lcdc_init(0x44000000, s->pic[PXA2XX_PIC_LCD]);
s->cm_base = 0x41300000;
s->cm_regs[CCCR >> 2] = 0x02000210; /* 416.0 MHz */
Modified: trunk/hw/pxa2xx_lcd.c
===================================================================
--- trunk/hw/pxa2xx_lcd.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/pxa2xx_lcd.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -22,7 +22,6 @@
int invalidated;
DisplayState *ds;
- QEMUConsole *console;
drawfn *line_fn[2];
int dest_width;
int xres, yres;
@@ -792,9 +791,9 @@
if (width != s->xres || height != s->yres) {
if (s->orientation)
- qemu_console_resize(s->console, height, width);
+ qemu_console_resize(s->ds, height, width);
else
- qemu_console_resize(s->console, width, height);
+ qemu_console_resize(s->ds, width, height);
s->invalidated = 1;
s->xres = width;
s->yres = height;
@@ -981,8 +980,7 @@
#define BITS 32
#include "pxa2xx_template.h"
-struct pxa2xx_lcdc_s *pxa2xx_lcdc_init(target_phys_addr_t base, qemu_irq irq,
- DisplayState *ds)
+struct pxa2xx_lcdc_s *pxa2xx_lcdc_init(target_phys_addr_t base, qemu_irq irq)
{
int iomemtype;
struct pxa2xx_lcdc_s *s;
@@ -990,7 +988,6 @@
s = (struct pxa2xx_lcdc_s *) qemu_mallocz(sizeof(struct pxa2xx_lcdc_s));
s->invalidated = 1;
s->irq = irq;
- s->ds = ds;
pxa2xx_lcdc_orientation(s, graphic_rotate);
@@ -998,9 +995,9 @@
pxa2xx_lcdc_writefn, s);
cpu_register_physical_memory(base, 0x00100000, iomemtype);
- s->console = graphic_console_init(ds, pxa2xx_update_display,
- pxa2xx_invalidate_display,
- pxa2xx_screen_dump, NULL, s);
+ s->ds = graphic_console_init(pxa2xx_update_display,
+ pxa2xx_invalidate_display,
+ pxa2xx_screen_dump, NULL, s);
switch (ds_get_bits_per_pixel(s->ds)) {
case 0:
Modified: trunk/hw/r2d.c
===================================================================
--- trunk/hw/r2d.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/r2d.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -193,7 +193,7 @@
}
static void r2d_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState * ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -222,7 +222,7 @@
pci = sh_pci_register_bus(r2d_pci_set_irq, r2d_pci_map_irq, irq, 0, 4);
sm501_vga_ram_addr = qemu_ram_alloc(SM501_VRAM_SIZE);
- sm501_init(ds, 0x10000000, sm501_vga_ram_addr, SM501_VRAM_SIZE,
+ sm501_init(0x10000000, sm501_vga_ram_addr, SM501_VRAM_SIZE,
serial_hds[2]);
/* onboard CF (True IDE mode, Master only). */
Modified: trunk/hw/realview.c
===================================================================
--- trunk/hw/realview.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/realview.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -24,7 +24,7 @@
};
static void realview_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -93,7 +93,7 @@
sp804_init(0x10011000, pic[4]);
sp804_init(0x10012000, pic[5]);
- pl110_init(ds, 0x10020000, pic[23], 1);
+ pl110_init(0x10020000, pic[23], 1);
index = drive_get_index(IF_SD, 0, 0);
if (index == -1) {
Modified: trunk/hw/shix.c
===================================================================
--- trunk/hw/shix.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/shix.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -61,7 +61,7 @@
}
static void shix_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState * ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
Modified: trunk/hw/sm501.c
===================================================================
--- trunk/hw/sm501.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/sm501.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -450,7 +450,6 @@
typedef struct SM501State {
/* graphic console status */
DisplayState *ds;
- QEMUConsole *console;
/* status & internal resources */
target_phys_addr_t base;
@@ -994,7 +993,7 @@
/* adjust console size */
if (s->last_width != width || s->last_height != height) {
- qemu_console_resize(s->console, width, height);
+ qemu_console_resize(s->ds, width, height);
s->last_width = width;
s->last_height = height;
full_update = 1;
@@ -1051,7 +1050,7 @@
sm501_draw_crt(s);
}
-void sm501_init(DisplayState *ds, uint32_t base, unsigned long local_mem_base,
+void sm501_init(uint32_t base, unsigned long local_mem_base,
uint32_t local_mem_bytes, CharDriverState *chr)
{
SM501State * s;
@@ -1069,7 +1068,6 @@
s->misc_control = 0x00001000; /* assumes SH, active=low */
s->dc_panel_control = 0x00010000;
s->dc_crt_control = 0x00010000;
- s->ds = ds;
/* allocate local memory */
s->local_mem = (uint8 *)phys_ram_base + local_mem_base;
@@ -1093,6 +1091,6 @@
115200, chr, 1);
/* create qemu graphic console */
- s->console = graphic_console_init(s->ds, sm501_update_display, NULL,
- NULL, NULL, s);
+ s->ds = graphic_console_init(sm501_update_display, NULL,
+ NULL, NULL, s);
}
Modified: trunk/hw/spitz.c
===================================================================
--- trunk/hw/spitz.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/spitz.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -908,7 +908,7 @@
};
static void spitz_common_init(ram_addr_t ram_size, int vga_ram_size,
- DisplayState *ds, const char *kernel_filename,
+ const char *kernel_filename,
const char *kernel_cmdline, const char *initrd_filename,
const char *cpu_model, enum spitz_model_e model, int arm_id)
{
@@ -924,7 +924,7 @@
SPITZ_RAM + SPITZ_ROM + PXA2XX_INTERNAL_SIZE);
exit(1);
}
- cpu = pxa270_init(spitz_binfo.ram_size, ds, cpu_model);
+ cpu = pxa270_init(spitz_binfo.ram_size, cpu_model);
sl_flash_register(cpu, (model == spitz) ? FLASH_128M : FLASH_1024M);
@@ -969,38 +969,38 @@
}
static void spitz_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- spitz_common_init(ram_size, vga_ram_size, ds, kernel_filename,
+ spitz_common_init(ram_size, vga_ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, spitz, 0x2c9);
}
static void borzoi_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- spitz_common_init(ram_size, vga_ram_size, ds, kernel_filename,
+ spitz_common_init(ram_size, vga_ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, borzoi, 0x33f);
}
static void akita_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- spitz_common_init(ram_size, vga_ram_size, ds, kernel_filename,
+ spitz_common_init(ram_size, vga_ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, akita, 0x2e8);
}
static void terrier_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- spitz_common_init(ram_size, vga_ram_size, ds, kernel_filename,
+ spitz_common_init(ram_size, vga_ram_size, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, terrier, 0x33f);
}
Modified: trunk/hw/ssd0303.c
===================================================================
--- trunk/hw/ssd0303.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/ssd0303.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -45,7 +45,6 @@
typedef struct {
i2c_slave i2c;
DisplayState *ds;
- QEMUConsole *console;
int row;
int col;
int start_line;
@@ -306,18 +305,17 @@
return 0;
}
-void ssd0303_init(DisplayState *ds, i2c_bus *bus, int address)
+void ssd0303_init(i2c_bus *bus, int address)
{
ssd0303_state *s;
s = (ssd0303_state *)i2c_slave_init(bus, address, sizeof(ssd0303_state));
- s->ds = ds;
s->i2c.event = ssd0303_event;
s->i2c.recv = ssd0303_recv;
s->i2c.send = ssd0303_send;
- s->console = graphic_console_init(ds, ssd0303_update_display,
- ssd0303_invalidate_display,
- NULL, NULL, s);
- qemu_console_resize(s->console, 96 * MAGNIFY, 16 * MAGNIFY);
+ s->ds = graphic_console_init(ssd0303_update_display,
+ ssd0303_invalidate_display,
+ NULL, NULL, s);
+ qemu_console_resize(s->ds, 96 * MAGNIFY, 16 * MAGNIFY);
register_savevm("ssd0303_oled", -1, 1, ssd0303_save, ssd0303_load, s);
}
Modified: trunk/hw/ssd0323.c
===================================================================
--- trunk/hw/ssd0323.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/ssd0323.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -44,7 +44,6 @@
typedef struct {
DisplayState *ds;
- QEMUConsole *console;
int cmd_len;
int cmd;
@@ -322,7 +321,7 @@
return 0;
}
-void *ssd0323_init(DisplayState *ds, qemu_irq *cmd_p)
+void *ssd0323_init(qemu_irq *cmd_p)
{
ssd0323_state *s;
qemu_irq *cmd;
@@ -330,11 +329,10 @@
s = (ssd0323_state *)qemu_mallocz(sizeof(ssd0323_state));
s->col_end = 63;
s->row_end = 79;
- s->ds = ds;
- s->console = graphic_console_init(ds, ssd0323_update_display,
- ssd0323_invalidate_display,
- NULL, NULL, s);
- qemu_console_resize(s->console, 128 * MAGNIFY, 64 * MAGNIFY);
+ s->ds = graphic_console_init(ssd0323_update_display,
+ ssd0323_invalidate_display,
+ NULL, NULL, s);
+ qemu_console_resize(s->ds, 128 * MAGNIFY, 64 * MAGNIFY);
cmd = qemu_allocate_irqs(ssd0323_cd, s, 1);
*cmd_p = *cmd;
Modified: trunk/hw/stellaris.c
===================================================================
--- trunk/hw/stellaris.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/stellaris.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -1282,7 +1282,7 @@
};
static void stellaris_init(const char *kernel_filename, const char *cpu_model,
- DisplayState *ds, stellaris_board_info *board)
+ stellaris_board_info *board)
{
static const int uart_irq[] = {5, 6, 33, 34};
static const int timer_irq[] = {19, 21, 23, 35};
@@ -1329,7 +1329,7 @@
i2c = i2c_init_bus();
stellaris_i2c_init(0x40020000, pic[8], i2c);
if (board->peripherals & BP_OLED_I2C) {
- ssd0303_init(ds, i2c, 0x3d);
+ ssd0303_init(i2c, 0x3d);
}
}
@@ -1346,7 +1346,7 @@
void *ssi_bus;
int index;
- oled = ssd0323_init(ds, &gpio_out[GPIO_C][7]);
+ oled = ssd0323_init(&gpio_out[GPIO_C][7]);
index = drive_get_index(IF_SD, 0, 0);
sd = ssi_sd_init(drives_table[index].bdrv);
@@ -1379,19 +1379,19 @@
/* FIXME: Figure out how to generate these from stellaris_boards. */
static void lm3s811evb_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- stellaris_init(kernel_filename, cpu_model, ds, &stellaris_boards[0]);
+ stellaris_init(kernel_filename, cpu_model, &stellaris_boards[0]);
}
static void lm3s6965evb_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- stellaris_init(kernel_filename, cpu_model, ds, &stellaris_boards[1]);
+ stellaris_init(kernel_filename, cpu_model, &stellaris_boards[1]);
}
QEMUMachine lm3s811evb_machine = {
Modified: trunk/hw/sun4m.c
===================================================================
--- trunk/hw/sun4m.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/sun4m.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -423,7 +423,7 @@
static void sun4m_hw_init(const struct sun4m_hwdef *hwdef, ram_addr_t RAM_size,
const char *boot_device,
- DisplayState *ds, const char *kernel_filename,
+ const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
@@ -533,7 +533,7 @@
exit (1);
}
tcx_offset = qemu_ram_alloc(hwdef->vram_size);
- tcx_init(ds, hwdef->tcx_base, phys_ram_base + tcx_offset, tcx_offset,
+ tcx_init(hwdef->tcx_base, phys_ram_base + tcx_offset, tcx_offset,
hwdef->vram_size, graphic_width, graphic_height, graphic_depth);
lance_init(&nd_table[0], hwdef->le_base, ledma, *ledma_irq, le_reset);
@@ -978,92 +978,92 @@
/* SPARCstation 5 hardware initialisation */
static void ss5_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4m_hw_init(&sun4m_hwdefs[0], RAM_size, boot_device, ds, kernel_filename,
+ sun4m_hw_init(&sun4m_hwdefs[0], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation 10 hardware initialisation */
static void ss10_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4m_hw_init(&sun4m_hwdefs[1], RAM_size, boot_device, ds, kernel_filename,
+ sun4m_hw_init(&sun4m_hwdefs[1], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCserver 600MP hardware initialisation */
static void ss600mp_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4m_hw_init(&sun4m_hwdefs[2], RAM_size, boot_device, ds, kernel_filename,
+ sun4m_hw_init(&sun4m_hwdefs[2], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation 20 hardware initialisation */
static void ss20_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4m_hw_init(&sun4m_hwdefs[3], RAM_size, boot_device, ds, kernel_filename,
+ sun4m_hw_init(&sun4m_hwdefs[3], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation Voyager hardware initialisation */
static void vger_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4m_hw_init(&sun4m_hwdefs[4], RAM_size, boot_device, ds, kernel_filename,
+ sun4m_hw_init(&sun4m_hwdefs[4], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation LX hardware initialisation */
static void ss_lx_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4m_hw_init(&sun4m_hwdefs[5], RAM_size, boot_device, ds, kernel_filename,
+ sun4m_hw_init(&sun4m_hwdefs[5], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCstation 4 hardware initialisation */
static void ss4_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4m_hw_init(&sun4m_hwdefs[6], RAM_size, boot_device, ds, kernel_filename,
+ sun4m_hw_init(&sun4m_hwdefs[6], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCClassic hardware initialisation */
static void scls_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4m_hw_init(&sun4m_hwdefs[7], RAM_size, boot_device, ds, kernel_filename,
+ sun4m_hw_init(&sun4m_hwdefs[7], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCbook hardware initialisation */
static void sbook_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4m_hw_init(&sun4m_hwdefs[8], RAM_size, boot_device, ds, kernel_filename,
+ sun4m_hw_init(&sun4m_hwdefs[8], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
@@ -1224,7 +1224,7 @@
static void sun4d_hw_init(const struct sun4d_hwdef *hwdef, ram_addr_t RAM_size,
const char *boot_device,
- DisplayState *ds, const char *kernel_filename,
+ const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -1316,7 +1316,7 @@
exit (1);
}
tcx_offset = qemu_ram_alloc(hwdef->vram_size);
- tcx_init(ds, hwdef->tcx_base, phys_ram_base + tcx_offset, tcx_offset,
+ tcx_init(hwdef->tcx_base, phys_ram_base + tcx_offset, tcx_offset,
hwdef->vram_size, graphic_width, graphic_height, graphic_depth);
lance_init(&nd_table[0], hwdef->le_base, ledma, *ledma_irq, le_reset);
@@ -1366,21 +1366,21 @@
/* SPARCserver 1000 hardware initialisation */
static void ss1000_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4d_hw_init(&sun4d_hwdefs[0], RAM_size, boot_device, ds, kernel_filename,
+ sun4d_hw_init(&sun4d_hwdefs[0], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
/* SPARCcenter 2000 hardware initialisation */
static void ss2000_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4d_hw_init(&sun4d_hwdefs[1], RAM_size, boot_device, ds, kernel_filename,
+ sun4d_hw_init(&sun4d_hwdefs[1], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
@@ -1439,7 +1439,7 @@
static void sun4c_hw_init(const struct sun4c_hwdef *hwdef, ram_addr_t RAM_size,
const char *boot_device,
- DisplayState *ds, const char *kernel_filename,
+ const char *kernel_filename,
const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -1522,7 +1522,7 @@
exit (1);
}
tcx_offset = qemu_ram_alloc(hwdef->vram_size);
- tcx_init(ds, hwdef->tcx_base, phys_ram_base + tcx_offset, tcx_offset,
+ tcx_init(hwdef->tcx_base, phys_ram_base + tcx_offset, tcx_offset,
hwdef->vram_size, graphic_width, graphic_height, graphic_depth);
lance_init(&nd_table[0], hwdef->le_base, ledma, *ledma_irq, le_reset);
@@ -1584,11 +1584,11 @@
/* SPARCstation 2 hardware initialisation */
static void ss2_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4c_hw_init(&sun4c_hwdefs[0], RAM_size, boot_device, ds, kernel_filename,
+ sun4c_hw_init(&sun4c_hwdefs[0], RAM_size, boot_device, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model);
}
Modified: trunk/hw/sun4m.h
===================================================================
--- trunk/hw/sun4m.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/sun4m.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -22,7 +22,7 @@
}
/* tcx.c */
-void tcx_init(DisplayState *ds, target_phys_addr_t addr, uint8_t *vram_base,
+void tcx_init(target_phys_addr_t addr, uint8_t *vram_base,
unsigned long vram_offset, int vram_size, int width, int height,
int depth);
Modified: trunk/hw/sun4u.c
===================================================================
--- trunk/hw/sun4u.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/sun4u.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -387,7 +387,7 @@
}
static void sun4uv_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_devices, DisplayState *ds,
+ const char *boot_devices,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model,
const struct hwdef *hwdef)
@@ -508,7 +508,7 @@
&pci_bus3);
isa_mem_base = VGA_BASE;
vga_ram_offset = qemu_ram_alloc(vga_ram_size);
- pci_vga_init(pci_bus, ds, phys_ram_base + vga_ram_offset,
+ pci_vga_init(pci_bus, phys_ram_base + vga_ram_offset,
vga_ram_offset, vga_ram_size,
0, 0);
@@ -612,31 +612,31 @@
/* Sun4u hardware initialisation */
static void sun4u_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_devices, DisplayState *ds,
+ const char *boot_devices,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4uv_init(RAM_size, vga_ram_size, boot_devices, ds, kernel_filename,
+ sun4uv_init(RAM_size, vga_ram_size, boot_devices, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, &hwdefs[0]);
}
/* Sun4v hardware initialisation */
static void sun4v_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_devices, DisplayState *ds,
+ const char *boot_devices,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4uv_init(RAM_size, vga_ram_size, boot_devices, ds, kernel_filename,
+ sun4uv_init(RAM_size, vga_ram_size, boot_devices, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, &hwdefs[1]);
}
/* Niagara hardware initialisation */
static void niagara_init(ram_addr_t RAM_size, int vga_ram_size,
- const char *boot_devices, DisplayState *ds,
+ const char *boot_devices,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
- sun4uv_init(RAM_size, vga_ram_size, boot_devices, ds, kernel_filename,
+ sun4uv_init(RAM_size, vga_ram_size, boot_devices, kernel_filename,
kernel_cmdline, initrd_filename, cpu_model, &hwdefs[2]);
}
Modified: trunk/hw/tc6393xb.c
===================================================================
--- trunk/hw/tc6393xb.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/tc6393xb.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -122,7 +122,6 @@
struct ecc_state_s ecc;
DisplayState *ds;
- QEMUConsole *console;
ram_addr_t vram_addr;
uint32_t scr_width, scr_height; /* in pixels */
qemu_irq l3v;
@@ -485,7 +484,7 @@
full_update = 1;
}
if (s->scr_width != ds_get_width(s->ds) || s->scr_height != ds_get_height(s->ds)) {
- qemu_console_resize(s->console, s->scr_width, s->scr_height);
+ qemu_console_resize(s->ds, s->scr_width, s->scr_height);
full_update = 1;
}
if (s->blanked)
@@ -563,7 +562,7 @@
tc6393xb_writeb(opaque, addr + 3, value >> 24);
}
-struct tc6393xb_s *tc6393xb_init(uint32_t base, qemu_irq irq, DisplayState *ds)
+struct tc6393xb_s *tc6393xb_init(uint32_t base, qemu_irq irq)
{
int iomemtype;
struct tc6393xb_s *s;
@@ -593,19 +592,15 @@
tc6393xb_writefn, s);
cpu_register_physical_memory(base, 0x10000, iomemtype);
- if (ds) {
- s->ds = ds;
- s->vram_addr = qemu_ram_alloc(0x100000);
- cpu_register_physical_memory(base + 0x100000, 0x100000, s->vram_addr);
- s->scr_width = 480;
- s->scr_height = 640;
- s->console = graphic_console_init(ds,
- tc6393xb_update_display,
- NULL, /* invalidate */
- NULL, /* screen_dump */
- NULL, /* text_update */
- s);
- }
+ s->vram_addr = qemu_ram_alloc(0x100000);
+ cpu_register_physical_memory(base + 0x100000, 0x100000, s->vram_addr);
+ s->scr_width = 480;
+ s->scr_height = 640;
+ s->ds = graphic_console_init(tc6393xb_update_display,
+ NULL, /* invalidate */
+ NULL, /* screen_dump */
+ NULL, /* text_update */
+ s);
return s;
}
Modified: trunk/hw/tcx.c
===================================================================
--- trunk/hw/tcx.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/tcx.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -36,7 +36,6 @@
typedef struct TCXState {
target_phys_addr_t addr;
DisplayState *ds;
- QEMUConsole *console;
uint8_t *vram;
uint32_t *vram24, *cplane;
ram_addr_t vram_offset, vram24_offset, cplane_offset;
@@ -491,7 +490,7 @@
tcx_dummy_writel,
};
-void tcx_init(DisplayState *ds, target_phys_addr_t addr, uint8_t *vram_base,
+void tcx_init(target_phys_addr_t addr, uint8_t *vram_base,
unsigned long vram_offset, int vram_size, int width, int height,
int depth)
{
@@ -502,7 +501,6 @@
s = qemu_mallocz(sizeof(TCXState));
if (!s)
return;
- s->ds = ds;
s->addr = addr;
s->vram_offset = vram_offset;
s->width = width;
@@ -538,15 +536,15 @@
s->cplane = (uint32_t *)vram_base;
s->cplane_offset = vram_offset;
cpu_register_physical_memory(addr + 0x0a000000ULL, size, vram_offset);
- s->console = graphic_console_init(s->ds, tcx24_update_display,
- tcx24_invalidate_display,
- tcx24_screen_dump, NULL, s);
+ s->ds = graphic_console_init(tcx24_update_display,
+ tcx24_invalidate_display,
+ tcx24_screen_dump, NULL, s);
} else {
cpu_register_physical_memory(addr + 0x00300000ULL, TCX_THC_NREGS_8,
dummy_memory);
- s->console = graphic_console_init(s->ds, tcx_update_display,
- tcx_invalidate_display,
- tcx_screen_dump, NULL, s);
+ s->ds = graphic_console_init(tcx_update_display,
+ tcx_invalidate_display,
+ tcx_screen_dump, NULL, s);
}
// NetBSD writes here even with 8-bit display
cpu_register_physical_memory(addr + 0x00301000ULL, TCX_THC_NREGS_24,
@@ -555,7 +553,7 @@
register_savevm("tcx", addr, 4, tcx_save, tcx_load, s);
qemu_register_reset(tcx_reset, s);
tcx_reset(s);
- qemu_console_resize(s->console, width, height);
+ qemu_console_resize(s->ds, width, height);
}
static void tcx_screen_dump(void *opaque, const char *filename)
Modified: trunk/hw/tosa.c
===================================================================
--- trunk/hw/tosa.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/tosa.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -197,7 +197,7 @@
};
static void tosa_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
@@ -214,14 +214,13 @@
if (!cpu_model)
cpu_model = "pxa255";
- cpu = pxa255_init(tosa_binfo.ram_size, NULL);
+ cpu = pxa255_init(tosa_binfo.ram_size);
cpu_register_physical_memory(0, TOSA_ROM,
qemu_ram_alloc(TOSA_ROM) | IO_MEM_ROM);
tmio = tc6393xb_init(0x10000000,
- pxa2xx_gpio_in_get(cpu->gpio)[TOSA_GPIO_TC6393XB_INT],
- ds);
+ pxa2xx_gpio_in_get(cpu->gpio)[TOSA_GPIO_TC6393XB_INT]);
scp0 = scoop_init(cpu, 0, 0x08800000);
scp1 = scoop_init(cpu, 1, 0x14800040);
Modified: trunk/hw/versatilepb.c
===================================================================
--- trunk/hw/versatilepb.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/versatilepb.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -156,7 +156,7 @@
static struct arm_boot_info versatile_binfo;
static void versatile_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model,
int board_id)
@@ -228,7 +228,7 @@
/* The versatile/PB actually has a modified Color LCD controller
that includes hardware cursor support from the PL111. */
- pl110_init(ds, 0x10120000, pic[16], 1);
+ pl110_init(0x10120000, pic[16], 1);
index = drive_get_index(IF_SD, 0, 0);
if (index == -1) {
@@ -290,23 +290,23 @@
}
static void vpb_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
versatile_init(ram_size, vga_ram_size,
- boot_device, ds,
+ boot_device,
kernel_filename, kernel_cmdline,
initrd_filename, cpu_model, 0x183);
}
static void vab_init(ram_addr_t ram_size, int vga_ram_size,
- const char *boot_device, DisplayState *ds,
+ const char *boot_device,
const char *kernel_filename, const char *kernel_cmdline,
const char *initrd_filename, const char *cpu_model)
{
versatile_init(ram_size, vga_ram_size,
- boot_device, ds,
+ boot_device,
kernel_filename, kernel_cmdline,
initrd_filename, cpu_model, 0x25e);
}
Modified: trunk/hw/vga.c
===================================================================
--- trunk/hw/vga.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/vga.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -1307,7 +1307,7 @@
cw != s->last_cw || cheight != s->last_ch || s->last_depth) {
s->last_scr_width = width * cw;
s->last_scr_height = height * cheight;
- qemu_console_resize(s->console, s->last_scr_width, s->last_scr_height);
+ qemu_console_resize(s->ds, s->last_scr_width, s->last_scr_height);
s->last_depth = 0;
s->last_width = width;
s->last_height = height;
@@ -1682,10 +1682,10 @@
s->vram_ptr + (s->start_addr * 4));
dpy_resize(s->ds);
} else {
- qemu_console_resize(s->console, disp_width, height);
+ qemu_console_resize(s->ds, disp_width, height);
}
} else {
- qemu_console_resize(s->console, disp_width, height);
+ qemu_console_resize(s->ds, disp_width, height);
}
s->last_scr_width = disp_width;
s->last_scr_height = height;
@@ -2254,7 +2254,7 @@
vga_dirty_log_start(s);
}
-void vga_common_init(VGAState *s, DisplayState *ds, uint8_t *vga_ram_base,
+void vga_common_init(VGAState *s, uint8_t *vga_ram_base,
ram_addr_t vga_ram_offset, int vga_ram_size)
{
int i, j, v, b;
@@ -2285,7 +2285,6 @@
s->vram_ptr = vga_ram_base;
s->vram_offset = vga_ram_offset;
s->vram_size = vga_ram_size;
- s->ds = ds;
s->get_bpp = vga_get_bpp;
s->get_offsets = vga_get_offsets;
s->get_resolution = vga_get_resolution;
@@ -2434,7 +2433,7 @@
qemu_register_coalesced_mmio(vram_base + 0x000a0000, 0x20000);
}
-int isa_vga_init(DisplayState *ds, uint8_t *vga_ram_base,
+int isa_vga_init(uint8_t *vga_ram_base,
unsigned long vga_ram_offset, int vga_ram_size)
{
VGAState *s;
@@ -2443,11 +2442,11 @@
if (!s)
return -1;
- vga_common_init(s, ds, vga_ram_base, vga_ram_offset, vga_ram_size);
+ vga_common_init(s, vga_ram_base, vga_ram_offset, vga_ram_size);
vga_init(s);
- s->console = graphic_console_init(s->ds, s->update, s->invalidate,
- s->screen_dump, s->text_update, s);
+ s->ds = graphic_console_init(s->update, s->invalidate,
+ s->screen_dump, s->text_update, s);
#ifdef CONFIG_BOCHS_VBE
/* XXX: use optimized standard vga accesses */
@@ -2457,7 +2456,7 @@
return 0;
}
-int isa_vga_mm_init(DisplayState *ds, uint8_t *vga_ram_base,
+int isa_vga_mm_init(uint8_t *vga_ram_base,
unsigned long vga_ram_offset, int vga_ram_size,
target_phys_addr_t vram_base, target_phys_addr_t ctrl_base,
int it_shift)
@@ -2468,11 +2467,11 @@
if (!s)
return -1;
- vga_common_init(s, ds, vga_ram_base, vga_ram_offset, vga_ram_size);
+ vga_common_init(s, vga_ram_base, vga_ram_offset, vga_ram_size);
vga_mm_init(s, vram_base, ctrl_base, it_shift);
- s->console = graphic_console_init(s->ds, s->update, s->invalidate,
- s->screen_dump, s->text_update, s);
+ s->ds = graphic_console_init(s->update, s->invalidate,
+ s->screen_dump, s->text_update, s);
#ifdef CONFIG_BOCHS_VBE
/* XXX: use optimized standard vga accesses */
@@ -2482,7 +2481,7 @@
return 0;
}
-int pci_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base,
+int pci_vga_init(PCIBus *bus, uint8_t *vga_ram_base,
unsigned long vga_ram_offset, int vga_ram_size,
unsigned long vga_bios_offset, int vga_bios_size)
{
@@ -2497,11 +2496,11 @@
return -1;
s = &d->vga_state;
- vga_common_init(s, ds, vga_ram_base, vga_ram_offset, vga_ram_size);
+ vga_common_init(s, vga_ram_base, vga_ram_offset, vga_ram_size);
vga_init(s);
- s->console = graphic_console_init(s->ds, s->update, s->invalidate,
- s->screen_dump, s->text_update, s);
+ s->ds = graphic_console_init(s->update, s->invalidate,
+ s->screen_dump, s->text_update, s);
s->pci_dev = &d->dev;
Modified: trunk/hw/vga_int.h
===================================================================
--- trunk/hw/vga_int.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/vga_int.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -145,7 +145,6 @@
VGA_STATE_COMMON_BOCHS_VBE \
/* display refresh support */ \
DisplayState *ds; \
- QEMUConsole *console; \
uint32_t font_offsets[2]; \
int graphic_mode; \
uint8_t shift_control; \
@@ -192,7 +191,7 @@
return (v << 2) | (b << 1) | b;
}
-void vga_common_init(VGAState *s, DisplayState *ds, uint8_t *vga_ram_base,
+void vga_common_init(VGAState *s, uint8_t *vga_ram_base,
ram_addr_t vga_ram_offset, int vga_ram_size);
void vga_init(VGAState *s);
void vga_reset(void *s);
Modified: trunk/hw/vmware_vga.c
===================================================================
--- trunk/hw/vmware_vga.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/hw/vmware_vga.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -57,7 +57,6 @@
#ifndef EMBED_STDVGA
DisplayState *ds;
- QEMUConsole *console;
int vram_size;
ram_addr_t vram_offset;
#endif
@@ -384,7 +383,7 @@
# ifdef DIRECT_VRAM
if (s->ds->dpy_copy)
- qemu_console_copy(s->console, x0, y0, x1, y1, w, h);
+ qemu_console_copy(s->ds, x0, y0, x1, y1, w, h);
else
# endif
{
@@ -877,7 +876,7 @@
if (s->new_width != s->width || s->new_height != s->height) {
s->width = s->new_width;
s->height = s->new_height;
- qemu_console_resize(s->console, s->width, s->height);
+ qemu_console_resize(s->ds, s->width, s->height);
s->invalidated = 1;
}
}
@@ -915,7 +914,7 @@
s->width = -1;
s->height = -1;
s->svgaid = SVGA_ID;
- s->depth = ds_get_bits_per_pixel(s->ds) ? ds_get_bits_per_pixel(s->ds) : 24;
+ s->depth = 24;
s->bypp = (s->depth + 7) >> 3;
s->cursor.on = 0;
s->redraw_fifo_first = 0;
@@ -1110,11 +1109,10 @@
return 0;
}
-static void vmsvga_init(struct vmsvga_state_s *s, DisplayState *ds,
+static void vmsvga_init(struct vmsvga_state_s *s,
uint8_t *vga_ram_base, unsigned long vga_ram_offset,
int vga_ram_size)
{
- s->ds = ds;
s->vram = vga_ram_base;
s->vram_size = vga_ram_size;
s->vram_offset = vga_ram_offset;
@@ -1125,15 +1123,15 @@
vmsvga_reset(s);
#ifdef EMBED_STDVGA
- vga_common_init((VGAState *) s, ds,
+ vga_common_init((VGAState *) s,
vga_ram_base, vga_ram_offset, vga_ram_size);
vga_init((VGAState *) s);
#endif
- s->console = graphic_console_init(ds, vmsvga_update_display,
- vmsvga_invalidate_display,
- vmsvga_screen_dump,
- vmsvga_text_update, s);
+ s->ds = graphic_console_init(vmsvga_update_display,
+ vmsvga_invalidate_display,
+ vmsvga_screen_dump,
+ vmsvga_text_update, s);
#ifdef CONFIG_BOCHS_VBE
/* XXX: use optimized standard vga accesses */
@@ -1213,7 +1211,7 @@
#define PCI_CLASS_SUB_VGA 0x00
#define PCI_CLASS_HEADERTYPE_00h 0x00
-void pci_vmsvga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base,
+void pci_vmsvga_init(PCIBus *bus, uint8_t *vga_ram_base,
unsigned long vga_ram_offset, int vga_ram_size)
{
struct pci_vmsvga_state_s *s;
@@ -1243,7 +1241,7 @@
pci_register_io_region(&s->card, 1, vga_ram_size,
PCI_ADDRESS_SPACE_MEM_PREFETCH, pci_vmsvga_map_mem);
- vmsvga_init(&s->chip, ds, vga_ram_base, vga_ram_offset, vga_ram_size);
+ vmsvga_init(&s->chip, vga_ram_base, vga_ram_offset, vga_ram_size);
register_savevm("vmware_vga", 0, 0, pci_vmsvga_save, pci_vmsvga_load, s);
}
Modified: trunk/qemu-char.c
===================================================================
--- trunk/qemu-char.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/qemu-char.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -2128,10 +2128,10 @@
CharDriverState *chr;
if (!strcmp(filename, "vc")) {
- chr = text_console_init(&display_state, 0);
+ chr = text_console_init(get_displaystate(), 0);
} else
if (strstart(filename, "vc:", &p)) {
- chr = text_console_init(&display_state, p);
+ chr = text_console_init(get_displaystate(), p);
} else
if (!strcmp(filename, "null")) {
chr = qemu_chr_open_null();
Modified: trunk/sysemu.h
===================================================================
--- trunk/sysemu.h 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/sysemu.h 2009-01-16 19:04:14 UTC (rev 6344)
@@ -101,7 +101,6 @@
extern int semihosting_enabled;
extern int old_param;
extern const char *bootp_filename;
-extern DisplayState display_state;
#ifdef USE_KQEMU
extern int kqemu_allowed;
Modified: trunk/vl.c
===================================================================
--- trunk/vl.c 2009-01-16 18:13:32 UTC (rev 6343)
+++ trunk/vl.c 2009-01-16 19:04:14 UTC (rev 6344)
@@ -187,7 +187,7 @@
int nb_drives;
static int vga_ram_size;
enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB;
-DisplayState display_state;
+static DisplayState *display_state;
int nographic;
static int curses;
static int sdl;
@@ -2756,6 +2756,23 @@
}
/***********************************************************/
+/* register display */
+
+void register_displaystate(DisplayState *ds)
+{
+ DisplayState **s;
+ s = &display_state;
+ while (*s != NULL)
+ s = &(*s)->next;
+ ds->next = NULL;
+ *s = ds;
+}
+
+DisplayState *get_displaystate(void)
+{
+ return display_state;
+}
+
/* dumb display */
static void dumb_update(DisplayState *ds, int x, int y, int w, int h)
@@ -4502,7 +4519,7 @@
const char *initrd_filename;
const char *kernel_filename, *kernel_cmdline;
const char *boot_devices = "";
- DisplayState *ds = &display_state;
+ DisplayState *ds;
DisplayChangeListener *dcl;
int cyls, heads, secs, translation;
const char *net_clients[MAX_NET_CLIENTS];
@@ -5414,9 +5431,63 @@
register_savevm("timer", 0, 2, timer_save, timer_load, NULL);
register_savevm_live("ram", 0, 3, ram_save_live, NULL, ram_load, NULL);
+#ifndef _WIN32
+ /* must be after terminal init, SDL library changes signal handlers */
+ termsig_setup();
+#endif
+
+ /* Maintain compatibility with multiple stdio monitors */
+ if (!strcmp(monitor_device,"stdio")) {
+ for (i = 0; i < MAX_SERIAL_PORTS; i++) {
+ const char *devname = serial_devices[i];
+ if (devname && !strcmp(devname,"mon:stdio")) {
+ monitor_device = NULL;
+ break;
+ } else if (devname && !strcmp(devname,"stdio")) {
+ monitor_device = NULL;
+ serial_devices[i] = "mon:stdio";
+ break;
+ }
+ }
+ }
+
+ if (kvm_enabled()) {
+ int ret;
+
+ ret = kvm_init(smp_cpus);
+ if (ret < 0) {
+ fprintf(stderr, "failed to initialize KVM\n");
+ exit(1);
+ }
+ }
+
+ machine->init(ram_size, vga_ram_size, boot_devices,
+ kernel_filename, kernel_cmdline, initrd_filename, cpu_model);
+
+ /* Set KVM's vcpu state to qemu's initial CPUState. */
+ if (kvm_enabled()) {
+ int ret;
+
+ ret = kvm_sync_vcpus();
+ if (ret < 0) {
+ fprintf(stderr, "failed to initialize vcpus\n");
+ exit(1);
+ }
+ }
+
+ /* init USB devices */
+ if (usb_enabled) {
+ for(i = 0; i < usb_devices_index; i++) {
+ if (usb_device_add(usb_devices[i]) < 0) {
+ fprintf(stderr, "Warning: could not add USB device %s\n",
+ usb_devices[i]);
+ }
+ }
+ }
+
+ /* just use the first displaystate for the moment */
+ ds = display_state;
/* terminal init */
- memset(&display_state, 0, sizeof(display_state));
- ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
if (nographic) {
if (curses) {
fprintf(stderr, "fatal: -nographic can't be used with -curses\n");
@@ -5448,25 +5519,16 @@
}
}
dpy_resize(ds);
-#ifndef _WIN32
- /* must be after terminal init, SDL library changes signal handlers */
- termsig_setup();
-#endif
- /* Maintain compatibility with multiple stdio monitors */
- if (!strcmp(monitor_device,"stdio")) {
- for (i = 0; i < MAX_SERIAL_PORTS; i++) {
- const char *devname = serial_devices[i];
- if (devname && !strcmp(devname,"mon:stdio")) {
- monitor_device = NULL;
- break;
- } else if (devname && !strcmp(devname,"stdio")) {
- monitor_device = NULL;
- serial_devices[i] = "mon:stdio";
- break;
- }
+ dcl = ds->listeners;
+ while (dcl != NULL) {
+ if (dcl->dpy_refresh != NULL) {
+ ds->gui_timer = qemu_new_timer(rt_clock, gui_update, ds);
+ qemu_mod_timer(ds->gui_timer, qemu_get_clock(rt_clock));
}
+ dcl = dcl->next;
}
+
if (monitor_device) {
monitor_hd = qemu_chr_open("monitor", monitor_device);
if (!monitor_hd) {
@@ -5524,48 +5586,6 @@
}
}
- if (kvm_enabled()) {
- int ret;
-
- ret = kvm_init(smp_cpus);
- if (ret < 0) {
- fprintf(stderr, "failed to initialize KVM\n");
- exit(1);
- }
- }
-
- machine->init(ram_size, vga_ram_size, boot_devices, ds,
- kernel_filename, kernel_cmdline, initrd_filename, cpu_model);
-
- /* Set KVM's vcpu state to qemu's initial CPUState. */
- if (kvm_enabled()) {
- int ret;
-
- ret = kvm_sync_vcpus();
- if (ret < 0) {
- fprintf(stderr, "failed to initialize vcpus\n");
- exit(1);
- }
- }
-
- /* init USB devices */
- if (usb_enabled) {
- for(i = 0; i < usb_devices_index; i++) {
- if (usb_device_add(usb_devices[i]) < 0) {
- fprintf(stderr, "Warning: could not add USB device %s\n",
- usb_devices[i]);
- }
- }
- }
-
- dcl = ds->listeners;
- while (dcl != NULL) {
- if (dcl->dpy_refresh != NULL) {
- display_state.gui_timer = qemu_new_timer(rt_clock, gui_update, &display_state);
- qemu_mod_timer(display_state.gui_timer, qemu_get_clock(rt_clock));
- }
- dcl = dcl->next;
- }
#ifdef CONFIG_GDBSTUB
if (use_gdbstub) {
/* XXX: use standard host:port notation and modify options
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-16 19:04 [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini) Anthony Liguori
@ 2009-01-18 12:54 ` Shin-ichiro KAWASAKI
2009-01-18 14:37 ` Aurelien Jarno
2009-01-18 14:48 ` [PATCH] Adds null check for DisplayStatus (wasRe: " Shin-ichiro KAWASAKI
2009-02-09 11:38 ` Riku Voipio
1 sibling, 2 replies; 19+ messages in thread
From: Shin-ichiro KAWASAKI @ 2009-01-18 12:54 UTC (permalink / raw)
To: qemu-devel
Hi.
Anthony Liguori wrote:
> Revision: 6344
> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6344
> Author: aliguori
> Date: 2009-01-16 19:04:14 +0000 (Fri, 16 Jan 2009)
>
> Log Message:
> -----------
> graphical_console_init change (Stefano Stabellini)
>
(snip)
> Modified: trunk/vl.c
> ===================================================================
> --- trunk/vl.c 2009-01-16 18:13:32 UTC (rev 6343)
> +++ trunk/vl.c 2009-01-16 19:04:14 UTC (rev 6344)
(snip)
> + /* just use the first displaystate for the moment */
> + ds = display_state;
> /* terminal init */
> - memset(&display_state, 0, sizeof(display_state));
> - ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
> if (nographic) {
> if (curses) {
> fprintf(stderr, "fatal: -nographic can't be used with -curses\n");
This commit seems to cause segmentation fault for boards which has no graphics
display. I saw the fault when I working with my SE7750 board support patch, and
invoking with -nographic options. The fault happens in dump_display_init(ds)
within the 'if (nographic)' block quoted above. The argument ds is NULL because
no graphic board initialize it, I guess. Some null check for ds or dummy ds might
be needed, for such cases.
Regards,
Shin-ichiro KAWASAKI
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-18 12:54 ` Shin-ichiro KAWASAKI
@ 2009-01-18 14:37 ` Aurelien Jarno
2009-01-18 14:48 ` [PATCH] Adds null check for DisplayStatus (wasRe: " Shin-ichiro KAWASAKI
1 sibling, 0 replies; 19+ messages in thread
From: Aurelien Jarno @ 2009-01-18 14:37 UTC (permalink / raw)
To: qemu-devel
On Sun, Jan 18, 2009 at 09:54:19PM +0900, Shin-ichiro KAWASAKI wrote:
> Hi.
>
> Anthony Liguori wrote:
>> Revision: 6344
>> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6344
>> Author: aliguori
>> Date: 2009-01-16 19:04:14 +0000 (Fri, 16 Jan 2009)
>>
>> Log Message:
>> -----------
>> graphical_console_init change (Stefano Stabellini)
>>
> (snip)
>
>> Modified: trunk/vl.c
>> ===================================================================
>> --- trunk/vl.c 2009-01-16 18:13:32 UTC (rev 6343)
>> +++ trunk/vl.c 2009-01-16 19:04:14 UTC (rev 6344)
> (snip)
>> + /* just use the first displaystate for the moment */
>> + ds = display_state;
>> /* terminal init */
>> - memset(&display_state, 0, sizeof(display_state));
>> - ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
>> if (nographic) {
>> if (curses) {
>> fprintf(stderr, "fatal: -nographic can't be used with -curses\n");
>
> This commit seems to cause segmentation fault for boards which has no graphics
> display. I saw the fault when I working with my SE7750 board support patch, and
> invoking with -nographic options. The fault happens in
> dump_display_init(ds) within the 'if (nographic)' block quoted above.
> The argument ds is NULL because
> no graphic board initialize it, I guess. Some null check for ds or dummy ds might
> be needed, for such cases.
>
This is reproducible with other machines (like standard pc) using -vga
none.
--
.''`. Aurelien Jarno | GPG: 1024D/F1BCDB73
: :' : Debian developer | Electrical Engineer
`. `' aurel32@debian.org | aurelien@aurel32.net
`- people.debian.org/~aurel32 | www.aurel32.net
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-18 12:54 ` Shin-ichiro KAWASAKI
2009-01-18 14:37 ` Aurelien Jarno
@ 2009-01-18 14:48 ` Shin-ichiro KAWASAKI
2009-01-19 11:39 ` Stefano Stabellini
1 sibling, 1 reply; 19+ messages in thread
From: Shin-ichiro KAWASAKI @ 2009-01-18 14:48 UTC (permalink / raw)
To: qemu-devel
Shin-ichiro KAWASAKI wrote:
> Hi.
>
> Anthony Liguori wrote:
>> Revision: 6344
>> http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=6344
>> Author: aliguori
>> Date: 2009-01-16 19:04:14 +0000 (Fri, 16 Jan 2009)
>>
>> Log Message:
>> -----------
>> graphical_console_init change (Stefano Stabellini)
>>
> (snip)
>
>> Modified: trunk/vl.c
>> ===================================================================
>> --- trunk/vl.c 2009-01-16 18:13:32 UTC (rev 6343)
>> +++ trunk/vl.c 2009-01-16 19:04:14 UTC (rev 6344)
> (snip)
>> + /* just use the first displaystate for the moment */
>> + ds = display_state;
>> /* terminal init */
>> - memset(&display_state, 0, sizeof(display_state));
>> - ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
>> if (nographic) {
>> if (curses) {
>> fprintf(stderr, "fatal: -nographic can't be used with
>> -curses\n");
>
> This commit seems to cause segmentation fault for boards which has no
> graphics
> display. I saw the fault when I working with my SE7750 board support
> patch, and
> invoking with -nographic options. The fault happens in
> dump_display_init(ds) within the 'if (nographic)' block quoted above.
> The argument ds is NULL because
> no graphic board initialize it, I guess. Some null check for ds or
> dummy ds might
> be needed, for such cases.
I'm sending the patch which solves the problem above.
Could anyone evaluate it?
Regards,
Shin-ichiro KAWASAKI
Signed-off-by: Shin-ichiro KAWASAKI <kawasaki@juno.dti.ne.jp>
Index: trunk/vl.c
===================================================================
--- trunk/vl.c (revision 6365)
+++ trunk/vl.c (working copy)
@@ -5544,7 +5544,8 @@
exit(1);
}
/* nearly nothing to do */
- dumb_display_init(ds);
+ if (ds)
+ dumb_display_init(ds);
} else {
#if defined(CONFIG_CURSES)
if (curses) {
@@ -5568,18 +5569,21 @@
#endif
}
}
- dpy_resize(ds);
+ if (ds) {
+ dpy_resize(ds);
- dcl = ds->listeners;
- while (dcl != NULL) {
- if (dcl->dpy_refresh != NULL) {
- ds->gui_timer = qemu_new_timer(rt_clock, gui_update, ds);
- qemu_mod_timer(ds->gui_timer, qemu_get_clock(rt_clock));
- }
- dcl = dcl->next;
+ dcl = ds->listeners;
+ while (dcl != NULL) {
+ if (dcl->dpy_refresh != NULL) {
+ ds->gui_timer = qemu_new_timer(rt_clock, gui_update, ds);
+ qemu_mod_timer(ds->gui_timer, qemu_get_clock(rt_clock));
+ }
+ dcl = dcl->next;
+ }
}
- text_consoles_set_display(display_state);
+ if (display_state)
+ text_consoles_set_display(display_state);
if (monitor_device && monitor_hd)
monitor_init(monitor_hd, !nographic);
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-18 14:48 ` [PATCH] Adds null check for DisplayStatus (wasRe: " Shin-ichiro KAWASAKI
@ 2009-01-19 11:39 ` Stefano Stabellini
2009-01-19 15:26 ` Shin-ichiro KAWASAKI
2009-01-19 16:34 ` [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini) Anthony Liguori
0 siblings, 2 replies; 19+ messages in thread
From: Stefano Stabellini @ 2009-01-19 11:39 UTC (permalink / raw)
To: qemu-devel
Shin-ichiro KAWASAKI wrote:
> I'm sending the patch which solves the problem above.
> Could anyone evaluate it?
>
Thanks for spotting the bug and your work on a patch!
However I think the following fix is cleaner: we do not need a
dumb_display_init that creates an empty DisplayChangeListener any more.
We do need a dumb_display_init that allocates a zeroed DisplayState
structure if none else does it.
Please let me know if it also fixes you problem.
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
---
diff --git a/vl.c b/vl.c
index bfacdcf..63d954b 100644
--- a/vl.c
+++ b/vl.c
@@ -2775,25 +2775,10 @@ DisplayState *get_displaystate(void)
/* dumb display */
-static void dumb_update(DisplayState *ds, int x, int y, int w, int h)
+static void dumb_display_init(void)
{
-}
-
-static void dumb_resize(DisplayState *ds)
-{
-}
-
-static void dumb_display_init(DisplayState *ds)
-{
- DisplayChangeListener *dcl = qemu_mallocz(sizeof(DisplayChangeListener));
- if (!dcl)
- exit(1);
- dcl->dpy_update = dumb_update;
- dcl->dpy_resize = dumb_resize;
- dcl->dpy_refresh = NULL;
- dcl->idle = 1;
- dcl->gui_timer_interval = 500;
- register_displaychangelistener(ds, dcl);
+ DisplayState *ds = qemu_mallocz(sizeof(DisplayState));
+ register_displaystate(ds);
}
/***********************************************************/
@@ -5535,6 +5520,8 @@ int main(int argc, char **argv, char **envp)
}
}
+ if (!display_state)
+ dumb_display_init();
/* just use the first displaystate for the moment */
ds = display_state;
/* terminal init */
@@ -5543,8 +5530,6 @@ int main(int argc, char **argv, char **envp)
fprintf(stderr, "fatal: -nographic can't be used with -curses\n");
exit(1);
}
- /* nearly nothing to do */
- dumb_display_init(ds);
} else {
#if defined(CONFIG_CURSES)
if (curses) {
@@ -5563,8 +5548,6 @@ int main(int argc, char **argv, char **envp)
sdl_display_init(ds, full_screen, no_frame);
#elif defined(CONFIG_COCOA)
cocoa_display_init(ds, full_screen);
-#else
- dumb_display_init(ds);
#endif
}
}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-19 11:39 ` Stefano Stabellini
@ 2009-01-19 15:26 ` Shin-ichiro KAWASAKI
2009-01-19 15:31 ` Stefano Stabellini
2009-01-19 16:34 ` [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini) Anthony Liguori
1 sibling, 1 reply; 19+ messages in thread
From: Shin-ichiro KAWASAKI @ 2009-01-19 15:26 UTC (permalink / raw)
To: qemu-devel
Stefano Stabellini wrote:
> Shin-ichiro KAWASAKI wrote:
>
>> I'm sending the patch which solves the problem above.
>> Could anyone evaluate it?
>>
>
>
>
> Thanks for spotting the bug and your work on a patch!
>
> However I think the following fix is cleaner: we do not need a
> dumb_display_init that creates an empty DisplayChangeListener any more.
> We do need a dumb_display_init that allocates a zeroed DisplayState
> structure if none else does it.
>
> Please let me know if it also fixes you problem.
It solves my problem finely. Thank you!
Tested-by: Shin-ichiro KAWASAKI <kawasaki@juno.dti.ne.jp>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>
> ---
>
> diff --git a/vl.c b/vl.c
> index bfacdcf..63d954b 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2775,25 +2775,10 @@ DisplayState *get_displaystate(void)
>
> /* dumb display */
>
> -static void dumb_update(DisplayState *ds, int x, int y, int w, int h)
> +static void dumb_display_init(void)
> {
> -}
> -
> -static void dumb_resize(DisplayState *ds)
> -{
> -}
> -
> -static void dumb_display_init(DisplayState *ds)
> -{
> - DisplayChangeListener *dcl = qemu_mallocz(sizeof(DisplayChangeListener));
> - if (!dcl)
> - exit(1);
> - dcl->dpy_update = dumb_update;
> - dcl->dpy_resize = dumb_resize;
> - dcl->dpy_refresh = NULL;
> - dcl->idle = 1;
> - dcl->gui_timer_interval = 500;
> - register_displaychangelistener(ds, dcl);
> + DisplayState *ds = qemu_mallocz(sizeof(DisplayState));
> + register_displaystate(ds);
> }
>
> /***********************************************************/
> @@ -5535,6 +5520,8 @@ int main(int argc, char **argv, char **envp)
> }
> }
>
> + if (!display_state)
> + dumb_display_init();
> /* just use the first displaystate for the moment */
> ds = display_state;
> /* terminal init */
> @@ -5543,8 +5530,6 @@ int main(int argc, char **argv, char **envp)
> fprintf(stderr, "fatal: -nographic can't be used with -curses\n");
> exit(1);
> }
> - /* nearly nothing to do */
> - dumb_display_init(ds);
> } else {
> #if defined(CONFIG_CURSES)
> if (curses) {
> @@ -5563,8 +5548,6 @@ int main(int argc, char **argv, char **envp)
> sdl_display_init(ds, full_screen, no_frame);
> #elif defined(CONFIG_COCOA)
> cocoa_display_init(ds, full_screen);
> -#else
> - dumb_display_init(ds);
> #endif
> }
> }
>
>
>
>
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-19 15:26 ` Shin-ichiro KAWASAKI
@ 2009-01-19 15:31 ` Stefano Stabellini
2009-01-19 16:08 ` Anthony Liguori
0 siblings, 1 reply; 19+ messages in thread
From: Stefano Stabellini @ 2009-01-19 15:31 UTC (permalink / raw)
To: qemu-devel
Shin-ichiro KAWASAKI wrote:
> Stefano Stabellini wrote:
>> Shin-ichiro KAWASAKI wrote:
>>
>>> I'm sending the patch which solves the problem above.
>>> Could anyone evaluate it?
>>>
>>
>>
>>
>> Thanks for spotting the bug and your work on a patch!
>>
>> However I think the following fix is cleaner: we do not need a
>> dumb_display_init that creates an empty DisplayChangeListener any more.
>> We do need a dumb_display_init that allocates a zeroed DisplayState
>> structure if none else does it.
>>
>> Please let me know if it also fixes you problem.
>
> It solves my problem finely. Thank you!
>
> Tested-by: Shin-ichiro KAWASAKI <kawasaki@juno.dti.ne.jp>
>
Thanks for testing it.
Anthony, before committing this patch, check out the other equivalent
patch I sent as I reply to 'add a -vga none cli option'.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-19 15:31 ` Stefano Stabellini
@ 2009-01-19 16:08 ` Anthony Liguori
2009-01-19 16:19 ` Stefano Stabellini
0 siblings, 1 reply; 19+ messages in thread
From: Anthony Liguori @ 2009-01-19 16:08 UTC (permalink / raw)
To: qemu-devel
Stefano Stabellini wrote:
> Thanks for testing it.
> Anthony, before committing this patch, check out the other equivalent
> patch I sent as I reply to 'add a -vga none cli option'.
>
Hi Stefan,
Are you working on a fix for the SEGV when not using -nographic? If I run:
qemu -hda image.foo -snapshot -vga none
I get a segv b/c SDL_SetVideoMode() uses ds_get_width/height and
ds->surface == NULL.
Regards,
Anthony Liguori
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-19 16:08 ` Anthony Liguori
@ 2009-01-19 16:19 ` Stefano Stabellini
2009-01-19 19:07 ` Anthony Liguori
0 siblings, 1 reply; 19+ messages in thread
From: Stefano Stabellini @ 2009-01-19 16:19 UTC (permalink / raw)
To: qemu-devel
Anthony Liguori wrote:
> Stefano Stabellini wrote:
>> Thanks for testing it.
>> Anthony, before committing this patch, check out the other equivalent
>> patch I sent as I reply to 'add a -vga none cli option'.
>>
>
> Hi Stefan,
>
> Are you working on a fix for the SEGV when not using -nographic? If I run:
>
> qemu -hda image.foo -snapshot -vga none
>
> I get a segv b/c SDL_SetVideoMode() uses ds_get_width/height and
> ds->surface == NULL.
>
Yes, the complete fix is the following, it also solves the other bug that
arises when you set -vga none but you do not specify -nographic:
diff --git a/vl.c b/vl.c
index bfacdcf..b356323 100644
--- a/vl.c
+++ b/vl.c
@@ -2774,26 +2774,17 @@ DisplayState *get_displaystate(void)
}
/* dumb display */
-
-static void dumb_update(DisplayState *ds, int x, int y, int w, int h)
+static void dumb_display_init(void)
{
-}
-
-static void dumb_resize(DisplayState *ds)
-{
-}
+ DisplayState *ds;
-static void dumb_display_init(DisplayState *ds)
-{
- DisplayChangeListener *dcl = qemu_mallocz(sizeof(DisplayChangeListener));
- if (!dcl)
+ ds = (DisplayState *) qemu_mallocz(sizeof(DisplayState));
+ if (ds == NULL) {
+ fprintf(stderr, "dumb_display_init: DisplayState allocation failed\n");
exit(1);
- dcl->dpy_update = dumb_update;
- dcl->dpy_resize = dumb_resize;
- dcl->dpy_refresh = NULL;
- dcl->idle = 1;
- dcl->gui_timer_interval = 500;
- register_displaychangelistener(ds, dcl);
+ }
+ ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
+ register_displaystate(ds);
}
/***********************************************************/
@@ -5535,6 +5526,8 @@ int main(int argc, char **argv, char **envp)
}
}
+ if (!display_state)
+ dumb_display_init();
/* just use the first displaystate for the moment */
ds = display_state;
/* terminal init */
@@ -5543,8 +5536,6 @@ int main(int argc, char **argv, char **envp)
fprintf(stderr, "fatal: -nographic can't be used with -curses\n");
exit(1);
}
- /* nearly nothing to do */
- dumb_display_init(ds);
} else {
#if defined(CONFIG_CURSES)
if (curses) {
@@ -5563,8 +5554,6 @@ int main(int argc, char **argv, char **envp)
sdl_display_init(ds, full_screen, no_frame);
#elif defined(CONFIG_COCOA)
cocoa_display_init(ds, full_screen);
-#else
- dumb_display_init(ds);
#endif
}
}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-19 11:39 ` Stefano Stabellini
2009-01-19 15:26 ` Shin-ichiro KAWASAKI
@ 2009-01-19 16:34 ` Anthony Liguori
1 sibling, 0 replies; 19+ messages in thread
From: Anthony Liguori @ 2009-01-19 16:34 UTC (permalink / raw)
To: qemu-devel
Stefano Stabellini wrote:
> Shin-ichiro KAWASAKI wrote:
>
>
>> I'm sending the patch which solves the problem above.
>> Could anyone evaluate it?
>>
>>
>
>
>
> Thanks for spotting the bug and your work on a patch!
>
> However I think the following fix is cleaner: we do not need a
> dumb_display_init that creates an empty DisplayChangeListener any more.
> We do need a dumb_display_init that allocates a zeroed DisplayState
> structure if none else does it.
>
> Please let me know if it also fixes you problem.
>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>
Applied. Thanks.
Regards,
Anthony Liguori
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-19 16:19 ` Stefano Stabellini
@ 2009-01-19 19:07 ` Anthony Liguori
2009-01-20 10:53 ` [Qemu-devel] [PATCH] Adds null check for DisplayStatus Stefano Stabellini
0 siblings, 1 reply; 19+ messages in thread
From: Anthony Liguori @ 2009-01-19 19:07 UTC (permalink / raw)
To: qemu-devel
Stefano Stabellini wrote:
> Anthony Liguori wrote:
>
>
>> Stefano Stabellini wrote:
>>
>>> Thanks for testing it.
>>> Anthony, before committing this patch, check out the other equivalent
>>> patch I sent as I reply to 'add a -vga none cli option'.
>>>
>>>
>> Hi Stefan,
>>
>> Are you working on a fix for the SEGV when not using -nographic? If I run:
>>
>> qemu -hda image.foo -snapshot -vga none
>>
>> I get a segv b/c SDL_SetVideoMode() uses ds_get_width/height and
>> ds->surface == NULL.
>>
>>
>
>
>
> Yes, the complete fix is the following, it also solves the other bug that
> arises when you set -vga none but you do not specify -nographic:
>
>
I already applied your first. Can you send a diff against SVN along
with a Signed-off-by line?
Thanks,
Anthony Liguori
>
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] [PATCH] Adds null check for DisplayStatus
2009-01-19 19:07 ` Anthony Liguori
@ 2009-01-20 10:53 ` Stefano Stabellini
2009-01-20 15:56 ` Gerd Hoffmann
` (2 more replies)
0 siblings, 3 replies; 19+ messages in thread
From: Stefano Stabellini @ 2009-01-20 10:53 UTC (permalink / raw)
To: qemu-devel
Allocate a DisplaySurface in dumb_display_init if none else does it.
The DisplaySurface will be used for the qemu monitor, serial and
parallel ports, etc.
Signed-off-by: Andrew May <acmay@acmay.homeip.net>
Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
diff --git a/vl.c b/vl.c
index 63d954b..b246e47 100644
--- a/vl.c
+++ b/vl.c
@@ -2778,6 +2778,11 @@ DisplayState *get_displaystate(void)
static void dumb_display_init(void)
{
DisplayState *ds = qemu_mallocz(sizeof(DisplayState));
+ if (ds == NULL) {
+ fprintf(stderr, "dumb_display_init: DisplayState allocation failed\n");
+ exit(1);
+ }
+ ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
register_displaystate(ds);
}
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH] Adds null check for DisplayStatus
2009-01-20 10:53 ` [Qemu-devel] [PATCH] Adds null check for DisplayStatus Stefano Stabellini
@ 2009-01-20 15:56 ` Gerd Hoffmann
2009-01-20 16:36 ` Stefano Stabellini
2009-01-21 11:06 ` [Qemu-devel] " Stefano Stabellini
2009-01-21 18:59 ` [Qemu-devel] " Anthony Liguori
2 siblings, 1 reply; 19+ messages in thread
From: Gerd Hoffmann @ 2009-01-20 15:56 UTC (permalink / raw)
To: qemu-devel
Stefano Stabellini wrote:
> Allocate a DisplaySurface in dumb_display_init if none else does it.
> The DisplaySurface will be used for the qemu monitor, serial and
> parallel ports, etc.
Ah. That one should fix the "-vga none -vnc :0" crashes, right?
Some more displaystate questions:
I'm sitting here with a initialization order issue I'm not sure how to
tackle best. xenfb calls graphics_console_init() once the frontend and
backend finished the handshake, usually a few seconds after the guest
started running. In case the guest has no framebuffer frontend driver
the graphics_console_init() call doesn't happen at all. So it behaves
like a hot-plugged graphics card.
With the new displaystate allocation rules and dumb_display_init() in
place I will end up with *two* displaystates in case I keep the setup
logic this way. Is that going to work? There is a new
register_displaystate() which maintains a linked list of displaystates,
so it looks like it might work? Or is this work in progress?
What do you suggest to do? What other patches do you have in the queue
I maybe should know about when adapting xenfb? Will the text consoles
(monitor, serial line, ...) continue to hitchhike on the displaystate of
the graphics display?
cheers,
Gerd
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH] Adds null check for DisplayStatus
2009-01-20 15:56 ` Gerd Hoffmann
@ 2009-01-20 16:36 ` Stefano Stabellini
0 siblings, 0 replies; 19+ messages in thread
From: Stefano Stabellini @ 2009-01-20 16:36 UTC (permalink / raw)
To: qemu-devel
Gerd Hoffmann wrote:
> Stefano Stabellini wrote:
>> Allocate a DisplaySurface in dumb_display_init if none else does it.
>> The DisplaySurface will be used for the qemu monitor, serial and
>> parallel ports, etc.
>
> Ah. That one should fix the "-vga none -vnc :0" crashes, right?
Yes.
> Some more displaystate questions:
>
> I'm sitting here with a initialization order issue I'm not sure how to
> tackle best. xenfb calls graphics_console_init() once the frontend and
> backend finished the handshake, usually a few seconds after the guest
> started running. In case the guest has no framebuffer frontend driver
> the graphics_console_init() call doesn't happen at all. So it behaves
> like a hot-plugged graphics card.
>
> With the new displaystate allocation rules and dumb_display_init() in
> place I will end up with *two* displaystates in case I keep the setup
> logic this way. Is that going to work? There is a new
> register_displaystate() which maintains a linked list of displaystates,
> so it looks like it might work? Or is this work in progress?
>
> What do you suggest to do? What other patches do you have in the queue
> I maybe should know about when adapting xenfb? Will the text consoles
> (monitor, serial line, ...) continue to hitchhike on the displaystate of
> the graphics display?
>
The goal is to have each text console on a different displaystate, but I
don't have any patch to accomplish this at the moment.
In your case the problem happens when you have to call
graphics_console_init() after dumb_display_init(): currently two
DisplayState are not going to work properly (they could work if you
manually hook the new DisplayState to another Sdl on Vnc server but
certainly not on the same one).
There are many workarounds to this issue, none of them particularly
pretty. Probably the best thing you could do at the moment is calling
graphic_console_init() in any case in xenfb_new whether you are going to
use it or not (that is more or less the same thing that
dumb_display_init does).
^ permalink raw reply [flat|nested] 19+ messages in thread
* [Qemu-devel] Re: [PATCH] Adds null check for DisplayStatus
2009-01-20 10:53 ` [Qemu-devel] [PATCH] Adds null check for DisplayStatus Stefano Stabellini
2009-01-20 15:56 ` Gerd Hoffmann
@ 2009-01-21 11:06 ` Stefano Stabellini
2009-01-21 18:59 ` [Qemu-devel] " Anthony Liguori
2 siblings, 0 replies; 19+ messages in thread
From: Stefano Stabellini @ 2009-01-21 11:06 UTC (permalink / raw)
To: qemu-devel
This patch got lost.
Stefano Stabellini wrote:
> Allocate a DisplaySurface in dumb_display_init if none else does it.
> The DisplaySurface will be used for the qemu monitor, serial and
> parallel ports, etc.
>
> Signed-off-by: Andrew May <acmay@acmay.homeip.net>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>
> diff --git a/vl.c b/vl.c
> index 63d954b..b246e47 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2778,6 +2778,11 @@ DisplayState *get_displaystate(void)
> static void dumb_display_init(void)
> {
> DisplayState *ds = qemu_mallocz(sizeof(DisplayState));
> + if (ds == NULL) {
> + fprintf(stderr, "dumb_display_init: DisplayState allocation failed\n");
> + exit(1);
> + }
> + ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
> register_displaystate(ds);
> }
>
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [PATCH] Adds null check for DisplayStatus
2009-01-20 10:53 ` [Qemu-devel] [PATCH] Adds null check for DisplayStatus Stefano Stabellini
2009-01-20 15:56 ` Gerd Hoffmann
2009-01-21 11:06 ` [Qemu-devel] " Stefano Stabellini
@ 2009-01-21 18:59 ` Anthony Liguori
2 siblings, 0 replies; 19+ messages in thread
From: Anthony Liguori @ 2009-01-21 18:59 UTC (permalink / raw)
To: qemu-devel
Stefano Stabellini wrote:
> Allocate a DisplaySurface in dumb_display_init if none else does it.
> The DisplaySurface will be used for the qemu monitor, serial and
> parallel ports, etc.
>
> Signed-off-by: Andrew May <acmay@acmay.homeip.net>
> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
>
Applied. Thanks.
Regards,
Anthony Liguori
> diff --git a/vl.c b/vl.c
> index 63d954b..b246e47 100644
> --- a/vl.c
> +++ b/vl.c
> @@ -2778,6 +2778,11 @@ DisplayState *get_displaystate(void)
> static void dumb_display_init(void)
> {
> DisplayState *ds = qemu_mallocz(sizeof(DisplayState));
> + if (ds == NULL) {
> + fprintf(stderr, "dumb_display_init: DisplayState allocation failed\n");
> + exit(1);
> + }
> + ds->surface = qemu_create_displaysurface(640, 480, 32, 640 * 4);
> register_displaystate(ds);
> }
>
>
>
>
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-01-16 19:04 [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini) Anthony Liguori
2009-01-18 12:54 ` Shin-ichiro KAWASAKI
@ 2009-02-09 11:38 ` Riku Voipio
2009-02-09 11:52 ` Stefano Stabellini
2009-02-09 17:00 ` Aurelien Jarno
1 sibling, 2 replies; 19+ messages in thread
From: Riku Voipio @ 2009-02-09 11:38 UTC (permalink / raw)
To: qemu-devel; +Cc: stefano.stabellini
[-- Attachment #1: Type: text/plain, Size: 4066 bytes --]
On Fri, Jan 16, 2009 at 07:04:15PM +0000, Anthony Liguori wrote:
> --- trunk/hw/blizzard.c 2009-01-16 18:13:32 UTC (rev 6343)
> +++ trunk/hw/blizzard.c 2009-01-16 19:04:14 UTC (rev 6344)
> @@ -72,7 +72,6 @@
> uint8_t iformat;
> uint8_t source;
> DisplayState *state;
> - QEMUConsole *console;
> blizzard_fn_t *line_fn_tab[2];
> void *fb;
>
> @@ -896,7 +895,7 @@
>
> if (s->x != ds_get_width(s->state) || s->y != ds_get_height(s->state)) {
> s->invalidate = 1;
> - qemu_console_resize(s->console, s->x, s->y);
> + qemu_console_resize(s->state, s->x, s->y);
> }
>
> if (s->invalidate) {
> @@ -954,11 +953,10 @@
> #define DEPTH 32
> #include "blizzard_template.h"
>
> -void *s1d13745_init(qemu_irq gpio_int, DisplayState *ds)
> +void *s1d13745_init(qemu_irq gpio_int)
> {
> struct blizzard_s *s = (struct blizzard_s *) qemu_mallocz(sizeof(*s));
>
> - s->state = ds;
> s->fb = qemu_malloc(0x180000);
>
> switch (ds_get_bits_per_pixel(s->state)) {
What is this switch going to do after the line removal few lines above?
A quick fix in the end of this message...
> @@ -993,9 +991,9 @@
>
> blizzard_reset(s);
>
> - s->console = graphic_console_init(s->state, blizzard_update_display,
> - blizzard_invalidate_display,
> - blizzard_screen_dump, NULL, s);
> + s->state = graphic_console_init(blizzard_update_display,
> + blizzard_invalidate_display,
> + blizzard_screen_dump, NULL, s);
>
> return s;
> }
From 532ae1dc0dc37ea1e19877ebe3a0ec0dd83c3e05 Mon Sep 17 00:00:00 2001
From: Riku Voipio <riku.voipio@iki.fi>
Date: Mon, 9 Feb 2009 13:08:12 +0200
Subject: [PATCH] Fix displaystate (r6344) regression in blizzard
Testcase:
qemu-system-arm -M n810 -kernel /dev/null -m 130
Without this patch, we get a segfault.
Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
---
hw/blizzard.c | 8 ++++----
hw/nseries.c | 3 ++-
2 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/hw/blizzard.c b/hw/blizzard.c
index 83f13bc..0f68016 100644
--- a/hw/blizzard.c
+++ b/hw/blizzard.c
@@ -959,6 +959,10 @@ void *s1d13745_init(qemu_irq gpio_int)
s->fb = qemu_malloc(0x180000);
+ s->state = graphic_console_init(blizzard_update_display,
+ blizzard_invalidate_display,
+ blizzard_screen_dump, NULL, s);
+
switch (ds_get_bits_per_pixel(s->state)) {
case 0:
s->line_fn_tab[0] = s->line_fn_tab[1] =
@@ -991,9 +995,5 @@ void *s1d13745_init(qemu_irq gpio_int)
blizzard_reset(s);
- s->state = graphic_console_init(blizzard_update_display,
- blizzard_invalidate_display,
- blizzard_screen_dump, NULL, s);
-
return s;
}
diff --git a/hw/nseries.c b/hw/nseries.c
index b4f2951..32aaead 100644
--- a/hw/nseries.c
+++ b/hw/nseries.c
@@ -1273,7 +1273,7 @@ static void n8x0_init(ram_addr_t ram_size, const char *boot_device,
struct n800_s *s = (struct n800_s *) qemu_mallocz(sizeof(*s));
int sdram_size = binfo->ram_size;
int onenandram_size = 0x00010000;
- DisplayState *ds = get_displaystate();
+ DisplayState *ds;
if (ram_size < sdram_size + onenandram_size + OMAP242X_SRAM_SIZE) {
fprintf(stderr, "This architecture uses %i bytes of memory\n",
@@ -1361,6 +1361,7 @@ static void n8x0_init(ram_addr_t ram_size, const char *boot_device,
/* FIXME: We shouldn't really be doing this here. The LCD controller
will set the size once configured, so this just sets an initial
size until the guest activates the display. */
+ ds = get_displaystate();
ds->surface = qemu_resize_displaysurface(ds->surface, 800, 480, 32, 4 * 800);
dpy_resize(ds);
}
--
1.5.6.3
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-02-09 11:38 ` Riku Voipio
@ 2009-02-09 11:52 ` Stefano Stabellini
2009-02-09 17:00 ` Aurelien Jarno
1 sibling, 0 replies; 19+ messages in thread
From: Stefano Stabellini @ 2009-02-09 11:52 UTC (permalink / raw)
To: Riku Voipio; +Cc: qemu-devel@nongnu.org
Riku Voipio wrote:
> What is this switch going to do after the line removal few lines above?
> A quick fix in the end of this message...
This is clearly a search/replace error, my bad.
[snip]
>
> From 532ae1dc0dc37ea1e19877ebe3a0ec0dd83c3e05 Mon Sep 17 00:00:00 2001
> From: Riku Voipio <riku.voipio@iki.fi>
> Date: Mon, 9 Feb 2009 13:08:12 +0200
> Subject: [PATCH] Fix displaystate (r6344) regression in blizzard
>
> Testcase:
>
> qemu-system-arm -M n810 -kernel /dev/null -m 130
>
> Without this patch, we get a segfault.
>
> Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
Your patch seems fine to me.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini)
2009-02-09 11:38 ` Riku Voipio
2009-02-09 11:52 ` Stefano Stabellini
@ 2009-02-09 17:00 ` Aurelien Jarno
1 sibling, 0 replies; 19+ messages in thread
From: Aurelien Jarno @ 2009-02-09 17:00 UTC (permalink / raw)
To: Riku Voipio; +Cc: qemu-devel
> From 532ae1dc0dc37ea1e19877ebe3a0ec0dd83c3e05 Mon Sep 17 00:00:00 2001
> From: Riku Voipio <riku.voipio@iki.fi>
> Date: Mon, 9 Feb 2009 13:08:12 +0200
> Subject: [PATCH] Fix displaystate (r6344) regression in blizzard
>
> Testcase:
>
> qemu-system-arm -M n810 -kernel /dev/null -m 130
>
> Without this patch, we get a segfault.
>
> Signed-off-by: Riku Voipio <riku.voipio@iki.fi>
> ---
> hw/blizzard.c | 8 ++++----
> hw/nseries.c | 3 ++-
> 2 files changed, 6 insertions(+), 5 deletions(-)
Thanks, applied.
> diff --git a/hw/blizzard.c b/hw/blizzard.c
> index 83f13bc..0f68016 100644
> --- a/hw/blizzard.c
> +++ b/hw/blizzard.c
> @@ -959,6 +959,10 @@ void *s1d13745_init(qemu_irq gpio_int)
>
> s->fb = qemu_malloc(0x180000);
>
> + s->state = graphic_console_init(blizzard_update_display,
> + blizzard_invalidate_display,
> + blizzard_screen_dump, NULL, s);
> +
> switch (ds_get_bits_per_pixel(s->state)) {
> case 0:
> s->line_fn_tab[0] = s->line_fn_tab[1] =
> @@ -991,9 +995,5 @@ void *s1d13745_init(qemu_irq gpio_int)
>
> blizzard_reset(s);
>
> - s->state = graphic_console_init(blizzard_update_display,
> - blizzard_invalidate_display,
> - blizzard_screen_dump, NULL, s);
> -
> return s;
> }
> diff --git a/hw/nseries.c b/hw/nseries.c
> index b4f2951..32aaead 100644
> --- a/hw/nseries.c
> +++ b/hw/nseries.c
> @@ -1273,7 +1273,7 @@ static void n8x0_init(ram_addr_t ram_size, const char *boot_device,
> struct n800_s *s = (struct n800_s *) qemu_mallocz(sizeof(*s));
> int sdram_size = binfo->ram_size;
> int onenandram_size = 0x00010000;
> - DisplayState *ds = get_displaystate();
> + DisplayState *ds;
>
> if (ram_size < sdram_size + onenandram_size + OMAP242X_SRAM_SIZE) {
> fprintf(stderr, "This architecture uses %i bytes of memory\n",
> @@ -1361,6 +1361,7 @@ static void n8x0_init(ram_addr_t ram_size, const char *boot_device,
> /* FIXME: We shouldn't really be doing this here. The LCD controller
> will set the size once configured, so this just sets an initial
> size until the guest activates the display. */
> + ds = get_displaystate();
> ds->surface = qemu_resize_displaysurface(ds->surface, 800, 480, 32, 4 * 800);
> dpy_resize(ds);
> }
> --
> 1.5.6.3
>
--
Aurelien Jarno GPG: 1024D/F1BCDB73
aurelien@aurel32.net http://www.aurel32.net
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2009-02-09 17:00 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-01-16 19:04 [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini) Anthony Liguori
2009-01-18 12:54 ` Shin-ichiro KAWASAKI
2009-01-18 14:37 ` Aurelien Jarno
2009-01-18 14:48 ` [PATCH] Adds null check for DisplayStatus (wasRe: " Shin-ichiro KAWASAKI
2009-01-19 11:39 ` Stefano Stabellini
2009-01-19 15:26 ` Shin-ichiro KAWASAKI
2009-01-19 15:31 ` Stefano Stabellini
2009-01-19 16:08 ` Anthony Liguori
2009-01-19 16:19 ` Stefano Stabellini
2009-01-19 19:07 ` Anthony Liguori
2009-01-20 10:53 ` [Qemu-devel] [PATCH] Adds null check for DisplayStatus Stefano Stabellini
2009-01-20 15:56 ` Gerd Hoffmann
2009-01-20 16:36 ` Stefano Stabellini
2009-01-21 11:06 ` [Qemu-devel] " Stefano Stabellini
2009-01-21 18:59 ` [Qemu-devel] " Anthony Liguori
2009-01-19 16:34 ` [PATCH] Adds null check for DisplayStatus (wasRe: [Qemu-devel] [6344] graphical_console_init change (Stefano Stabellini) Anthony Liguori
2009-02-09 11:38 ` Riku Voipio
2009-02-09 11:52 ` Stefano Stabellini
2009-02-09 17:00 ` Aurelien Jarno
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).