Source-Changes-HG archive

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

[src/trunk]: src/sys/arch/usermode/usermode Add template code for a client dr...



details:   https://anonhg.NetBSD.org/src/rev/b4bec03d8e53
branches:  trunk
changeset: 772360:b4bec03d8e53
user:      reinoud <reinoud%NetBSD.org@localhost>
date:      Fri Dec 30 21:14:58 2011 +0000

description:
Add template code for a client driven display update request. This is
currently not possible since its event parameter is not allways passed.

diffstat:

 sys/arch/usermode/usermode/thunk.c |  19 +++++++++++++++----
 1 files changed, 15 insertions(+), 4 deletions(-)

diffs (50 lines):

diff -r e4becab13767 -r b4bec03d8e53 sys/arch/usermode/usermode/thunk.c
--- a/sys/arch/usermode/usermode/thunk.c        Fri Dec 30 20:33:04 2011 +0000
+++ b/sys/arch/usermode/usermode/thunk.c        Fri Dec 30 21:14:58 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: thunk.c,v 1.67 2011/12/30 20:08:00 jmcneill Exp $ */
+/* $NetBSD: thunk.c,v 1.68 2011/12/30 21:14:58 reinoud Exp $ */
 
 /*-
  * Copyright (c) 2011 Jared D. McNeill <jmcneill%invisible.ca@localhost>
@@ -28,7 +28,7 @@
 
 #include <sys/cdefs.h>
 #ifdef __NetBSD__
-__RCSID("$NetBSD: thunk.c,v 1.67 2011/12/30 20:08:00 jmcneill Exp $");
+__RCSID("$NetBSD: thunk.c,v 1.68 2011/12/30 21:14:58 reinoud Exp $");
 #endif
 
 #include <sys/types.h>
@@ -1165,10 +1165,11 @@
                thunk_rfb_update(rfb, 0, 0, rfb->width, rfb->height);
        }
 
-       thunk_rfb_send_pending(rfb);
        if (rfb->clientfd == -1)
                return -1;
 
+       thunk_rfb_send_pending(rfb);
+
        if (event == NULL)
                return 0;
 
@@ -1201,7 +1202,17 @@
                msg_len = 4 * ntohs(*(uint16_t *)&set_encodings[1]);
                break;
        case THUNK_RFB_FRAMEBUFFER_UPDATE_REQUEST:
-               msg_len = sizeof(framebuffer_update_request);
+               recv(rfb->clientfd, framebuffer_update_request,
+                       sizeof(framebuffer_update_request), MSG_NOSIGNAL);
+#if 0
+               if (framebuffer_update_request[0] == 0) {
+fprintf(stdout, "complete update request\n");
+                       /* complete redraw request -> buffer full */
+                       rfb->nupdates = __arraycount(rfb->update);
+               }
+               thunk_rfb_send_pending(rfb);
+#endif
+               msg_len = 0;
                break;
        case THUNK_RFB_KEY_EVENT:
                recv(rfb->clientfd, key_event, sizeof(key_event), MSG_NOSIGNAL);



Home | Main Index | Thread Index | Old Index