[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 05/14] tcx: alter tcx_set_dirty() to accept addr
From: |
Mark Cave-Ayland |
Subject: |
Re: [Qemu-devel] [PATCH 05/14] tcx: alter tcx_set_dirty() to accept address and length parameters |
Date: |
Tue, 18 Apr 2017 15:46:00 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.6.0 |
On 15/04/17 15:27, Philippe Mathieu-Daudé wrote:
Hi Philippe,
> Hi Mark,
>
> On 04/05/2017 05:35 AM, Mark Cave-Ayland wrote:
>> Signed-off-by: Mark Cave-Ayland <address@hidden>
>> ---
>> hw/display/tcx.c | 12 ++++++------
>> 1 file changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/hw/display/tcx.c b/hw/display/tcx.c
>> index 8e26aae..d24466f 100644
>> --- a/hw/display/tcx.c
>> +++ b/hw/display/tcx.c
>> @@ -93,9 +93,9 @@ typedef struct TCXState {
>> uint16_t cursy;
>> } TCXState;
>>
>> -static void tcx_set_dirty(TCXState *s)
>> +static void tcx_set_dirty(TCXState *s, ram_addr_t addr, int len)
>
> len is uint64_t
Yes, this was deliberate in order to match the existing tcx_* functions
in the same file which tend to use int for len/width parameters. Note
that TCX is fixed 1024x768 resolution giving a maximum len of ~800K so
there is no risk of overflow here.
> with this change:
> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
>
> This function can also be inlined.
My current understanding is that these days compilers tend to handle
inlining themselves and inline is either a no-op or a very weak hint?
>> {
>> - memory_region_set_dirty(&s->vram_mem, 0, MAXX * MAXY);
>> + memory_region_set_dirty(&s->vram_mem, addr, len);
>> }
>>
>> static inline int tcx24_check_dirty(TCXState *s, ram_addr_t page,
>> @@ -156,7 +156,7 @@ static void update_palette_entries(TCXState *s,
>> int start, int end)
>> break;
>> }
>> }
>> - tcx_set_dirty(s);
>> + tcx_set_dirty(s, 0, memory_region_size(&s->vram_mem));
>> }
>>
>> static void tcx_draw_line32(TCXState *s1, uint8_t *d,
>> @@ -526,7 +526,7 @@ static void tcx_invalidate_display(void *opaque)
>> {
>> TCXState *s = opaque;
>>
>> - tcx_set_dirty(s);
>> + tcx_set_dirty(s, 0, memory_region_size(&s->vram_mem));
>> qemu_console_resize(s->con, s->width, s->height);
>> }
>>
>> @@ -534,7 +534,7 @@ static void tcx24_invalidate_display(void *opaque)
>> {
>> TCXState *s = opaque;
>>
>> - tcx_set_dirty(s);
>> + tcx_set_dirty(s, 0, memory_region_size(&s->vram_mem));
>> qemu_console_resize(s->con, s->width, s->height);
>> }
>>
>> @@ -543,7 +543,7 @@ static int vmstate_tcx_post_load(void *opaque, int
>> version_id)
>> TCXState *s = opaque;
>>
>> update_palette_entries(s, 0, 256);
>> - tcx_set_dirty(s);
>> + tcx_set_dirty(s, 0, memory_region_size(&s->vram_mem));
>> return 0;
>> }
ATB,
Mark.
- [Qemu-devel] [PATCH 02/14] cg3: fix up size parameter for memory_region_get_dirty(), (continued)
- [Qemu-devel] [PATCH 05/14] tcx: alter tcx_set_dirty() to accept address and length parameters, Mark Cave-Ayland, 2017/04/05
- [Qemu-devel] [PATCH 01/14] cg3: remove TARGET_PAGE_SIZE rounding on dirty page detection, Mark Cave-Ayland, 2017/04/05
- [Qemu-devel] [PATCH 07/14] tcx: alter tcx24_check_dirty() to accept address and length parameters, Mark Cave-Ayland, 2017/04/05
- [Qemu-devel] [PATCH 08/14] tcx: alter tcx24_reset_dirty() to accept address and length parameters, Mark Cave-Ayland, 2017/04/05
- [Qemu-devel] [PATCH 09/14] tcx: remove page24 and cpage from tcx24_update_display(), Mark Cave-Ayland, 2017/04/05
- [Qemu-devel] [PATCH 06/14] tcx: ensure tcx_set_dirty() also invalidates the 24-bit plane and cplane, Mark Cave-Ayland, 2017/04/05
- [Qemu-devel] [PATCH 14/14] tcx: switch to load_image_mr() and remove prom_addr hack, Mark Cave-Ayland, 2017/04/05
- [Qemu-devel] [PATCH 13/14] tcx: use tcx_set_dirty() for accelerated ops, Mark Cave-Ayland, 2017/04/05
- [Qemu-devel] [PATCH 10/14] tcx: remove TARGET_PAGE_SIZE from tcx_update_display(), Mark Cave-Ayland, 2017/04/05
- [Qemu-devel] [PATCH 11/14] tcx: remove TARGET_PAGE_SIZE from tcx24_update_display(), Mark Cave-Ayland, 2017/04/05