[Spice-devel] [PATCH spice-server v2 14/14] char_device: move SpiceCharDeviceState from the header
Yonit Halperin
yhalperi at redhat.com
Tue Jul 3 04:34:06 PDT 2012
In addition, I also removed the no longer used wakeup callback
---
server/char_device.c | 23 +++++++++++++++++++++++
server/char_device.h | 28 ----------------------------
server/reds.c | 8 ++++----
3 files changed, 27 insertions(+), 32 deletions(-)
diff --git a/server/char_device.c b/server/char_device.c
index f493956..e87c029 100644
--- a/server/char_device.c
+++ b/server/char_device.c
@@ -43,6 +43,29 @@ 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;
+
+ int during_read_from_device;
+
+ SpiceCharDeviceCallbacks cbs;
+ void *opaque;
+};
+
enum {
WRITE_BUFFER_ORIGIN_NONE,
WRITE_BUFFER_ORIGIN_CLIENT,
diff --git a/server/char_device.h b/server/char_device.h
index 72f8abd..4a70075 100644
--- a/server/char_device.h
+++ b/server/char_device.h
@@ -109,34 +109,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;
-
- int during_read_from_device;
-
- 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 911564b..9488237 100644
--- a/server/reds.c
+++ b/server/reds.c
@@ -3158,11 +3158,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"
--
1.7.7.6
More information about the Spice-devel
mailing list