char_device: move SpiceCharDeviceState from the header

In addition, I also removed the no longer used wakeup callback
This commit is contained in:
Yonit Halperin 2012-06-25 09:34:57 +03:00
parent 8bb444ec7a
commit bf91bdce5c
3 changed files with 27 additions and 32 deletions

View File

@ -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,

View File

@ -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,

View File

@ -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"