Commit 0f35920cd8d323f77d553d18e1f4edd7e761aebf
1 parent
7d977de7
io port API change - removed dumb console redraw (not useful)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@662 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
24 additions
and
53 deletions
hw/vga.c
... | ... | @@ -40,9 +40,6 @@ |
40 | 40 | #include <sys/wait.h> |
41 | 41 | #include <netinet/in.h> |
42 | 42 | |
43 | -#define NO_THUNK_TYPE_SIZE | |
44 | -#include "thunk.h" | |
45 | - | |
46 | 43 | #include "cpu.h" |
47 | 44 | #include "exec-all.h" |
48 | 45 | |
... | ... | @@ -260,9 +257,9 @@ static uint8_t expand4to8[16]; |
260 | 257 | VGAState vga_state; |
261 | 258 | int vga_io_memory; |
262 | 259 | |
263 | -static uint32_t vga_ioport_read(CPUState *env, uint32_t addr) | |
260 | +static uint32_t vga_ioport_read(void *opaque, uint32_t addr) | |
264 | 261 | { |
265 | - VGAState *s = &vga_state; | |
262 | + VGAState *s = opaque; | |
266 | 263 | int val, index; |
267 | 264 | |
268 | 265 | /* check port range access depending on color/monochrome mode */ |
... | ... | @@ -356,9 +353,9 @@ static uint32_t vga_ioport_read(CPUState *env, uint32_t addr) |
356 | 353 | return val; |
357 | 354 | } |
358 | 355 | |
359 | -static void vga_ioport_write(CPUState *env, uint32_t addr, uint32_t val) | |
356 | +static void vga_ioport_write(void *opaque, uint32_t addr, uint32_t val) | |
360 | 357 | { |
361 | - VGAState *s = &vga_state; | |
358 | + VGAState *s = opaque; | |
362 | 359 | int index, v; |
363 | 360 | |
364 | 361 | /* check port range access depending on color/monochrome mode */ |
... | ... | @@ -506,9 +503,9 @@ static void vga_ioport_write(CPUState *env, uint32_t addr, uint32_t val) |
506 | 503 | } |
507 | 504 | |
508 | 505 | #ifdef CONFIG_BOCHS_VBE |
509 | -static uint32_t vbe_ioport_read(CPUState *env, uint32_t addr) | |
506 | +static uint32_t vbe_ioport_read(void *opaque, uint32_t addr) | |
510 | 507 | { |
511 | - VGAState *s = &vga_state; | |
508 | + VGAState *s = opaque; | |
512 | 509 | uint32_t val; |
513 | 510 | |
514 | 511 | addr &= 1; |
... | ... | @@ -526,9 +523,9 @@ static uint32_t vbe_ioport_read(CPUState *env, uint32_t addr) |
526 | 523 | return val; |
527 | 524 | } |
528 | 525 | |
529 | -static void vbe_ioport_write(CPUState *env, uint32_t addr, uint32_t val) | |
526 | +static void vbe_ioport_write(void *opaque, uint32_t addr, uint32_t val) | |
530 | 527 | { |
531 | - VGAState *s = &vga_state; | |
528 | + VGAState *s = opaque; | |
532 | 529 | |
533 | 530 | addr &= 1; |
534 | 531 | if (addr == 0) { |
... | ... | @@ -1519,40 +1516,14 @@ static void vga_draw_graphic(VGAState *s, int full_update) |
1519 | 1516 | } |
1520 | 1517 | } |
1521 | 1518 | |
1522 | -/* draw text terminal (very limited, just for simple boot debug | |
1523 | - messages) */ | |
1524 | -static int last_cursor_pos; | |
1525 | - | |
1526 | -void vga_draw_dumb(VGAState *s) | |
1527 | -{ | |
1528 | - int c, i, cursor_pos, eol; | |
1529 | - | |
1530 | - cursor_pos = s->cr[0x0f] | (s->cr[0x0e] << 8); | |
1531 | - eol = 0; | |
1532 | - for(i = last_cursor_pos; i < cursor_pos; i++) { | |
1533 | - /* XXX: should use vga RAM */ | |
1534 | - c = phys_ram_base[0xb8000 + (i) * 2]; | |
1535 | - if (c >= ' ') { | |
1536 | - putchar(c); | |
1537 | - eol = 0; | |
1538 | - } else { | |
1539 | - if (!eol) | |
1540 | - putchar('\n'); | |
1541 | - eol = 1; | |
1542 | - } | |
1543 | - } | |
1544 | - fflush(stdout); | |
1545 | - last_cursor_pos = cursor_pos; | |
1546 | -} | |
1547 | - | |
1548 | 1519 | void vga_update_display(void) |
1549 | 1520 | { |
1550 | 1521 | VGAState *s = &vga_state; |
1551 | 1522 | int full_update, graphic_mode; |
1552 | 1523 | |
1553 | 1524 | if (s->ds->depth == 0) { |
1554 | - vga_draw_dumb(s); | |
1555 | - } else { | |
1525 | + /* nothing to do */ | |
1526 | + } else { | |
1556 | 1527 | full_update = 0; |
1557 | 1528 | graphic_mode = s->gr[6] & 1; |
1558 | 1529 | if (graphic_mode != s->graphic_mode) { |
... | ... | @@ -1643,29 +1614,29 @@ int vga_initialize(DisplayState *ds, uint8_t *vga_ram_base, |
1643 | 1614 | s->vram_size = vga_ram_size; |
1644 | 1615 | s->ds = ds; |
1645 | 1616 | |
1646 | - register_ioport_write(0x3c0, 16, vga_ioport_write, 1); | |
1617 | + register_ioport_write(0x3c0, 16, 1, vga_ioport_write, s); | |
1647 | 1618 | |
1648 | - register_ioport_write(0x3b4, 2, vga_ioport_write, 1); | |
1649 | - register_ioport_write(0x3d4, 2, vga_ioport_write, 1); | |
1650 | - register_ioport_write(0x3ba, 1, vga_ioport_write, 1); | |
1651 | - register_ioport_write(0x3da, 1, vga_ioport_write, 1); | |
1619 | + register_ioport_write(0x3b4, 2, 1, vga_ioport_write, s); | |
1620 | + register_ioport_write(0x3d4, 2, 1, vga_ioport_write, s); | |
1621 | + register_ioport_write(0x3ba, 1, 1, vga_ioport_write, s); | |
1622 | + register_ioport_write(0x3da, 1, 1, vga_ioport_write, s); | |
1652 | 1623 | |
1653 | - register_ioport_read(0x3c0, 16, vga_ioport_read, 1); | |
1624 | + register_ioport_read(0x3c0, 16, 1, vga_ioport_read, s); | |
1654 | 1625 | |
1655 | - register_ioport_read(0x3b4, 2, vga_ioport_read, 1); | |
1656 | - register_ioport_read(0x3d4, 2, vga_ioport_read, 1); | |
1657 | - register_ioport_read(0x3ba, 1, vga_ioport_read, 1); | |
1658 | - register_ioport_read(0x3da, 1, vga_ioport_read, 1); | |
1626 | + register_ioport_read(0x3b4, 2, 1, vga_ioport_read, s); | |
1627 | + register_ioport_read(0x3d4, 2, 1, vga_ioport_read, s); | |
1628 | + register_ioport_read(0x3ba, 1, 1, vga_ioport_read, s); | |
1629 | + register_ioport_read(0x3da, 1, 1, vga_ioport_read, s); | |
1659 | 1630 | s->bank_offset = -0xa0000; |
1660 | 1631 | |
1661 | 1632 | #ifdef CONFIG_BOCHS_VBE |
1662 | 1633 | s->vbe_regs[VBE_DISPI_INDEX_ID] = VBE_DISPI_ID0; |
1663 | 1634 | s->vbe_bank_mask = ((s->vram_size >> 16) - 1); |
1664 | - register_ioport_read(0x1ce, 1, vbe_ioport_read, 2); | |
1665 | - register_ioport_read(0x1cf, 1, vbe_ioport_read, 2); | |
1635 | + register_ioport_read(0x1ce, 1, 2, vbe_ioport_read, s); | |
1636 | + register_ioport_read(0x1cf, 1, 2, vbe_ioport_read, s); | |
1666 | 1637 | |
1667 | - register_ioport_write(0x1ce, 1, vbe_ioport_write, 2); | |
1668 | - register_ioport_write(0x1cf, 1, vbe_ioport_write, 2); | |
1638 | + register_ioport_write(0x1ce, 1, 2, vbe_ioport_write, s); | |
1639 | + register_ioport_write(0x1cf, 1, 2, vbe_ioport_write, s); | |
1669 | 1640 | #endif |
1670 | 1641 | |
1671 | 1642 | vga_io_memory = cpu_register_io_memory(0, vga_mem_read, vga_mem_write); | ... | ... |