* [Qemu-devel] [PATCH] g364fb: switch to using DirtyBitmapSnapshot
@ 2018-02-08 18:22 Paolo Bonzini
2018-02-08 20:50 ` Hervé Poussineau
0 siblings, 1 reply; 2+ messages in thread
From: Paolo Bonzini @ 2018-02-08 18:22 UTC (permalink / raw)
To: qemu-devel; +Cc: Hervé Poussineau, Aurelien Jarno, Yongbok Kim
This removes the last user of memory_region_test_and_clear_dirty
outside memory.c.
Cc: Hervé Poussineau <hpoussin@reactos.org>
Cc: Aurelien Jarno <aurelien@aurel32.net>
Cc: Yongbok Kim <yongbok.kim@mips.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
Untested... not sure where to get mips_bios.bin, or a kernel
that works with -M magnum. Can anybody help? I'd like to
get rid of memory_region_test_and_clear_dirty.
hw/display/g364fb.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/hw/display/g364fb.c b/hw/display/g364fb.c
index 86557d14a9..86452de780 100644
--- a/hw/display/g364fb.c
+++ b/hw/display/g364fb.c
@@ -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)
--
2.14.3
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH] g364fb: switch to using DirtyBitmapSnapshot
2018-02-08 18:22 [Qemu-devel] [PATCH] g364fb: switch to using DirtyBitmapSnapshot Paolo Bonzini
@ 2018-02-08 20:50 ` Hervé Poussineau
0 siblings, 0 replies; 2+ messages in thread
From: Hervé Poussineau @ 2018-02-08 20:50 UTC (permalink / raw)
To: Paolo Bonzini, qemu-devel; +Cc: Aurelien Jarno, Yongbok Kim
Le 08/02/2018 à 19:22, Paolo Bonzini a écrit :
> This removes the last user of memory_region_test_and_clear_dirty
> outside memory.c.
>
> Cc: Hervé Poussineau <hpoussin@reactos.org>
> Cc: Aurelien Jarno <aurelien@aurel32.net>
> Cc: Yongbok Kim <yongbok.kim@mips.com>
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Tested-by: Hervé Poussineau <hpoussin@reactos.org>
Tested with Windows NT 4.0
> ---
> Untested... not sure where to get mips_bios.bin, or a kernel
> that works with -M magnum. Can anybody help? I'd like to
> get rid of memory_region_test_and_clear_dirty.
>
> hw/display/g364fb.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/hw/display/g364fb.c b/hw/display/g364fb.c
> index 86557d14a9..86452de780 100644
> --- a/hw/display/g364fb.c
> +++ b/hw/display/g364fb.c
> @@ -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)
>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2018-02-08 20:50 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-02-08 18:22 [Qemu-devel] [PATCH] g364fb: switch to using DirtyBitmapSnapshot Paolo Bonzini
2018-02-08 20:50 ` Hervé Poussineau
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).