static void vnc_dpy_update(DisplayChangeListener *dcl,

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

{

    VncDisplay *vd = container_of(dcl, VncDisplay, dcl);

    struct VncSurface *s = &vd->guest;

    int width = surface_width(vd->ds);

    int height = surface_height(vd->ds);



    /* this is needed this to ensure we updated all affected

     * blocks if x % VNC_DIRTY_PIXELS_PER_BIT != 0 */

    w += (x % VNC_DIRTY_PIXELS_PER_BIT);

    x -= (x % VNC_DIRTY_PIXELS_PER_BIT);



    x = MIN(x, width);

    y = MIN(y, height);

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

    h = MIN(y + h, height);



    for (; y < h; y++) {

        bitmap_set(s->dirty[y], x / VNC_DIRTY_PIXELS_PER_BIT,

                   DIV_ROUND_UP(w, VNC_DIRTY_PIXELS_PER_BIT));

    }

}

static void vnc_dpy_update(DisplayChangeListener *dcl,

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

{

    VncDisplay *vd = container_of(dcl, VncDisplay, dcl);

    struct VncSurface *s = &vd->guest;

    int width = surface_width(vd->ds);

    int height = surface_height(vd->ds);



    



    w += (x % VNC_DIRTY_PIXELS_PER_BIT);

    x -= (x % VNC_DIRTY_PIXELS_PER_BIT);



    x = MIN(x, width);

    y = MIN(y, height);

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

    h = MIN(y + h, height);



    for (; y < h; y++) {

        bitmap_set(s->dirty[y], x / VNC_DIRTY_PIXELS_PER_BIT,

                   DIV_ROUND_UP(w, VNC_DIRTY_PIXELS_PER_BIT));

    }

}

static void vnc_dpy_update(DisplayChangeListener *dcl,                            int x, int y, int w, int h)     VncDisplay *vd = container_of(dcl, VncDisplay, dcl);     struct VncSurface *s = &vd->guest;     int width = surface_width(vd->ds);     int height = surface_height(vd->ds);         bitmap_set(s->dirty[y], x / VNC_DIRTY_PIXELS_PER_BIT,
static void FUNC_0(DisplayChangeListener *VAR_0,

                           int VAR_1, int VAR_2, int VAR_3, int VAR_4)

{

    VncDisplay *vd = container_of(VAR_0, VncDisplay, VAR_0);

    struct VncSurface *VAR_5 = &vd->guest;

    int VAR_6 = surface_width(vd->ds);

    int VAR_7 = surface_height(vd->ds);



    



    VAR_3 += (VAR_1 % VNC_DIRTY_PIXELS_PER_BIT);

    VAR_1 -= (VAR_1 % VNC_DIRTY_PIXELS_PER_BIT);



    VAR_1 = MIN(VAR_1, VAR_6);

    VAR_2 = MIN(VAR_2, VAR_7);

    VAR_3 = MIN(VAR_1 + VAR_3, VAR_6) - VAR_1;

    VAR_4 = MIN(VAR_2 + VAR_4, VAR_7);



    for (; VAR_2 < VAR_4; VAR_2++) {

        bitmap_set(VAR_5->dirty[VAR_2], VAR_1 / VNC_DIRTY_PIXELS_PER_BIT,

                   DIV_ROUND_UP(VAR_3, VNC_DIRTY_PIXELS_PER_BIT));

    }

}

static void FUNC_0(DisplayChangeListener *VAR_0,
int VAR_1, int VAR_2, int VAR_3, int VAR_4)
{ VncDisplay *vd = container_of(VAR_0, VncDisplay, VAR_0); struct VncSurface *VAR_5 = &vd->guest; int VAR_6 = surface_width(vd->ds); int VAR_7 = surface_height(vd->ds); VAR_3 += (VAR_1 % VNC_DIRTY_PIXELS_PER_BIT); VAR_1 -= (VAR_1 % VNC_DIRTY_PIXELS_PER_BIT); VAR_1 = MIN(VAR_1, VAR_6); VAR_2 = MIN(VAR_2, VAR_7); VAR_3 = MIN(VAR_1 + VAR_3, VAR_6) - VAR_1; VAR_4 = MIN(VAR_2 + VAR_4, VAR_7); for (; VAR_2 < VAR_4; VAR_2++) { bitmap_set(VAR_5->dirty[VAR_2], VAR_1 / VNC_DIRTY_PIXELS_PER_BIT,
DIV_ROUND_UP(VAR_3, VNC_DIRTY_PIXELS_PER_BIT)); } }