[Spice-commits] 2 commits - server/red-qxl.c server/red-qxl.h server/reds.c

Frediano Ziglio fziglio at kemper.freedesktop.org
Sat Mar 5 10:14:50 UTC 2016


 server/red-qxl.c |   13 ++++++++++---
 server/red-qxl.h |    3 ++-
 server/reds.c    |    2 +-
 3 files changed, 13 insertions(+), 5 deletions(-)

New commits:
commit 37ccf6cdf4a87cade4bb1356328baefd40db033b
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 6 14:29:05 2015 -0600

    Add red_qxl_get_server()
    
    Acked-by: Fabiano FidĂȘncio <fidencio at redhat.com>
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/server/red-qxl.c b/server/red-qxl.c
index ff5bb94..1d29496 100644
--- a/server/red-qxl.c
+++ b/server/red-qxl.c
@@ -1064,3 +1064,8 @@ void red_qxl_set_mouse_mode(QXLState *qxl_state, uint32_t mode)
                             RED_WORKER_MESSAGE_SET_MOUSE_MODE,
                             &payload);
 }
+
+RedsState* red_qxl_get_server(QXLState *qxl_state)
+{
+    return qxl_state->reds;
+}
diff --git a/server/red-qxl.h b/server/red-qxl.h
index 78d9536..f100cb4 100644
--- a/server/red-qxl.h
+++ b/server/red-qxl.h
@@ -44,6 +44,7 @@ gboolean red_qxl_get_allow_client_mouse(QXLState *qxl_state, gint *x_res, gint *
 SpiceMsgDisplayGlScanoutUnix *red_qxl_get_gl_scanout(QXLState *qxl_state);
 void red_qxl_put_gl_scanout(QXLState *qxl_state, SpiceMsgDisplayGlScanoutUnix *scanout);
 void red_qxl_gl_draw_async_complete(QXLState *qxl);
+SpiceServer* red_qxl_get_server(QXLState *qxl);
 
 typedef uint32_t RedWorkerMessage;
 
commit c3d43fdea73154a6955e5c5791646e1aabca26fc
Author: Jonathon Jongsma <jjongsma at redhat.com>
Date:   Fri Feb 12 13:49:39 2016 +0000

    Store reference to RedsState in QXLState
    
    Remove use of global 'reds' variable from QXLState functions.
    Instead store the owning RedsState variable inside the QXLState
    struct and use that when necessary.
    
    Acked-by: Fabiano FidĂȘncio <fidencio at redhat.com>
    Acked-by: Frediano Ziglio <fziglio at redhat.com>

diff --git a/server/red-qxl.c b/server/red-qxl.c
index b24c6e5..ff5bb94 100644
--- a/server/red-qxl.c
+++ b/server/red-qxl.c
@@ -56,6 +56,7 @@ struct QXLState {
     int use_hardware_cursor;
     QXLDevSurfaceCreate surface_create;
     unsigned int max_monitors;
+    RedsState *reds;
 
     pthread_mutex_t scanout_mutex;
     SpiceMsgDisplayGlScanoutUnix scanout;
@@ -331,7 +332,7 @@ static void red_qxl_destroy_primary_surface_complete(QXLState *qxl_state)
     qxl_state->use_hardware_cursor = FALSE;
     qxl_state->primary_active = FALSE;
 
-    reds_update_client_mouse_allowed(reds);
+    reds_update_client_mouse_allowed(qxl_state->reds);
 }
 
 static void
@@ -383,7 +384,7 @@ static void red_qxl_create_primary_surface_complete(QXLState *qxl_state)
     qxl_state->use_hardware_cursor = surface->mouse_mode;
     qxl_state->primary_active = TRUE;
 
-    reds_update_client_mouse_allowed(reds);
+    reds_update_client_mouse_allowed(qxl_state->reds);
     memset(&qxl_state->surface_create, 0, sizeof(QXLDevSurfaceCreate));
 }
 
@@ -933,7 +934,7 @@ void red_qxl_gl_draw_async_complete(QXLState *qxl_state)
     red_qxl_async_complete(qxl_state, async);
 }
 
-void red_qxl_init(QXLInstance *qxl)
+void red_qxl_init(RedsState *reds, QXLInstance *qxl)
 {
     QXLState *qxl_state;
     RedChannel *channel;
@@ -950,6 +951,7 @@ void red_qxl_init(QXLInstance *qxl)
     }
 
     qxl_state = spice_new0(QXLState, 1);
+    qxl_state->reds = reds;
     qxl_state->qxl = qxl;
     pthread_mutex_init(&qxl_state->scanout_mutex, NULL);
     qxl_state->scanout.drm_dma_buf_fd = -1;
diff --git a/server/red-qxl.h b/server/red-qxl.h
index 3451217..78d9536 100644
--- a/server/red-qxl.h
+++ b/server/red-qxl.h
@@ -24,7 +24,7 @@ typedef struct QXLState QXLState;
 
 typedef struct AsyncCommand AsyncCommand;
 
-void red_qxl_init(QXLInstance *qxl);
+void red_qxl_init(SpiceServer *reds, QXLInstance *qxl);
 
 void red_qxl_set_mm_time(QXLState *qxl_state, uint32_t);
 void red_qxl_on_ic_change(QXLState *qxl_state, SpiceImageCompression ic);
diff --git a/server/reds.c b/server/reds.c
index 15a31f9..213d753 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -3209,7 +3209,7 @@ SPICE_GNUC_VISIBLE int spice_server_add_interface(SpiceServer *s,
         }
 
         qxl = SPICE_CONTAINEROF(sin, QXLInstance, base);
-        red_qxl_init(qxl);
+        red_qxl_init(reds, qxl);
         qxl_state = qxl->st;
         reds->qxl_states = g_list_prepend(reds->qxl_states, qxl_state);
 


More information about the Spice-commits mailing list