g364fb: switch to using DirtyBitmapSnapshot
This removes the last user of memory_region_test_and_clear_dirty outside memory.c. Tested-by: Hervé Poussineau <hpoussin@reactos.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
1e23b63f02
commit
f7189ac8e6
@ -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)
|
||||
|
Loading…
Reference in New Issue
Block a user