qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [5056] add DisplayState->idle (Samuel Thibault)


From: Anthony Liguori
Subject: [Qemu-devel] [5056] add DisplayState->idle (Samuel Thibault)
Date: Thu, 21 Aug 2008 20:08:56 +0000

Revision: 5056
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5056
Author:   aliguori
Date:     2008-08-21 20:08:55 +0000 (Thu, 21 Aug 2008)

Log Message:
-----------
add DisplayState->idle (Samuel Thibault)

Add idle field to DisplayState struct, so drivers can figure
the display is idle and take advantage of that.

The xen framebuffer driver will use this to communicate the
idle state to the guest, so it knows it can stop doing updates
to a virtual display which is invisible anyway.

Signed-off-by: Gerd Hoffmann <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Signed-off-by: Anthony Liguori <address@hidden>

Modified Paths:
--------------
    trunk/console.h
    trunk/sdl.c
    trunk/vl.c
    trunk/vnc.c

Modified: trunk/console.h
===================================================================
--- trunk/console.h     2008-08-21 20:08:03 UTC (rev 5055)
+++ trunk/console.h     2008-08-21 20:08:55 UTC (rev 5056)
@@ -80,6 +80,7 @@
     void *opaque;
     struct QEMUTimer *gui_timer;
     uint64_t gui_timer_interval;
+    int idle;
 
     void (*dpy_update)(struct DisplayState *s, int x, int y, int w, int h);
     void (*dpy_resize)(struct DisplayState *s, int w, int h);

Modified: trunk/sdl.c
===================================================================
--- trunk/sdl.c 2008-08-21 20:08:03 UTC (rev 5055)
+++ trunk/sdl.c 2008-08-21 20:08:55 UTC (rev 5056)
@@ -524,9 +524,11 @@
                 if (ev->active.gain) {
                     /* Back to default interval */
                     ds->gui_timer_interval = 0;
+                    ds->idle = 0;
                 } else {
                     /* Sleeping interval */
                     ds->gui_timer_interval = 500;
+                    ds->idle = 1;
                 }
             }
             break;

Modified: trunk/vl.c
===================================================================
--- trunk/vl.c  2008-08-21 20:08:03 UTC (rev 5055)
+++ trunk/vl.c  2008-08-21 20:08:55 UTC (rev 5056)
@@ -5976,6 +5976,8 @@
     ds->dpy_update = dumb_update;
     ds->dpy_resize = dumb_resize;
     ds->dpy_refresh = dumb_refresh;
+    ds->gui_timer_interval = 500;
+    ds->idle = 1;
 }
 
 /***********************************************************/

Modified: trunk/vnc.c
===================================================================
--- trunk/vnc.c 2008-08-21 20:08:03 UTC (rev 5055)
+++ trunk/vnc.c 2008-08-21 20:08:55 UTC (rev 5056)
@@ -660,6 +660,7 @@
        qemu_set_fd_handler2(vs->csock, NULL, NULL, NULL, NULL);
        closesocket(vs->csock);
        vs->csock = -1;
+       vs->ds->idle = 1;
        buffer_reset(&vs->input);
        buffer_reset(&vs->output);
        vs->need_update = 0;
@@ -1920,6 +1921,7 @@
 static void vnc_connect(VncState *vs)
 {
     VNC_DEBUG("New client on socket %d\n", vs->csock);
+    vs->ds->idle = 0;
     socket_set_nonblock(vs->csock);
     qemu_set_fd_handler2(vs->csock, NULL, vnc_client_read, NULL, vs);
     vnc_write(vs, "RFB 003.008\n", 12);
@@ -1959,6 +1961,7 @@
        exit(1);
 
     ds->opaque = vs;
+    ds->idle = 1;
     vnc_state = vs;
     vs->display = NULL;
     vs->password = NULL;






reply via email to

[Prev in Thread] Current Thread [Next in Thread]