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