Revision 3023f332 hw/tcx.c
b/hw/tcx.c | ||
---|---|---|
36 | 36 |
typedef struct TCXState { |
37 | 37 |
target_phys_addr_t addr; |
38 | 38 |
DisplayState *ds; |
39 |
QEMUConsole *console; |
|
40 | 39 |
uint8_t *vram; |
41 | 40 |
uint32_t *vram24, *cplane; |
42 | 41 |
ram_addr_t vram_offset, vram24_offset, cplane_offset; |
... | ... | |
491 | 490 |
tcx_dummy_writel, |
492 | 491 |
}; |
493 | 492 |
|
494 |
void tcx_init(DisplayState *ds, target_phys_addr_t addr, uint8_t *vram_base,
|
|
493 |
void tcx_init(target_phys_addr_t addr, uint8_t *vram_base, |
|
495 | 494 |
unsigned long vram_offset, int vram_size, int width, int height, |
496 | 495 |
int depth) |
497 | 496 |
{ |
... | ... | |
502 | 501 |
s = qemu_mallocz(sizeof(TCXState)); |
503 | 502 |
if (!s) |
504 | 503 |
return; |
505 |
s->ds = ds; |
|
506 | 504 |
s->addr = addr; |
507 | 505 |
s->vram_offset = vram_offset; |
508 | 506 |
s->width = width; |
... | ... | |
538 | 536 |
s->cplane = (uint32_t *)vram_base; |
539 | 537 |
s->cplane_offset = vram_offset; |
540 | 538 |
cpu_register_physical_memory(addr + 0x0a000000ULL, size, vram_offset); |
541 |
s->console = graphic_console_init(s->ds, tcx24_update_display,
|
|
542 |
tcx24_invalidate_display,
|
|
543 |
tcx24_screen_dump, NULL, s);
|
|
539 |
s->ds = graphic_console_init(tcx24_update_display,
|
|
540 |
tcx24_invalidate_display, |
|
541 |
tcx24_screen_dump, NULL, s); |
|
544 | 542 |
} else { |
545 | 543 |
cpu_register_physical_memory(addr + 0x00300000ULL, TCX_THC_NREGS_8, |
546 | 544 |
dummy_memory); |
547 |
s->console = graphic_console_init(s->ds, tcx_update_display,
|
|
548 |
tcx_invalidate_display,
|
|
549 |
tcx_screen_dump, NULL, s);
|
|
545 |
s->ds = graphic_console_init(tcx_update_display,
|
|
546 |
tcx_invalidate_display, |
|
547 |
tcx_screen_dump, NULL, s); |
|
550 | 548 |
} |
551 | 549 |
// NetBSD writes here even with 8-bit display |
552 | 550 |
cpu_register_physical_memory(addr + 0x00301000ULL, TCX_THC_NREGS_24, |
... | ... | |
555 | 553 |
register_savevm("tcx", addr, 4, tcx_save, tcx_load, s); |
556 | 554 |
qemu_register_reset(tcx_reset, s); |
557 | 555 |
tcx_reset(s); |
558 |
qemu_console_resize(s->console, width, height);
|
|
556 |
qemu_console_resize(s->ds, width, height);
|
|
559 | 557 |
} |
560 | 558 |
|
561 | 559 |
static void tcx_screen_dump(void *opaque, const char *filename) |
Also available in: Unified diff