static void vnc_dpy_update(DisplayChangeListener *dcl,

                           DisplayState *ds,

                           int x, int y, int w, int h)

{

    int i;

    VncDisplay *vd = ds->opaque;

    struct VncSurface *s = &vd->guest;

    int width = ds_get_width(ds);

    int height = ds_get_height(ds);



    h += y;



    /* round x down to ensure the loop only spans one 16-pixel block per,

       iteration.  otherwise, if (x % 16) != 0, the last iteration may span

       two 16-pixel blocks but we only mark the first as dirty

    */

    w += (x % 16);

    x -= (x % 16);



    x = MIN(x, width);

    y = MIN(y, height);

    w = MIN(x + w, width) - x;

    h = MIN(h, height);



    for (; y < h; y++)

        for (i = 0; i < w; i += 16)

            set_bit((x + i) / 16, s->dirty[y]);

}

static void vnc_dpy_update(DisplayChangeListener *dcl,

                           DisplayState *ds,

                           int x, int y, int w, int h)

{

    int i;

    VncDisplay *vd = ds->opaque;

    struct VncSurface *s = &vd->guest;

    int width = ds_get_width(ds);

    int height = ds_get_height(ds);



    h += y;



    







    w += (x % 16);

    x -= (x % 16);



    x = MIN(x, width);

    y = MIN(y, height);

    w = MIN(x + w, width) - x;

    h = MIN(h, height);



    for (; y < h; y++)

        for (i = 0; i < w; i += 16)

            set_bit((x + i) / 16, s->dirty[y]);

}

    VncDisplay *vd = ds->opaque;     VncDisplay *vd = ds->opaque;     VncDisplay *vd = ds->opaque;     VncDisplay *vd = ds->opaque;
static void FUNC_0(DisplayChangeListener *VAR_0,

                           DisplayState *VAR_1,

                           int VAR_2, int VAR_3, int VAR_4, int VAR_5)

{

    int VAR_6;

    VncDisplay *vd = VAR_1->opaque;

    struct VncSurface *VAR_7 = &vd->guest;

    int VAR_8 = ds_get_width(VAR_1);

    int VAR_9 = ds_get_height(VAR_1);



    VAR_5 += VAR_3;



    







    VAR_4 += (VAR_2 % 16);

    VAR_2 -= (VAR_2 % 16);



    VAR_2 = MIN(VAR_2, VAR_8);

    VAR_3 = MIN(VAR_3, VAR_9);

    VAR_4 = MIN(VAR_2 + VAR_4, VAR_8) - VAR_2;

    VAR_5 = MIN(VAR_5, VAR_9);



    for (; VAR_3 < VAR_5; VAR_3++)

        for (VAR_6 = 0; VAR_6 < VAR_4; VAR_6 += 16)

            set_bit((VAR_2 + VAR_6) / 16, VAR_7->dirty[VAR_3]);

}

static void FUNC_0(DisplayChangeListener *VAR_0,
DisplayState *VAR_1,
int VAR_2, int VAR_3, int VAR_4, int VAR_5)
{ int VAR_6; VncDisplay *vd = VAR_1->opaque; struct VncSurface *VAR_7 = &vd->guest; int VAR_8 = ds_get_width(VAR_1); int VAR_9 = ds_get_height(VAR_1); VAR_5 += VAR_3; VAR_4 += (VAR_2 % 16); VAR_2 -= (VAR_2 % 16); VAR_2 = MIN(VAR_2, VAR_8); VAR_3 = MIN(VAR_3, VAR_9); VAR_4 = MIN(VAR_2 + VAR_4, VAR_8) - VAR_2; VAR_5 = MIN(VAR_5, VAR_9); for (; VAR_3 < VAR_5; VAR_3++) for (VAR_6 = 0; VAR_6 < VAR_4; VAR_6 += 16) set_bit((VAR_2 + VAR_6) / 16, VAR_7->dirty[VAR_3]); }