Commit f7189ac8 authored by Paolo Bonzini's avatar Paolo Bonzini
Browse files

g364fb: switch to using DirtyBitmapSnapshot



This removes the last user of memory_region_test_and_clear_dirty
outside memory.c.

Tested-by: default avatarHervé Poussineau <hpoussin@reactos.org>
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
parent 1e23b63f
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -62,15 +62,15 @@ typedef struct G364State {

#define G364_PAGE_SIZE 4096

static inline int check_dirty(G364State *s, ram_addr_t page)
static inline int check_dirty(G364State *s, DirtyBitmapSnapshot *snap, ram_addr_t page)
{
    return memory_region_test_and_clear_dirty(&s->mem_vram, page, G364_PAGE_SIZE,
                                              DIRTY_MEMORY_VGA);
    return memory_region_snapshot_get_dirty(&s->mem_vram, snap, page, G364_PAGE_SIZE);
}

static void g364fb_draw_graphic8(G364State *s)
{
    DisplaySurface *surface = qemu_console_surface(s->con);
    DirtyBitmapSnapshot *snap;
    int i, w;
    uint8_t *vram;
    uint8_t *data_display, *dd;
@@ -122,8 +122,10 @@ static void g364fb_draw_graphic8(G364State *s)
    vram = s->vram + s->top_of_screen;
    /* XXX: out of range in vram? */
    data_display = dd = surface_data(surface);
    snap = memory_region_snapshot_and_clear_dirty(&s->mem_vram, 0, s->vram_size,
                                                  DIRTY_MEMORY_VGA);
    while (y < s->height) {
        if (check_dirty(s, page)) {
        if (check_dirty(s, snap, page)) {
            if (y < ymin)
                ymin = ymax = y;
            if (x < xmin)