Re: [PATCH spice-server 14/14] char_device: move SpiceCharDeviceState from the header

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

 



Looks good, ack.

Regards,

Hans



On 06/27/2012 05:16 PM, Yonit Halperin wrote:
In addition, I also removed the no longer used wakeup callback
---
  server/char_device.c |   21 +++++++++++++++++++++
  server/char_device.h |   26 --------------------------
  server/reds.c        |    8 ++++----
  3 files changed, 25 insertions(+), 30 deletions(-)

diff --git a/server/char_device.c b/server/char_device.c
index 13a3a58..a0a0208 100644
--- a/server/char_device.c
+++ b/server/char_device.c
@@ -43,6 +43,27 @@ struct SpiceCharDeviceClientState {
      uint32_t max_send_queue_size;
  };

+struct SpiceCharDeviceState {
+    int running;
+    uint32_t refs;
+
+    Ring write_queue;
+    Ring write_bufs_pool;
+    SpiceCharDeviceWriteBuffer *cur_write_buf;
+    uint8_t *cur_write_buf_pos;
+    SpiceTimer *write_to_dev_timer;
+    uint64_t num_self_tokens;
+
+    Ring clients; /* list of SpiceCharDeviceClientState */
+    uint32_t num_clients;
+
+    uint64_t client_tokens_interval; /* frequency of returning tokens to the client */
+    SpiceCharDeviceInstance *sin;
+
+    SpiceCharDeviceCallbacks cbs;
+    void *opaque;
+};
+
  /* Holding references for avoiding access violation if the char device was
   * destroyed during a callback */
  static void spice_char_device_state_ref(SpiceCharDeviceState *char_dev);
diff --git a/server/char_device.h b/server/char_device.h
index d355a2f..7046cd4 100644
--- a/server/char_device.h
+++ b/server/char_device.h
@@ -108,32 +108,6 @@ typedef struct SpiceCharDeviceCallbacks {

  typedef struct SpiceCharDeviceState SpiceCharDeviceState;

-struct SpiceCharDeviceState {
-    int running;
-    uint32_t refs;
-
-    Ring write_queue;
-    Ring write_bufs_pool;
-    SpiceCharDeviceWriteBuffer *cur_write_buf;
-    uint8_t *cur_write_buf_pos;
-    SpiceTimer *write_to_dev_timer;
-    uint64_t num_self_tokens;
-
-    Ring clients;
-    uint32_t num_clients;
-
-    uint64_t client_tokens_interval; /* frequency of returning tokens to the client */
-    SpiceCharDeviceInstance *sin;
-
-    SpiceCharDeviceCallbacks cbs;
-    void *opaque;
-    /* tmp till all spice char devices will employ the new SpiceCharDeviceState
-     * implementation. Then, SpiceCharDeviceState will be moved to char_device.c and
-     * this callback will be removed */
-    void (*wakeup)(SpiceCharDeviceInstance *sin);
-};
-
-
  SpiceCharDeviceState *spice_char_device_state_create(SpiceCharDeviceInstance *sin,
                                                       uint32_t client_tokens_interval,
                                                       uint32_t self_tokens,
diff --git a/server/reds.c b/server/reds.c
index f0f4040..256e7a6 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -3157,11 +3157,11 @@ static SpiceCharDeviceState *attach_to_red_agent(SpiceCharDeviceInstance *sin)

  SPICE_GNUC_VISIBLE void spice_server_char_device_wakeup(SpiceCharDeviceInstance* sin)
  {
-    if (sin->st->wakeup) {
-        sin->st->wakeup(sin);
-    } else {
-        spice_char_device_wakeup(sin->st);
+    if (!sin->st) {
+        spice_error("no SpiceCharDeviceState attached to instance %p", sin);
+        return;
      }
+    spice_char_device_wakeup(sin->st);
  }

  #define SUBTYPE_VDAGENT "vdagent"


_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]