> > These two type names are typedefs of eachother, but it's confusing to > have two different typenames for the same type throughout the code. > Convert everythign to use RedCharDevice. > --- > > This patch should apply to the end of this patch series. Comments? > Patch is good but should apply to master directly. There are a lot of SpiceChar additions on this series and should all be avoided. Frediano > > server/char-device.c | 238 > +++++++++++++++++++++++++------------------------- > server/char-device.h | 108 +++++++++++------------ > server/reds-private.h | 2 +- > server/reds.c | 142 +++++++++++++++--------------- > server/reds.h | 3 +- > server/smartcard.c | 46 +++++----- > server/smartcard.h | 2 +- > server/spicevmc.c | 52 +++++------ > 8 files changed, 297 insertions(+), 296 deletions(-) > > diff --git a/server/char-device.c b/server/char-device.c > index 1947890..98c50ab 100644 > --- a/server/char-device.c > +++ b/server/char-device.c > @@ -33,7 +33,7 @@ > typedef struct SpiceCharDeviceClientState SpiceCharDeviceClientState; > struct SpiceCharDeviceClientState { > RingItem link; > - SpiceCharDeviceState *dev; > + RedCharDevice *dev; > RedClient *client; > int do_flow_control; > uint64_t num_client_tokens; > @@ -103,7 +103,7 @@ typedef struct SpiceCharDeviceMsgToClientItem { > } SpiceCharDeviceMsgToClientItem; > > static SpiceCharDeviceMsgToClient * > -spice_char_device_read_one_msg_from_device(SpiceCharDeviceState *dev) > +red_char_device_read_one_msg_from_device(RedCharDevice *dev) > { > RedCharDeviceClass *klass = RED_CHAR_DEVICE_GET_CLASS(dev); > > @@ -111,8 +111,8 @@ > spice_char_device_read_one_msg_from_device(SpiceCharDeviceState *dev) > } > > static SpiceCharDeviceMsgToClient * > -spice_char_device_ref_msg_to_client(SpiceCharDeviceState *dev, > - SpiceCharDeviceMsgToClient *msg) > +red_char_device_ref_msg_to_client(RedCharDevice *dev, > + SpiceCharDeviceMsgToClient *msg) > { > RedCharDeviceClass *klass = RED_CHAR_DEVICE_GET_CLASS(dev); > > @@ -120,8 +120,8 @@ spice_char_device_ref_msg_to_client(SpiceCharDeviceState > *dev, > } > > static void > -spice_char_device_unref_msg_to_client(SpiceCharDeviceState *dev, > - SpiceCharDeviceMsgToClient *msg) > +red_char_device_unref_msg_to_client(RedCharDevice *dev, > + SpiceCharDeviceMsgToClient *msg) > { > RedCharDeviceClass *klass = RED_CHAR_DEVICE_GET_CLASS(dev); > > @@ -129,9 +129,9 @@ > spice_char_device_unref_msg_to_client(SpiceCharDeviceState *dev, > } > > static void > -spice_char_device_send_msg_to_client(SpiceCharDeviceState *dev, > - SpiceCharDeviceMsgToClient *msg, > - RedClient *client) > +red_char_device_send_msg_to_client(RedCharDevice *dev, > + SpiceCharDeviceMsgToClient *msg, > + RedClient *client) > { > RedCharDeviceClass *klass = RED_CHAR_DEVICE_GET_CLASS(dev); > > @@ -139,9 +139,9 @@ spice_char_device_send_msg_to_client(SpiceCharDeviceState > *dev, > } > > static void > -spice_char_device_send_tokens_to_client(SpiceCharDeviceState *dev, > - RedClient *client, > - uint32_t tokens) > +red_char_device_send_tokens_to_client(RedCharDevice *dev, > + RedClient *client, > + uint32_t tokens) > { > RedCharDeviceClass *klass = RED_CHAR_DEVICE_GET_CLASS(dev); > > @@ -149,7 +149,7 @@ > spice_char_device_send_tokens_to_client(SpiceCharDeviceState *dev, > } > > static void > -spice_char_device_on_free_self_token(SpiceCharDeviceState *dev) > +red_char_device_on_free_self_token(RedCharDevice *dev) > { > RedCharDeviceClass *klass = RED_CHAR_DEVICE_GET_CLASS(dev); > > @@ -159,7 +159,7 @@ spice_char_device_on_free_self_token(SpiceCharDeviceState > *dev) > } > > static void > -spice_char_device_remove_client(SpiceCharDeviceState *dev, RedClient > *client) > +red_char_device_remove_client(RedCharDevice *dev, RedClient *client) > { > RedCharDeviceClass *klass = RED_CHAR_DEVICE_GET_CLASS(dev); > > @@ -187,8 +187,8 @@ static void write_buffers_queue_free(Ring *write_queue) > } > } > > -static void spice_char_device_write_buffer_pool_add(SpiceCharDeviceState > *dev, > - > SpiceCharDeviceWriteBuffer > *buf) > +static void red_char_device_write_buffer_pool_add(RedCharDevice *dev, > + SpiceCharDeviceWriteBuffer > *buf) > { > if (buf->refs == 1 && > dev->priv->cur_pool_size < MAX_POOL_SIZE) { > @@ -204,8 +204,8 @@ static void > spice_char_device_write_buffer_pool_add(SpiceCharDeviceState *dev, > spice_char_device_write_buffer_unref(buf); > } > > -static void spice_char_device_client_send_queue_free(SpiceCharDeviceState > *dev, > - > SpiceCharDeviceClientState > *dev_client) > +static void red_char_device_client_send_queue_free(RedCharDevice *dev, > + > SpiceCharDeviceClientState > *dev_client) > { > spice_debug("send_queue_empty %d", > ring_is_empty(&dev_client->send_queue)); > while (!ring_is_empty(&dev_client->send_queue)) { > @@ -215,15 +215,15 @@ static void > spice_char_device_client_send_queue_free(SpiceCharDeviceState *dev, > link); > > ring_remove(item); > - spice_char_device_unref_msg_to_client(dev, msg_item->msg); > + red_char_device_unref_msg_to_client(dev, msg_item->msg); > free(msg_item); > } > dev_client->num_send_tokens += dev_client->send_queue_size; > dev_client->send_queue_size = 0; > } > > -static void spice_char_device_client_free(SpiceCharDeviceState *dev, > - SpiceCharDeviceClientState > *dev_client) > +static void red_char_device_client_free(RedCharDevice *dev, > + SpiceCharDeviceClientState > *dev_client) > { > RingItem *item, *next; > > @@ -232,7 +232,7 @@ static void > spice_char_device_client_free(SpiceCharDeviceState *dev, > dev_client->wait_for_tokens_timer = NULL; > } > > - spice_char_device_client_send_queue_free(dev, dev_client); > + red_char_device_client_send_queue_free(dev, dev_client); > > /* remove write buffers that are associated with the client */ > spice_debug("write_queue_is_empty %d", > ring_is_empty(&dev->priv->write_queue) && !dev->priv->cur_write_buf); > @@ -243,7 +243,7 @@ static void > spice_char_device_client_free(SpiceCharDeviceState *dev, > if (write_buf->origin == WRITE_BUFFER_ORIGIN_CLIENT && > write_buf->client == dev_client->client) { > ring_remove(item); > - spice_char_device_write_buffer_pool_add(dev, write_buf); > + red_char_device_write_buffer_pool_add(dev, write_buf); > } > } > > @@ -260,13 +260,13 @@ static void > spice_char_device_client_free(SpiceCharDeviceState *dev, > > static void > spice_char_device_handle_client_overflow(SpiceCharDeviceClientState > *dev_client) > { > - SpiceCharDeviceState *dev = dev_client->dev; > + RedCharDevice *dev = dev_client->dev; > spice_printerr("dev %p client %p ", dev, dev_client); > - spice_char_device_remove_client(dev, dev_client->client); > + red_char_device_remove_client(dev, dev_client->client); > } > > -static SpiceCharDeviceClientState > *spice_char_device_client_find(SpiceCharDeviceState *dev, > - RedClient > *client) > +static SpiceCharDeviceClientState *red_char_device_client_find(RedCharDevice > *dev, > + RedClient > *client) > { > RingItem *item; > > @@ -297,7 +297,7 @@ static int > spice_char_device_can_send_to_client(SpiceCharDeviceClientState *dev_ > return !dev_client->do_flow_control || dev_client->num_send_tokens; > } > > -static uint64_t spice_char_device_max_send_tokens(SpiceCharDeviceState *dev) > +static uint64_t red_char_device_max_send_tokens(RedCharDevice *dev) > { > RingItem *item; > uint64_t max = 0; > @@ -322,7 +322,7 @@ static uint64_t > spice_char_device_max_send_tokens(SpiceCharDeviceState *dev) > static void > spice_char_device_add_msg_to_client_queue(SpiceCharDeviceClientState > *dev_client, > SpiceCharDeviceMsgToClient > *msg) > { > - SpiceCharDeviceState *dev = dev_client->dev; > + RedCharDevice *dev = dev_client->dev; > SpiceCharDeviceMsgToClientItem *msg_item; > > if (dev_client->send_queue_size >= dev_client->max_send_queue_size) { > @@ -331,7 +331,7 @@ static void > spice_char_device_add_msg_to_client_queue(SpiceCharDeviceClientState > } > > msg_item = spice_new0(SpiceCharDeviceMsgToClientItem, 1); > - msg_item->msg = spice_char_device_ref_msg_to_client(dev, msg); > + msg_item->msg = red_char_device_ref_msg_to_client(dev, msg); > ring_add(&dev_client->send_queue, &msg_item->link); > dev_client->send_queue_size++; > if (!dev_client->wait_for_tokens_started) { > @@ -341,8 +341,8 @@ static void > spice_char_device_add_msg_to_client_queue(SpiceCharDeviceClientState > } > } > > -static void spice_char_device_send_msg_to_clients(SpiceCharDeviceState *dev, > - SpiceCharDeviceMsgToClient > *msg) > +static void red_char_device_send_msg_to_clients(RedCharDevice *dev, > + SpiceCharDeviceMsgToClient > *msg) > { > RingItem *item, *next; > > @@ -353,7 +353,7 @@ static void > spice_char_device_send_msg_to_clients(SpiceCharDeviceState *dev, > if (spice_char_device_can_send_to_client(dev_client)) { > dev_client->num_send_tokens--; > spice_assert(ring_is_empty(&dev_client->send_queue)); > - spice_char_device_send_msg_to_client(dev, msg, > dev_client->client); > + red_char_device_send_msg_to_client(dev, msg, > dev_client->client); > > /* don't refer to dev_client anymore, it may have been released > */ > } else { > @@ -362,7 +362,7 @@ static void > spice_char_device_send_msg_to_clients(SpiceCharDeviceState *dev, > } > } > > -static int spice_char_device_read_from_device(SpiceCharDeviceState *dev) > +static int red_char_device_read_from_device(RedCharDevice *dev) > { > uint64_t max_send_tokens; > int did_read = FALSE; > @@ -381,7 +381,7 @@ static int > spice_char_device_read_from_device(SpiceCharDeviceState *dev) > return FALSE; > } > > - max_send_tokens = spice_char_device_max_send_tokens(dev); > + max_send_tokens = red_char_device_max_send_tokens(dev); > g_object_ref(dev); > /* > * Reading from the device only in case at least one of the clients have > a free token. > @@ -390,7 +390,7 @@ static int > spice_char_device_read_from_device(SpiceCharDeviceState *dev) > while ((max_send_tokens || ring_is_empty(&dev->priv->clients)) && > dev->priv->running) { > SpiceCharDeviceMsgToClient *msg; > > - msg = spice_char_device_read_one_msg_from_device(dev); > + msg = red_char_device_read_one_msg_from_device(dev); > if (!msg) { > if (dev->priv->during_read_from_device > 1) { > dev->priv->during_read_from_device = 1; > @@ -400,8 +400,8 @@ static int > spice_char_device_read_from_device(SpiceCharDeviceState *dev) > break; > } > did_read = TRUE; > - spice_char_device_send_msg_to_clients(dev, msg); > - spice_char_device_unref_msg_to_client(dev, msg); > + red_char_device_send_msg_to_clients(dev, msg); > + red_char_device_unref_msg_to_client(dev, msg); > max_send_tokens--; > } > dev->priv->during_read_from_device = 0; > @@ -423,10 +423,10 @@ static void > spice_char_device_client_send_queue_push(SpiceCharDeviceClientState > ring_remove(item); > > dev_client->num_send_tokens--; > - spice_char_device_send_msg_to_client(dev_client->dev, > - msg_item->msg, > - dev_client->client); > - spice_char_device_unref_msg_to_client(dev_client->dev, > msg_item->msg); > + red_char_device_send_msg_to_client(dev_client->dev, > + msg_item->msg, > + dev_client->client); > + red_char_device_unref_msg_to_client(dev_client->dev, msg_item->msg); > dev_client->send_queue_size--; > free(msg_item); > } > @@ -435,7 +435,7 @@ static void > spice_char_device_client_send_queue_push(SpiceCharDeviceClientState > static void > spice_char_device_send_to_client_tokens_absorb(SpiceCharDeviceClientState > *dev_client, > uint32_t tokens) > { > - SpiceCharDeviceState *dev = dev_client->dev; > + RedCharDevice *dev = dev_client->dev; > dev_client->num_send_tokens += tokens; > > if (dev_client->send_queue_size) { > @@ -446,7 +446,7 @@ static void > spice_char_device_send_to_client_tokens_absorb(SpiceCharDeviceClient > if (spice_char_device_can_send_to_client(dev_client)) { > reds_core_timer_cancel(dev->priv->reds, > dev_client->wait_for_tokens_timer); > dev_client->wait_for_tokens_started = FALSE; > - spice_char_device_read_from_device(dev_client->dev); > + red_char_device_read_from_device(dev_client->dev); > } else if (dev_client->send_queue_size) { > reds_core_timer_start(dev->priv->reds, > dev_client->wait_for_tokens_timer, > SPICE_CHAR_DEVICE_WAIT_TOKENS_TIMEOUT); > @@ -454,13 +454,13 @@ static void > spice_char_device_send_to_client_tokens_absorb(SpiceCharDeviceClient > } > } > > -void spice_char_device_send_to_client_tokens_add(SpiceCharDeviceState *dev, > +void red_char_device_send_to_client_tokens_add(RedCharDevice *dev, > RedClient *client, > uint32_t tokens) > { > SpiceCharDeviceClientState *dev_client; > > - dev_client = spice_char_device_client_find(dev, client); > + dev_client = red_char_device_client_find(dev, client); > > if (!dev_client) { > spice_error("client wasn't found dev %p client %p", dev, client); > @@ -469,13 +469,13 @@ void > spice_char_device_send_to_client_tokens_add(SpiceCharDeviceState *dev, > spice_char_device_send_to_client_tokens_absorb(dev_client, tokens); > } > > -void spice_char_device_send_to_client_tokens_set(SpiceCharDeviceState *dev, > +void red_char_device_send_to_client_tokens_set(RedCharDevice *dev, > RedClient *client, > uint32_t tokens) > { > SpiceCharDeviceClientState *dev_client; > > - dev_client = spice_char_device_client_find(dev, client); > + dev_client = red_char_device_client_find(dev, client); > > if (!dev_client) { > spice_error("client wasn't found dev %p client %p", dev, client); > @@ -490,9 +490,9 @@ void > spice_char_device_send_to_client_tokens_set(SpiceCharDeviceState *dev, > * Writing to the device * > ***************************/ > > -static void spice_char_device_client_tokens_add(SpiceCharDeviceState *dev, > - SpiceCharDeviceClientState > *dev_client, > - uint32_t num_tokens) > +static void red_char_device_client_tokens_add(RedCharDevice *dev, > + SpiceCharDeviceClientState > *dev_client, > + uint32_t num_tokens) > { > if (!dev_client->do_flow_control) { > return; > @@ -506,11 +506,11 @@ static void > spice_char_device_client_tokens_add(SpiceCharDeviceState *dev, > > dev_client->num_client_tokens += dev_client->num_client_tokens_free; > dev_client->num_client_tokens_free = 0; > - spice_char_device_send_tokens_to_client(dev, dev_client->client, > tokens); > + red_char_device_send_tokens_to_client(dev, dev_client->client, > tokens); > } > } > > -static int spice_char_device_write_to_device(SpiceCharDeviceState *dev) > +static int red_char_device_write_to_device(RedCharDevice *dev) > { > SpiceCharDeviceInterface *sif; > int total = 0; > @@ -561,7 +561,7 @@ static int > spice_char_device_write_to_device(SpiceCharDeviceState *dev) > if (!write_len) { > SpiceCharDeviceWriteBuffer *release_buf = > dev->priv->cur_write_buf; > dev->priv->cur_write_buf = NULL; > - spice_char_device_write_buffer_release(dev, release_buf); > + red_char_device_write_buffer_release(dev, release_buf); > continue; > } > dev->priv->cur_write_buf_pos += n; > @@ -585,16 +585,16 @@ static int > spice_char_device_write_to_device(SpiceCharDeviceState *dev) > > static void spice_char_dev_write_retry(void *opaque) > { > - SpiceCharDeviceState *dev = opaque; > + RedCharDevice *dev = opaque; > > if (dev->priv->write_to_dev_timer) { > reds_core_timer_cancel(dev->priv->reds, > dev->priv->write_to_dev_timer); > } > - spice_char_device_write_to_device(dev); > + red_char_device_write_to_device(dev); > } > > -static SpiceCharDeviceWriteBuffer *__spice_char_device_write_buffer_get( > - SpiceCharDeviceState *dev, RedClient *client, > +static SpiceCharDeviceWriteBuffer *__red_char_device_write_buffer_get( > + RedCharDevice *dev, RedClient *client, > int size, int origin, int migrated_data_tokens) > { > RingItem *item; > @@ -622,7 +622,7 @@ static SpiceCharDeviceWriteBuffer > *__spice_char_device_write_buffer_get( > > if (origin == WRITE_BUFFER_ORIGIN_CLIENT) { > spice_assert(client); > - SpiceCharDeviceClientState *dev_client = > spice_char_device_client_find(dev, client); > + SpiceCharDeviceClientState *dev_client = > red_char_device_client_find(dev, client); > if (dev_client) { > if (!migrated_data_tokens && > dev_client->do_flow_control && > !dev_client->num_client_tokens) { > @@ -653,19 +653,19 @@ error: > return NULL; > } > > -SpiceCharDeviceWriteBuffer > *spice_char_device_write_buffer_get(SpiceCharDeviceState *dev, > - RedClient > *client, > - int size) > +SpiceCharDeviceWriteBuffer *red_char_device_write_buffer_get(RedCharDevice > *dev, > + RedClient > *client, > + int size) > { > - return __spice_char_device_write_buffer_get(dev, client, size, > + return __red_char_device_write_buffer_get(dev, client, size, > client ? WRITE_BUFFER_ORIGIN_CLIENT : > WRITE_BUFFER_ORIGIN_SERVER, > 0); > } > > -SpiceCharDeviceWriteBuffer > *spice_char_device_write_buffer_get_server_no_token( > - SpiceCharDeviceState *dev, int size) > +SpiceCharDeviceWriteBuffer > *red_char_device_write_buffer_get_server_no_token( > + RedCharDevice *dev, int size) > { > - return __spice_char_device_write_buffer_get(dev, NULL, size, > + return __red_char_device_write_buffer_get(dev, NULL, size, > WRITE_BUFFER_ORIGIN_SERVER_NO_TOKEN, 0); > } > > @@ -686,24 +686,24 @@ static void > spice_char_device_write_buffer_unref(SpiceCharDeviceWriteBuffer *wri > spice_char_device_write_buffer_free(write_buf); > } > > -void spice_char_device_write_buffer_add(SpiceCharDeviceState *dev, > - SpiceCharDeviceWriteBuffer > *write_buf) > +void red_char_device_write_buffer_add(RedCharDevice *dev, > + SpiceCharDeviceWriteBuffer *write_buf) > { > spice_assert(dev); > /* caller shouldn't add buffers for client that was removed */ > if (write_buf->origin == WRITE_BUFFER_ORIGIN_CLIENT && > - !spice_char_device_client_find(dev, write_buf->client)) { > + !red_char_device_client_find(dev, write_buf->client)) { > spice_printerr("client not found: dev %p client %p", dev, > write_buf->client); > - spice_char_device_write_buffer_pool_add(dev, write_buf); > + red_char_device_write_buffer_pool_add(dev, write_buf); > return; > } > > ring_add(&dev->priv->write_queue, &write_buf->link); > - spice_char_device_write_to_device(dev); > + red_char_device_write_to_device(dev); > } > > -void spice_char_device_write_buffer_release(SpiceCharDeviceState *dev, > - SpiceCharDeviceWriteBuffer > *write_buf) > +void red_char_device_write_buffer_release(RedCharDevice *dev, > + SpiceCharDeviceWriteBuffer > *write_buf) > { > int buf_origin = write_buf->origin; > uint32_t buf_token_price = write_buf->token_price; > @@ -718,18 +718,18 @@ void > spice_char_device_write_buffer_release(SpiceCharDeviceState *dev, > > spice_assert(dev->priv->cur_write_buf != write_buf); > > - spice_char_device_write_buffer_pool_add(dev, write_buf); > + red_char_device_write_buffer_pool_add(dev, write_buf); > if (buf_origin == WRITE_BUFFER_ORIGIN_CLIENT) { > SpiceCharDeviceClientState *dev_client; > > spice_assert(client); > - dev_client = spice_char_device_client_find(dev, client); > + dev_client = red_char_device_client_find(dev, client); > /* when a client is removed, we remove all the buffers that are > associated with it */ > spice_assert(dev_client); > - spice_char_device_client_tokens_add(dev, dev_client, > buf_token_price); > + red_char_device_client_tokens_add(dev, dev_client, buf_token_price); > } else if (buf_origin == WRITE_BUFFER_ORIGIN_SERVER) { > dev->priv->num_self_tokens++; > - spice_char_device_on_free_self_token(dev); > + red_char_device_on_free_self_token(dev); > } > } > > @@ -737,20 +737,20 @@ void > spice_char_device_write_buffer_release(SpiceCharDeviceState *dev, > * char_device_state management * > ********************************/ > > -void spice_char_device_state_reset_dev_instance(SpiceCharDeviceState *state, > - SpiceCharDeviceInstance > *sin) > +void red_char_device_reset_dev_instance(RedCharDevice *state, > + SpiceCharDeviceInstance *sin) > { > spice_debug("sin %p dev_state %p", sin, state); > state->priv->sin = sin; > sin->st = state; > } > > -void *spice_char_device_state_opaque_get(SpiceCharDeviceState *dev) > +void *red_char_device_opaque_get(RedCharDevice *dev) > { > return dev->priv->opaque; > } > > -void spice_char_device_state_destroy(SpiceCharDeviceState *char_dev) > +void red_char_device_destroy(RedCharDevice *char_dev) > { > g_return_if_fail(RED_IS_CHAR_DEVICE(char_dev)); > g_object_unref(char_dev); > @@ -787,13 +787,13 @@ static SpiceCharDeviceClientState > *red_char_device_client_new(RedClient *client, > return dev_client; > } > > -int spice_char_device_client_add(SpiceCharDeviceState *dev, > - RedClient *client, > - int do_flow_control, > - uint32_t max_send_queue_size, > - uint32_t num_client_tokens, > - uint32_t num_send_tokens, > - int wait_for_migrate_data) > +int red_char_device_client_add(RedCharDevice *dev, > + RedClient *client, > + int do_flow_control, > + uint32_t max_send_queue_size, > + uint32_t num_client_tokens, > + uint32_t num_send_tokens, > + int wait_for_migrate_data) > { > SpiceCharDeviceClientState *dev_client; > > @@ -817,27 +817,27 @@ int spice_char_device_client_add(SpiceCharDeviceState > *dev, > ring_add(&dev->priv->clients, &dev_client->link); > dev->priv->num_clients++; > /* Now that we have a client, forward any pending device data */ > - spice_char_device_wakeup(dev); > + red_char_device_wakeup(dev); > return TRUE; > } > > -void spice_char_device_client_remove(SpiceCharDeviceState *dev, > - RedClient *client) > +void red_char_device_client_remove(RedCharDevice *dev, > + RedClient *client) > { > SpiceCharDeviceClientState *dev_client; > > spice_debug("dev_state %p client %p", dev, client); > - dev_client = spice_char_device_client_find(dev, client); > + dev_client = red_char_device_client_find(dev, client); > > if (!dev_client) { > spice_error("client wasn't found"); > return; > } > - spice_char_device_client_free(dev, dev_client); > + red_char_device_client_free(dev, dev_client); > if (dev->priv->wait_for_migrate_data) { > spice_assert(dev->priv->num_clients == 0); > dev->priv->wait_for_migrate_data = FALSE; > - spice_char_device_read_from_device(dev); > + red_char_device_read_from_device(dev); > } > > if (dev->priv->num_clients == 0) { > @@ -847,23 +847,23 @@ void > spice_char_device_client_remove(SpiceCharDeviceState *dev, > } > } > > -int spice_char_device_client_exists(SpiceCharDeviceState *dev, > +int red_char_device_client_exists(RedCharDevice *dev, > RedClient *client) > { > - return (spice_char_device_client_find(dev, client) != NULL); > + return (red_char_device_client_find(dev, client) != NULL); > } > > -void spice_char_device_start(SpiceCharDeviceState *dev) > +void red_char_device_start(RedCharDevice *dev) > { > spice_debug("dev_state %p", dev); > dev->priv->running = TRUE; > g_object_ref(dev); > - while (spice_char_device_write_to_device(dev) || > - spice_char_device_read_from_device(dev)); > + while (red_char_device_write_to_device(dev) || > + red_char_device_read_from_device(dev)); > g_object_unref(dev); > } > > -void spice_char_device_stop(SpiceCharDeviceState *dev) > +void red_char_device_stop(RedCharDevice *dev) > { > spice_debug("dev_state %p", dev); > dev->priv->running = FALSE; > @@ -873,11 +873,11 @@ void spice_char_device_stop(SpiceCharDeviceState *dev) > } > } > > -void spice_char_device_reset(SpiceCharDeviceState *dev) > +void red_char_device_reset(RedCharDevice *dev) > { > RingItem *client_item; > > - spice_char_device_stop(dev); > + red_char_device_stop(dev); > dev->priv->wait_for_migrate_data = FALSE; > spice_debug("dev_state %p", dev); > while (!ring_is_empty(&dev->priv->write_queue)) { > @@ -887,35 +887,35 @@ void spice_char_device_reset(SpiceCharDeviceState *dev) > ring_remove(item); > buf = SPICE_CONTAINEROF(item, SpiceCharDeviceWriteBuffer, link); > /* tracking the tokens */ > - spice_char_device_write_buffer_release(dev, buf); > + red_char_device_write_buffer_release(dev, buf); > } > if (dev->priv->cur_write_buf) { > SpiceCharDeviceWriteBuffer *release_buf = dev->priv->cur_write_buf; > > dev->priv->cur_write_buf = NULL; > - spice_char_device_write_buffer_release(dev, release_buf); > + red_char_device_write_buffer_release(dev, release_buf); > } > > RING_FOREACH(client_item, &dev->priv->clients) { > SpiceCharDeviceClientState *dev_client; > > dev_client = SPICE_CONTAINEROF(client_item, > SpiceCharDeviceClientState, link); > - spice_char_device_client_send_queue_free(dev, dev_client); > + red_char_device_client_send_queue_free(dev, dev_client); > } > dev->priv->sin = NULL; > } > > -void spice_char_device_wakeup(SpiceCharDeviceState *dev) > +void red_char_device_wakeup(RedCharDevice *dev) > { > - spice_char_device_write_to_device(dev); > - spice_char_device_read_from_device(dev); > + red_char_device_write_to_device(dev); > + red_char_device_read_from_device(dev); > } > > /************* > * Migration * > * **********/ > > -void spice_char_device_state_migrate_data_marshall_empty(SpiceMarshaller *m) > +void red_char_device_migrate_data_marshall_empty(SpiceMarshaller *m) > { > SpiceMigrateDataCharDevice *mig_data; > > @@ -934,8 +934,8 @@ static void > migrate_data_marshaller_write_buffer_free(uint8_t *data, void *opaqu > spice_char_device_write_buffer_unref(write_buf); > } > > -void spice_char_device_state_migrate_data_marshall(SpiceCharDeviceState > *dev, > - SpiceMarshaller *m) > +void red_char_device_migrate_data_marshall(RedCharDevice *dev, > + SpiceMarshaller *m) > { > SpiceCharDeviceClientState *client_state; > RingItem *item; > @@ -994,8 +994,8 @@ void > spice_char_device_state_migrate_data_marshall(SpiceCharDeviceState *dev, > dev, *write_to_dev_size_ptr, *write_to_dev_tokens_ptr); > } > > -int spice_char_device_state_restore(SpiceCharDeviceState *dev, > - SpiceMigrateDataCharDevice *mig_data) > +int red_char_device_restore(RedCharDevice *dev, > + SpiceMigrateDataCharDevice *mig_data) > { > SpiceCharDeviceClientState *client_state; > uint32_t client_tokens_window; > @@ -1024,12 +1024,12 @@ int > spice_char_device_state_restore(SpiceCharDeviceState *dev, > if (mig_data->write_size > 0) { > if (mig_data->write_num_client_tokens) { > dev->priv->cur_write_buf = > - __spice_char_device_write_buffer_get(dev, > client_state->client, > + __red_char_device_write_buffer_get(dev, > client_state->client, > mig_data->write_size, WRITE_BUFFER_ORIGIN_CLIENT, > mig_data->write_num_client_tokens); > } else { > dev->priv->cur_write_buf = > - __spice_char_device_write_buffer_get(dev, NULL, > + __red_char_device_write_buffer_get(dev, NULL, > mig_data->write_size, WRITE_BUFFER_ORIGIN_SERVER, 0); > } > /* the first write buffer contains all the data that was saved for > migration */ > @@ -1040,12 +1040,12 @@ int > spice_char_device_state_restore(SpiceCharDeviceState *dev, > dev->priv->cur_write_buf_pos = dev->priv->cur_write_buf->buf; > } > dev->priv->wait_for_migrate_data = FALSE; > - spice_char_device_write_to_device(dev); > - spice_char_device_read_from_device(dev); > + red_char_device_write_to_device(dev); > + red_char_device_read_from_device(dev); > return TRUE; > } > > -SpiceServer* spice_char_device_get_server(SpiceCharDeviceState *dev) > +SpiceServer* red_char_device_get_server(RedCharDevice *dev) > { > return dev->priv->reds; > } > @@ -1176,7 +1176,7 @@ red_char_device_finalize(GObject *object) > SpiceCharDeviceClientState *dev_client; > > dev_client = SPICE_CONTAINEROF(item, SpiceCharDeviceClientState, > link); > - spice_char_device_client_free(self, dev_client); > + red_char_device_client_free(self, dev_client); > } > self->priv->running = FALSE; > > diff --git a/server/char-device.h b/server/char-device.h > index b59e6f0..bb32649 100644 > --- a/server/char-device.h > +++ b/server/char-device.h > @@ -89,18 +89,18 @@ GType red_char_device_get_type(void) G_GNUC_CONST; > * How to use the api: > * ================== > * device attached: create new object instantiating a RedCharDevice child > class > - * device detached: call spice_char_device_state_destroy/reset > + * device detached: call red_char_device_destroy/reset > * > - * client connected and associated with a device: > spice_char_device_client_add > - * client disconnected: spice_char_device_client_remove > + * client connected and associated with a device: red_char_device_client_add > + * client disconnected: red_char_device_client_remove > * > * Writing to the device > * --------------------- > * Write the data into SpiceCharDeviceWriteBuffer: > - * call spice_char_device_write_buffer_get in order to get an appropriate > buffer. > - * call spice_char_device_write_buffer_add in order to push the buffer to > the write queue. > + * call red_char_device_write_buffer_get in order to get an appropriate > buffer. > + * call red_char_device_write_buffer_add in order to push the buffer to the > write queue. > * If you choose not to push the buffer to the device, call > - * spice_char_device_write_buffer_release > + * red_char_device_write_buffer_release > * > * reading from the device > * ----------------------- > @@ -112,12 +112,12 @@ GType red_char_device_get_type(void) G_GNUC_CONST; > * > * calls triggered from the device (qemu): > * -------------------------------------- > - * spice_char_device_start > - * spice_char_device_stop > - * spice_char_device_wakeup (for reading from the device) > + * red_char_device_start > + * red_char_device_stop > + * red_char_device_wakeup (for reading from the device) > */ > /* refcounting is used to protect the char_dev from being deallocated in > - * case spice_char_device_state_destroy has been called > + * case red_char_device_destroy has been called > * during a callback, and we might still access the char_dev afterwards. > */ > > @@ -159,19 +159,19 @@ typedef struct SpiceCharDeviceWriteBuffer { > uint32_t refs; > } SpiceCharDeviceWriteBuffer; > > -void spice_char_device_state_reset_dev_instance(SpiceCharDeviceState *dev, > - SpiceCharDeviceInstance > *sin); > -void spice_char_device_state_destroy(SpiceCharDeviceState *dev); > +void red_char_device_reset_dev_instance(RedCharDevice *dev, > + SpiceCharDeviceInstance *sin); > +void red_char_device_destroy(RedCharDevice *dev); > > -void *spice_char_device_state_opaque_get(SpiceCharDeviceState *dev); > +void *red_char_device_opaque_get(RedCharDevice *dev); > > /* only one client is supported */ > -void spice_char_device_state_migrate_data_marshall(SpiceCharDeviceState > *dev, > - SpiceMarshaller *m); > -void spice_char_device_state_migrate_data_marshall_empty(SpiceMarshaller > *m); > +void red_char_device_migrate_data_marshall(RedCharDevice *dev, > + SpiceMarshaller *m); > +void red_char_device_migrate_data_marshall_empty(SpiceMarshaller *m); > > -int spice_char_device_state_restore(SpiceCharDeviceState *dev, > - SpiceMigrateDataCharDevice *mig_data); > +int red_char_device_restore(RedCharDevice *dev, > + SpiceMigrateDataCharDevice *mig_data); > > /* > * Resets write/read queues, and moves that state to being stopped. > @@ -188,57 +188,57 @@ int > spice_char_device_state_restore(SpiceCharDeviceState *dev, > * > * todo: change AGENT_CONNECT msg to contain tokens count. > */ > -void spice_char_device_reset(SpiceCharDeviceState *dev); > +void red_char_device_reset(RedCharDevice *dev); > > /* max_send_queue_size = how many messages we can read from the device and > enqueue for this client, > * when we have tokens for other clients and no tokens for this one */ > -int spice_char_device_client_add(SpiceCharDeviceState *dev, > - RedClient *client, > - int do_flow_control, > - uint32_t max_send_queue_size, > - uint32_t num_client_tokens, > - uint32_t num_send_tokens, > - int wait_for_migrate_data); > - > -void spice_char_device_client_remove(SpiceCharDeviceState *dev, > - RedClient *client); > -int spice_char_device_client_exists(SpiceCharDeviceState *dev, > - RedClient *client); > - > -void spice_char_device_start(SpiceCharDeviceState *dev); > -void spice_char_device_stop(SpiceCharDeviceState *dev); > -SpiceServer* spice_char_device_get_server(SpiceCharDeviceState *dev); > +int red_char_device_client_add(RedCharDevice *dev, > + RedClient *client, > + int do_flow_control, > + uint32_t max_send_queue_size, > + uint32_t num_client_tokens, > + uint32_t num_send_tokens, > + int wait_for_migrate_data); > + > +void red_char_device_client_remove(RedCharDevice *dev, > + RedClient *client); > +int red_char_device_client_exists(RedCharDevice *dev, > + RedClient *client); > + > +void red_char_device_start(RedCharDevice *dev); > +void red_char_device_stop(RedCharDevice *dev); > +SpiceServer* red_char_device_get_server(RedCharDevice *dev); > > /** Read from device **/ > > -void spice_char_device_wakeup(SpiceCharDeviceState *dev); > +void red_char_device_wakeup(RedCharDevice *dev); > > -void spice_char_device_send_to_client_tokens_add(SpiceCharDeviceState *dev, > - RedClient *client, > - uint32_t tokens); > +void red_char_device_send_to_client_tokens_add(RedCharDevice *dev, > + RedClient *client, > + uint32_t tokens); > > > -void spice_char_device_send_to_client_tokens_set(SpiceCharDeviceState *dev, > - RedClient *client, > - uint32_t tokens); > +void red_char_device_send_to_client_tokens_set(RedCharDevice *dev, > + RedClient *client, > + uint32_t tokens); > /** Write to device **/ > > -SpiceCharDeviceWriteBuffer > *spice_char_device_write_buffer_get(SpiceCharDeviceState *dev, > - RedClient > *client, int size); > -SpiceCharDeviceWriteBuffer > *spice_char_device_write_buffer_get_server_no_token( > - SpiceCharDeviceState *dev, int size); > +SpiceCharDeviceWriteBuffer *red_char_device_write_buffer_get(RedCharDevice > *dev, > + RedClient > *client, int size); > +SpiceCharDeviceWriteBuffer > *red_char_device_write_buffer_get_server_no_token( > + RedCharDevice *dev, int size); > > /* Either add the buffer to the write queue or release it */ > -void spice_char_device_write_buffer_add(SpiceCharDeviceState *dev, > - SpiceCharDeviceWriteBuffer > *write_buf); > -void spice_char_device_write_buffer_release(SpiceCharDeviceState *dev, > - SpiceCharDeviceWriteBuffer > *write_buf); > +void red_char_device_write_buffer_add(RedCharDevice *dev, > + SpiceCharDeviceWriteBuffer > *write_buf); > +void red_char_device_write_buffer_release(RedCharDevice *dev, > + SpiceCharDeviceWriteBuffer > *write_buf); > > /* api for specific char devices */ > > -SpiceCharDeviceState *spicevmc_device_connect(struct RedsState *reds, > - SpiceCharDeviceInstance *sin, > - uint8_t channel_type); > +RedCharDevice *spicevmc_device_connect(struct RedsState *reds, > + SpiceCharDeviceInstance *sin, > + uint8_t channel_type); > void spicevmc_device_disconnect(struct RedsState *reds, > SpiceCharDeviceInstance *char_device); > > diff --git a/server/reds-private.h b/server/reds-private.h > index b3dac6d..97c689b 100644 > --- a/server/reds-private.h > +++ b/server/reds-private.h > @@ -128,7 +128,7 @@ struct RedsState { > SpiceTimer *mig_timer; > > int vm_running; > - GList *char_devices; /* list of SpiceCharDeviceState */ > + GList *char_devices; /* list of RedCharDevice */ > int seamless_migration_enabled; /* command line arg */ > > SSL_CTX *ctx; > diff --git a/server/reds.c b/server/reds.c > index 3d83841..ebb3c00 100644 > --- a/server/reds.c > +++ b/server/reds.c > @@ -253,8 +253,8 @@ static RedsMigTargetClient* > reds_mig_target_client_find(RedsState *reds, RedClie > static void reds_mig_target_client_free(RedsMigTargetClient *mig_client); > static void reds_mig_cleanup_wait_disconnect(RedsState *reds); > static void reds_mig_remove_wait_disconnect_client(RedsState *reds, > RedClient *client); > -static void reds_char_device_add_state(RedsState *reds, SpiceCharDeviceState > *st); > -static void reds_char_device_remove_state(RedsState *reds, > SpiceCharDeviceState *st); > +static void reds_add_char_device(RedsState *reds, RedCharDevice *dev); > +static void reds_remove_char_device(RedsState *reds, RedCharDevice *dev); > static void reds_send_mm_time(RedsState *reds); > static void reds_on_ic_change(RedsState *reds); > static void reds_on_sv_change(RedsState *reds); > @@ -518,7 +518,7 @@ static void reds_reset_vdp(RedsState *reds) > SPICE_MAIN_CAP_AGENT_CONNECTED_TOKENS)) > { > state->priv->agent_attached = FALSE; > } else { > - spice_char_device_reset(RED_CHAR_DEVICE(state)); > + red_char_device_reset(RED_CHAR_DEVICE(state)); > } > > sif = spice_char_device_get_interface(reds->vdagent); > @@ -569,8 +569,8 @@ void reds_client_disconnect(RedsState *reds, RedClient > *client) > if (reds->agent_state->priv->agent_attached) { > /* note that vdagent might be NULL, if the vdagent was once > * up and than was removed */ > - if > (spice_char_device_client_exists(RED_CHAR_DEVICE(reds->agent_state), > client)) { > - > spice_char_device_client_remove(RED_CHAR_DEVICE(reds->agent_state), > client); > + if > (red_char_device_client_exists(RED_CHAR_DEVICE(reds->agent_state), client)) > { > + > red_char_device_client_remove(RED_CHAR_DEVICE(reds->agent_state), > client); > } > } > > @@ -588,7 +588,7 @@ void reds_client_disconnect(RedsState *reds, RedClient > *client) > uint32_t total_msg_size; > > total_msg_size = sizeof(VDIChunkHeader) + > sizeof(VDAgentMessage); > - char_dev_buf = > spice_char_device_write_buffer_get_server_no_token( > + char_dev_buf = red_char_device_write_buffer_get_server_no_token( > RED_CHAR_DEVICE(reds->agent_state), > total_msg_size); > char_dev_buf->buf_used = total_msg_size; > internal_buf = (VDInternalBuf *)char_dev_buf->buf; > @@ -599,8 +599,8 @@ void reds_client_disconnect(RedsState *reds, RedClient > *client) > internal_buf->header.opaque = 0; > internal_buf->header.size = 0; > > - > spice_char_device_write_buffer_add(RED_CHAR_DEVICE(reds->agent_state), > - char_dev_buf); > + > red_char_device_write_buffer_add(RED_CHAR_DEVICE(reds->agent_state), > + char_dev_buf); > } > > /* Reset write filter to start with clean state on client reconnect > */ > @@ -780,7 +780,7 @@ static void vdi_port_read_buf_unref(VDIReadBuf *buf) > necessary. Note that since we can be called from > spice_char_device_wakeup > this can cause recursion, but we have protection for that */ > if (buf->state->priv->agent_attached) { > - spice_char_device_wakeup(RED_CHAR_DEVICE(buf->state)); > + red_char_device_wakeup(RED_CHAR_DEVICE(buf->state)); > } > } > } > @@ -926,9 +926,9 @@ void reds_handle_agent_mouse_event(RedsState *reds, const > VDAgentMouseState *mou > > total_msg_size = sizeof(VDIChunkHeader) + sizeof(VDAgentMessage) + > sizeof(VDAgentMouseState); > - char_dev_buf = > spice_char_device_write_buffer_get(RED_CHAR_DEVICE(reds->agent_state), > - NULL, > - total_msg_size); > + char_dev_buf = > red_char_device_write_buffer_get(RED_CHAR_DEVICE(reds->agent_state), > + NULL, > + total_msg_size); > > if (!char_dev_buf) { > reds->pending_mouse_event = TRUE; > @@ -947,7 +947,7 @@ void reds_handle_agent_mouse_event(RedsState *reds, const > VDAgentMouseState *mou > internal_buf->u.mouse_state = *mouse_state; > > char_dev_buf->buf_used = total_msg_size; > - spice_char_device_write_buffer_add(RED_CHAR_DEVICE(reds->agent_state), > char_dev_buf); > + red_char_device_write_buffer_add(RED_CHAR_DEVICE(reds->agent_state), > char_dev_buf); > } > > int reds_get_n_channels(RedsState *reds) > @@ -1003,13 +1003,13 @@ void reds_fill_channels(RedsState *reds, > SpiceMsgChannels *channels_info) > > void reds_on_main_agent_start(RedsState *reds, MainChannelClient *mcc, > uint32_t num_tokens) > { > - SpiceCharDeviceState *dev_state = RED_CHAR_DEVICE(reds->agent_state); > + RedCharDevice *dev = RED_CHAR_DEVICE(reds->agent_state); > RedChannelClient *rcc; > > if (!reds->vdagent) { > return; > } > - spice_assert(reds->vdagent->st && reds->vdagent->st == dev_state); > + spice_assert(reds->vdagent->st && reds->vdagent->st == dev); > rcc = main_channel_client_get_base(mcc); > reds->agent_state->priv->client_agent_started = TRUE; > /* > @@ -1019,16 +1019,16 @@ void reds_on_main_agent_start(RedsState *reds, > MainChannelClient *mcc, uint32_t > * and vice versa, the sending from the server to the client won't have > * flow control, but will have no other problem. > */ > - if (!spice_char_device_client_exists(dev_state, rcc->client)) { > + if (!red_char_device_client_exists(dev, rcc->client)) { > int client_added; > > - client_added = spice_char_device_client_add(dev_state, > - rcc->client, > - TRUE, /* flow control */ > - > REDS_VDI_PORT_NUM_RECEIVE_BUFFS, > - REDS_AGENT_WINDOW_SIZE, > - num_tokens, > - > red_channel_client_is_waiting_for_migrate_data(rcc)); > + client_added = red_char_device_client_add(dev, > + rcc->client, > + TRUE, /* flow control */ > + > REDS_VDI_PORT_NUM_RECEIVE_BUFFS, > + REDS_AGENT_WINDOW_SIZE, > + num_tokens, > + > red_channel_client_is_waiting_for_migrate_data(rcc)); > > if (!client_added) { > spice_warning("failed to add client to agent"); > @@ -1036,9 +1036,9 @@ void reds_on_main_agent_start(RedsState *reds, > MainChannelClient *mcc, uint32_t > return; > } > } else { > - spice_char_device_send_to_client_tokens_set(dev_state, > - rcc->client, > - num_tokens); > + red_char_device_send_to_client_tokens_set(dev, > + rcc->client, > + num_tokens); > } > > agent_msg_filter_config(&reds->agent_state->priv->write_filter, > reds->agent_copypaste, > @@ -1053,9 +1053,9 @@ void reds_on_main_agent_tokens(RedsState *reds, > MainChannelClient *mcc, uint32_t > return; > } > spice_assert(reds->vdagent->st); > - spice_char_device_send_to_client_tokens_add(reds->vdagent->st, > - > main_channel_client_get_base(mcc)->client, > - num_tokens); > + red_char_device_send_to_client_tokens_add(reds->vdagent->st, > + > main_channel_client_get_base(mcc)->client, > + num_tokens); > } > > uint8_t *reds_get_agent_data_buffer(RedsState *reds, MainChannelClient *mcc, > size_t size) > @@ -1076,9 +1076,9 @@ uint8_t *reds_get_agent_data_buffer(RedsState *reds, > MainChannelClient *mcc, siz > > spice_assert(dev_state->priv->recv_from_client_buf == NULL); > client = main_channel_client_get_base(mcc)->client; > - dev_state->priv->recv_from_client_buf = > spice_char_device_write_buffer_get(RED_CHAR_DEVICE(dev_state), > - > client, > - > size > + sizeof(VDIChunkHeader)); > + dev_state->priv->recv_from_client_buf = > red_char_device_write_buffer_get(RED_CHAR_DEVICE(dev_state), > + > client, > + > size > + sizeof(VDIChunkHeader)); > dev_state->priv->recv_from_client_buf_pushed = FALSE; > return dev_state->priv->recv_from_client_buf->buf + > sizeof(VDIChunkHeader); > } > @@ -1094,8 +1094,8 @@ void reds_release_agent_data_buffer(RedsState *reds, > uint8_t *buf) > > spice_assert(buf == dev_state->priv->recv_from_client_buf->buf + > sizeof(VDIChunkHeader)); > if (!dev_state->priv->recv_from_client_buf_pushed) { > - > spice_char_device_write_buffer_release(RED_CHAR_DEVICE(reds->agent_state), > - > dev_state->priv->recv_from_client_buf); > + > red_char_device_write_buffer_release(RED_CHAR_DEVICE(reds->agent_state), > + > dev_state->priv->recv_from_client_buf); > } > dev_state->priv->recv_from_client_buf = NULL; > dev_state->priv->recv_from_client_buf_pushed = FALSE; > @@ -1166,7 +1166,7 @@ void reds_on_main_agent_data(RedsState *reds, > MainChannelClient *mcc, void *mess > dev_state->priv->recv_from_client_buf->buf_used = sizeof(VDIChunkHeader) > + size; > > dev_state->priv->recv_from_client_buf_pushed = TRUE; > - spice_char_device_write_buffer_add(RED_CHAR_DEVICE(reds->agent_state), > dev_state->priv->recv_from_client_buf); > + red_char_device_write_buffer_add(RED_CHAR_DEVICE(reds->agent_state), > dev_state->priv->recv_from_client_buf); > } > > void reds_on_main_migrate_connected(RedsState *reds, int seamless) > @@ -1262,7 +1262,7 @@ void reds_marshall_migrate_data(RedsState *reds, > SpiceMarshaller *m) > there is no need to track the client tokens > (see reds_reset_vdp) */ > spice_assert(!agent_state->priv->agent_attached); > - spice_char_device_state_migrate_data_marshall_empty(m); > + red_char_device_migrate_data_marshall_empty(m); > null_agent_mig_data = spice_marshaller_reserve_space(m, > sizeof(SpiceMigrateDataMain) > - > sizeof(SpiceMigrateDataCharDevice)); > @@ -1272,7 +1272,7 @@ void reds_marshall_migrate_data(RedsState *reds, > SpiceMarshaller *m) > return; > } > > - > spice_char_device_state_migrate_data_marshall(RED_CHAR_DEVICE(reds->agent_state), > m); > + > red_char_device_migrate_data_marshall(RED_CHAR_DEVICE(reds->agent_state), > m); > spice_marshaller_add_uint8(m, > reds->agent_state->priv->client_agent_started); > > mig_data.agent2client.chunk_header = > agent_state->priv->vdi_chunk_header; > @@ -1392,7 +1392,7 @@ static int reds_agent_state_restore(RedsState *reds, > SpiceMigrateDataMain *mig_d > agent_state->priv->read_filter.discard_all, > agent_state->priv->read_filter.msg_data_to_read, > agent_state->priv->read_filter.result); > - return spice_char_device_state_restore(RED_CHAR_DEVICE(agent_state), > &mig_data->agent_base); > + return red_char_device_restore(RED_CHAR_DEVICE(agent_state), > &mig_data->agent_base); > } > > /* > @@ -1441,8 +1441,8 @@ int reds_handle_migrate_data(RedsState *reds, > MainChannelClient *mcc, > spice_debug("agent was not attached on the source host"); > if (reds->vdagent) { > /* spice_char_device_client_remove disables waiting for > migration data */ > - spice_char_device_client_remove(RED_CHAR_DEVICE(agent_state), > - > main_channel_client_get_base(mcc)->client); > + red_char_device_client_remove(RED_CHAR_DEVICE(agent_state), > + > main_channel_client_get_base(mcc)->client); > main_channel_push_agent_connected(reds->main_channel); > } > } > @@ -3050,13 +3050,13 @@ void reds_disable_mm_time(RedsState *reds) > reds->mm_time_enabled = FALSE; > } > > -static SpiceCharDeviceState *attach_to_red_agent(RedsState *reds, > SpiceCharDeviceInstance *sin) > +static RedCharDevice *attach_to_red_agent(RedsState *reds, > SpiceCharDeviceInstance *sin) > { > VDIPortState *state = reds->agent_state; > SpiceCharDeviceInterface *sif; > > if (state->priv->agent_attached) { > - spice_char_device_state_reset_dev_instance(RED_CHAR_DEVICE(state), > sin); > + red_char_device_reset_dev_instance(RED_CHAR_DEVICE(state), sin); > } else { > state->priv->agent_attached = TRUE; > g_object_set(G_OBJECT(state), "sin", sin, NULL); > @@ -3086,16 +3086,16 @@ static SpiceCharDeviceState > *attach_to_red_agent(RedsState *reds, SpiceCharDevic > * 2.b If this happens second ==> we already have spice migrate data > * then restore state > */ > - if (!spice_char_device_client_exists(RED_CHAR_DEVICE(state), > reds_get_client(reds))) { > + if (!red_char_device_client_exists(RED_CHAR_DEVICE(state), > reds_get_client(reds))) { > int client_added; > > - client_added = > spice_char_device_client_add(RED_CHAR_DEVICE(state), > - > reds_get_client(reds), > - TRUE, /* flow > control */ > - > REDS_VDI_PORT_NUM_RECEIVE_BUFFS, > - > REDS_AGENT_WINDOW_SIZE, > - ~0, > - TRUE); > + client_added = > red_char_device_client_add(RED_CHAR_DEVICE(state), > + reds_get_client(reds), > + TRUE, /* flow control > */ > + > REDS_VDI_PORT_NUM_RECEIVE_BUFFS, > + > REDS_AGENT_WINDOW_SIZE, > + ~0, > + TRUE); > > if (!client_added) { > spice_warning("failed to add client to agent"); > @@ -3125,10 +3125,10 @@ static SpiceCharDeviceState > *attach_to_red_agent(RedsState *reds, SpiceCharDevic > SPICE_GNUC_VISIBLE void > spice_server_char_device_wakeup(SpiceCharDeviceInstance* sin) > { > if (!sin->st) { > - spice_warning("no SpiceCharDeviceState attached to instance %p", > sin); > + spice_warning("no RedCharDevice attached to instance %p", sin); > return; > } > - spice_char_device_wakeup(sin->st); > + red_char_device_wakeup(sin->st); > } > > #define SUBTYPE_VDAGENT "vdagent" > @@ -3150,20 +3150,20 @@ SPICE_GNUC_VISIBLE const char** > spice_server_char_device_recognized_subtypes(voi > return spice_server_char_device_recognized_subtypes_list; > } > > -static void reds_char_device_add_state(RedsState *reds, SpiceCharDeviceState > *st) > +static void reds_add_char_device(RedsState *reds, RedCharDevice *dev) > { > - reds->char_devices = g_list_append(reds->char_devices, st); > + reds->char_devices = g_list_append(reds->char_devices, dev); > } > > -static void reds_char_device_remove_state(RedsState *reds, > SpiceCharDeviceState *st) > +static void reds_remove_char_device(RedsState *reds, RedCharDevice *dev) > { > - g_warn_if_fail(g_list_find(reds->char_devices, st) != NULL); > - reds->char_devices = g_list_remove(reds->char_devices, st); > + g_warn_if_fail(g_list_find(reds->char_devices, dev) != NULL); > + reds->char_devices = g_list_remove(reds->char_devices, dev); > } > > -void reds_on_char_device_state_destroy(RedsState *reds, SpiceCharDeviceState > *dev) > +void reds_on_char_device_state_destroy(RedsState *reds, RedCharDevice *dev) > { > - reds_char_device_remove_state(reds, dev); > + reds_remove_char_device(reds, dev); > } > > static int spice_server_char_device_add_interface(SpiceServer *reds, > @@ -3171,7 +3171,7 @@ static int > spice_server_char_device_add_interface(SpiceServer *reds, > { > SpiceCharDeviceInstance* char_device = > SPICE_CONTAINEROF(sin, SpiceCharDeviceInstance, base); > - SpiceCharDeviceState *dev_state = NULL; > + RedCharDevice *dev = NULL; > > spice_info("CHAR_DEVICE %s", char_device->subtype); > if (strcmp(char_device->subtype, SUBTYPE_VDAGENT) == 0) { > @@ -3179,34 +3179,34 @@ static int > spice_server_char_device_add_interface(SpiceServer *reds, > spice_warning("vdagent already attached"); > return -1; > } > - dev_state = attach_to_red_agent(reds, char_device); > + dev = attach_to_red_agent(reds, char_device); > } > #ifdef USE_SMARTCARD > else if (strcmp(char_device->subtype, SUBTYPE_SMARTCARD) == 0) { > - if (!(dev_state = smartcard_device_connect(reds, char_device))) { > + if (!(dev = smartcard_device_connect(reds, char_device))) { > return -1; > } > } > #endif > else if (strcmp(char_device->subtype, SUBTYPE_USBREDIR) == 0) { > - dev_state = spicevmc_device_connect(reds, char_device, > SPICE_CHANNEL_USBREDIR); > + dev = spicevmc_device_connect(reds, char_device, > SPICE_CHANNEL_USBREDIR); > } > else if (strcmp(char_device->subtype, SUBTYPE_PORT) == 0) { > if (strcmp(char_device->portname, "org.spice-space.webdav.0") == 0) > { > - dev_state = spicevmc_device_connect(reds, char_device, > SPICE_CHANNEL_WEBDAV); > + dev = spicevmc_device_connect(reds, char_device, > SPICE_CHANNEL_WEBDAV); > } else { > - dev_state = spicevmc_device_connect(reds, char_device, > SPICE_CHANNEL_PORT); > + dev = spicevmc_device_connect(reds, char_device, > SPICE_CHANNEL_PORT); > } > } > > - if (dev_state) { > + if (dev) { > spice_assert(char_device->st); > /* setting the char_device state to "started" for backward > compatibily with > * qemu releases that don't call spice api for start/stop (not > implemented yet) */ > if (reds->vm_running) { > - spice_char_device_start(char_device->st); > + red_char_device_start(char_device->st); > } > - reds_char_device_add_state(reds, char_device->st); > + reds_add_char_device(reds, char_device->st); > } else { > spice_warning("failed to create device state for %s", > char_device->subtype); > return -1; > @@ -3366,7 +3366,7 @@ SPICE_GNUC_VISIBLE int > spice_server_remove_interface(SpiceBaseInstance *sin) > snd_detach_record(SPICE_CONTAINEROF(sin, SpiceRecordInstance, > base)); > } else if (strcmp(interface->type, SPICE_INTERFACE_CHAR_DEVICE) == 0) { > SpiceCharDeviceInstance *char_device = SPICE_CONTAINEROF(sin, > SpiceCharDeviceInstance, base); > - reds = spice_char_device_get_server(char_device->st); > + reds = red_char_device_get_server(char_device->st); > spice_server_char_device_remove_interface(reds, sin); > } else { > spice_warning("VD_INTERFACE_REMOVING unsupported"); > @@ -4020,7 +4020,7 @@ SPICE_GNUC_VISIBLE void > spice_server_vm_start(SpiceServer *reds) > > reds->vm_running = TRUE; > for (it = reds->char_devices; it != NULL; it = it->next) { > - spice_char_device_start((SpiceCharDeviceState *)it->data); > + red_char_device_start(it->data); > } > reds_on_vm_start(reds); > } > @@ -4031,7 +4031,7 @@ SPICE_GNUC_VISIBLE void > spice_server_vm_stop(SpiceServer *reds) > > reds->vm_running = FALSE; > for (it = reds->char_devices; it != NULL; it = it->next) { > - spice_char_device_stop((SpiceCharDeviceState *)it->data); > + red_char_device_stop(it->data); > } > reds_on_vm_stop(reds); > } > diff --git a/server/reds.h b/server/reds.h > index 5966dc3..83618e9 100644 > --- a/server/reds.h > +++ b/server/reds.h > @@ -26,6 +26,7 @@ > > #include "common/marshaller.h" > #include "common/messages.h" > +#include "char-device.h" > #include "spice.h" > #include "red-channel.h" > #include "main-dispatcher.h" > @@ -101,7 +102,7 @@ int reds_on_migrate_dst_set_seamless(RedsState *reds, > MainChannelClient *mcc, ui > void reds_on_client_semi_seamless_migrate_complete(RedsState *reds, > RedClient *client); > void reds_on_client_seamless_migrate_complete(RedsState *reds, RedClient > *client); > void reds_on_main_channel_migrate(RedsState *reds, MainChannelClient *mcc); > -void reds_on_char_device_state_destroy(RedsState *reds, SpiceCharDeviceState > *dev); > +void reds_on_char_device_state_destroy(RedsState *reds, RedCharDevice *dev); > > void reds_set_client_mm_time_latency(RedsState *reds, RedClient *client, > uint32_t latency); > uint32_t reds_get_streaming_video(const RedsState *reds); > diff --git a/server/smartcard.c b/server/smartcard.c > index 3d40f59..228e2b9 100644 > --- a/server/smartcard.c > +++ b/server/smartcard.c > @@ -238,7 +238,7 @@ MsgItem > *smartcard_char_device_on_message_from_device(SmartCardDeviceState *stat > > static int smartcard_char_device_add_to_readers(RedsState *reds, > SpiceCharDeviceInstance *char_device) > { > - SmartCardDeviceState *state = > spice_char_device_state_opaque_get(char_device->st); > + SmartCardDeviceState *state = > red_char_device_opaque_get(char_device->st); > > if (g_smartcard_readers.num >= SMARTCARD_MAX_READERS) { > return -1; > @@ -263,7 +263,7 @@ static SpiceCharDeviceInstance > *smartcard_readers_get_unattached(void) > SmartCardDeviceState* state; > > for (i = 0; i < g_smartcard_readers.num; ++i) { > - state = > spice_char_device_state_opaque_get(g_smartcard_readers.sin[i]->st); > + state = red_char_device_opaque_get(g_smartcard_readers.sin[i]->st); > if (!state->priv->scc) { > return g_smartcard_readers.sin[i]; > } > @@ -294,7 +294,7 @@ void smartcard_device_disconnect(SpiceCharDeviceInstance > *char_device) > g_object_unref(char_device); > } > > -SpiceCharDeviceState *smartcard_device_connect(RedsState *reds, > SpiceCharDeviceInstance *char_device) > +RedCharDevice *smartcard_device_connect(RedsState *reds, > SpiceCharDeviceInstance *char_device) > { > SmartCardDeviceState *st; > > @@ -311,7 +311,7 @@ static void > smartcard_char_device_notify_reader_add(SmartCardDeviceState *st) > SpiceCharDeviceWriteBuffer *write_buf; > VSCMsgHeader *vheader; > > - write_buf = spice_char_device_write_buffer_get(RED_CHAR_DEVICE(st), > NULL, sizeof(vheader)); > + write_buf = red_char_device_write_buffer_get(RED_CHAR_DEVICE(st), NULL, > sizeof(vheader)); > if (!write_buf) { > spice_error("failed to allocate write buffer"); > return; > @@ -327,20 +327,20 @@ static void > smartcard_char_device_notify_reader_add(SmartCardDeviceState *st) > static void smartcard_char_device_attach_client(SpiceCharDeviceInstance > *char_device, > SmartCardChannelClient *scc) > { > - SmartCardDeviceState *st = > spice_char_device_state_opaque_get(char_device->st); > + SmartCardDeviceState *st = red_char_device_opaque_get(char_device->st); > int client_added; > > spice_assert(!scc->smartcard_state && !st->priv->scc); > st->priv->scc = scc; > scc->smartcard_state = st; > - client_added = spice_char_device_client_add(RED_CHAR_DEVICE(st), > - scc->base.client, > - FALSE, /* no flow control > yet */ > - 0, /* send queue size */ > - ~0, > - ~0, > - > red_channel_client_is_waiting_for_migrate_data( > - &scc->base)); > + client_added = red_char_device_client_add(RED_CHAR_DEVICE(st), > + scc->base.client, > + FALSE, /* no flow control yet > */ > + 0, /* send queue size */ > + ~0, > + ~0, > + > red_channel_client_is_waiting_for_migrate_data( > + > &scc->base)); > if (!client_added) { > spice_warning("failed"); > st->priv->scc = NULL; > @@ -358,7 +358,7 @@ static void > smartcard_char_device_notify_reader_remove(SmartCardDeviceState *st) > spice_debug("reader add was never sent to the device"); > return; > } > - write_buf = spice_char_device_write_buffer_get(RED_CHAR_DEVICE(st), > NULL, sizeof(vheader)); > + write_buf = red_char_device_write_buffer_get(RED_CHAR_DEVICE(st), NULL, > sizeof(vheader)); > if (!write_buf) { > spice_error("failed to allocate write buffer"); > return; > @@ -380,7 +380,7 @@ static void > smartcard_char_device_detach_client(SmartCardChannelClient *scc) > } > st = scc->smartcard_state; > spice_assert(st->priv->scc == scc); > - spice_char_device_client_remove(st, scc->base.client); > + red_char_device_client_remove(RED_CHAR_DEVICE(st), scc->base.client); > scc->smartcard_state = NULL; > st->priv->scc = NULL; > } > @@ -409,7 +409,7 @@ static uint8_t > *smartcard_channel_alloc_msg_rcv_buf(RedChannelClient *rcc, > st = scc->smartcard_state; > spice_assert(st->priv->scc || scc->smartcard_state); > spice_assert(!scc->write_buf); > - scc->write_buf = > spice_char_device_write_buffer_get(RED_CHAR_DEVICE(st), rcc->client, size); > + scc->write_buf = > red_char_device_write_buffer_get(RED_CHAR_DEVICE(st), rcc->client, size); > > if (!scc->write_buf) { > spice_error("failed to allocate write buffer"); > @@ -437,7 +437,7 @@ static void > smartcard_channel_release_msg_rcv_buf(RedChannelClient *rcc, > } else { > if (scc->write_buf) { /* msg hasn't been pushed to the guest */ > spice_assert(scc->write_buf->buf == msg); > - > spice_char_device_write_buffer_release(RED_CHAR_DEVICE(scc->smartcard_state), > scc->write_buf); > + > red_char_device_write_buffer_release(RED_CHAR_DEVICE(scc->smartcard_state), > scc->write_buf); > scc->write_buf = NULL; > } > } > @@ -485,13 +485,13 @@ static void > smartcard_channel_send_migrate_data(RedChannelClient *rcc, > spice_marshaller_add_uint32(m, SPICE_MIGRATE_DATA_SMARTCARD_VERSION); > > if (!state) { > - spice_char_device_state_migrate_data_marshall_empty(m); > + red_char_device_migrate_data_marshall_empty(m); > spice_marshaller_add_uint8(m, 0); > spice_marshaller_add_uint32(m, 0); > spice_marshaller_add_uint32(m, 0); > spice_debug("null char dev state"); > } else { > - > spice_char_device_state_migrate_data_marshall(RED_CHAR_DEVICE(state), > m); > + red_char_device_migrate_data_marshall(RED_CHAR_DEVICE(state), m); > spice_marshaller_add_uint8(m, state->priv->reader_added); > spice_marshaller_add_uint32(m, state->priv->buf_used); > m2 = spice_marshaller_get_ptr_submarshaller(m, 0); > @@ -601,7 +601,7 @@ static void > smartcard_remove_reader(SmartCardChannelClient *scc, uint32_t reader > return; > } > > - state = spice_char_device_state_opaque_get(char_device->st); > + state = red_char_device_opaque_get(char_device->st); > if (state->priv->reader_added == FALSE) { > smartcard_push_error(&scc->base, reader_id, > VSC_GENERAL_ERROR); > @@ -642,7 +642,7 @@ static void > smartcard_channel_write_to_reader(SpiceCharDeviceWriteBuffer *write_ > > spice_assert(vheader->reader_id <= g_smartcard_readers.num); > sin = g_smartcard_readers.sin[vheader->reader_id]; > - st = (SmartCardDeviceState > *)spice_char_device_state_opaque_get(sin->st); > + st = (SmartCardDeviceState *)red_char_device_opaque_get(sin->st); > spice_assert(!st->priv->scc || st == st->priv->scc->smartcard_state); > /* protocol requires messages to be in network endianess */ > vheader->type = htonl(vheader->type); > @@ -651,7 +651,7 @@ static void > smartcard_channel_write_to_reader(SpiceCharDeviceWriteBuffer *write_ > write_buf->buf_used = actual_length + sizeof(VSCMsgHeader); > /* pushing the buffer to the write queue; It will be released > * when it will be fully consumed by the device */ > - spice_char_device_write_buffer_add(sin->st, write_buf); > + red_char_device_write_buffer_add(sin->st, write_buf); > if (st->priv->scc && write_buf == st->priv->scc->write_buf) { > st->priv->scc->write_buf = NULL; > } > @@ -719,7 +719,7 @@ static int > smartcard_channel_client_handle_migrate_data(RedChannelClient *rcc, > scc->smartcard_state->priv->reader_added = mig_data->reader_added; > > smartcard_device_state_restore_partial_read(scc->smartcard_state, > mig_data); > - return > spice_char_device_state_restore(RED_CHAR_DEVICE(scc->smartcard_state), > &mig_data->base); > + return red_char_device_restore(RED_CHAR_DEVICE(scc->smartcard_state), > &mig_data->base); > } > > static int smartcard_channel_handle_message(RedChannelClient *rcc, > diff --git a/server/smartcard.h b/server/smartcard.h > index 4b00433..d266ce2 100644 > --- a/server/smartcard.h > +++ b/server/smartcard.h > @@ -49,7 +49,7 @@ GType red_char_device_smartcard_get_type(void) > G_GNUC_CONST; > /* > * connect to smartcard interface, used by smartcard channel > */ > -SpiceCharDeviceState *smartcard_device_connect(RedsState *reds, > SpiceCharDeviceInstance *char_device); > +RedCharDevice *smartcard_device_connect(RedsState *reds, > SpiceCharDeviceInstance *char_device); > void smartcard_device_disconnect(SpiceCharDeviceInstance *char_device); > > #endif // __SMART_CARD_H__ > diff --git a/server/spicevmc.c b/server/spicevmc.c > index 3c446a4..0d53285 100644 > --- a/server/spicevmc.c > +++ b/server/spicevmc.c > @@ -54,7 +54,7 @@ typedef struct SpiceVmcPipeItem { > typedef struct SpiceVmcState { > RedChannel channel; /* Must be the first item */ > RedChannelClient *rcc; > - SpiceCharDeviceState *chardev_st; > + RedCharDevice *chardev; > SpiceCharDeviceInstance *chardev_sin; > SpiceCharDeviceWriteBuffer *recv_from_client_buf; > uint8_t port_opened; > @@ -255,16 +255,16 @@ static void > spicevmc_red_channel_client_on_disconnect(RedChannelClient *rcc) > state = SPICE_CONTAINEROF(rcc->channel, SpiceVmcState, channel); > > if (state->recv_from_client_buf) { /* partial message which wasn't > pushed to device */ > - spice_char_device_write_buffer_release(state->chardev_st, > state->recv_from_client_buf); > + red_char_device_write_buffer_release(state->chardev, > state->recv_from_client_buf); > state->recv_from_client_buf = NULL; > } > > - if (state->chardev_st) { > - if (spice_char_device_client_exists(state->chardev_st, rcc->client)) > { > - spice_char_device_client_remove(state->chardev_st, rcc->client); > + if (state->chardev) { > + if (red_char_device_client_exists(state->chardev, rcc->client)) { > + red_char_device_client_remove(state->chardev, rcc->client); > } else { > spice_printerr("client %p have already been removed from char > dev %p", > - rcc->client, state->chardev_st); > + rcc->client, state->chardev); > } > } > > @@ -310,7 +310,7 @@ static int > spicevmc_channel_client_handle_migrate_data(RedChannelClient *rcc, > spice_error("bad header"); > return FALSE; > } > - return spice_char_device_state_restore(state->chardev_st, > &mig_data->base); > + return red_char_device_restore(state->chardev, &mig_data->base); > } > > static int spicevmc_red_channel_client_handle_message(RedChannelClient *rcc, > @@ -328,7 +328,7 @@ static int > spicevmc_red_channel_client_handle_message(RedChannelClient *rcc, > case SPICE_MSGC_SPICEVMC_DATA: > spice_assert(state->recv_from_client_buf->buf == msg); > state->recv_from_client_buf->buf_used = size; > - spice_char_device_write_buffer_add(state->chardev_st, > state->recv_from_client_buf); > + red_char_device_write_buffer_add(state->chardev, > state->recv_from_client_buf); > state->recv_from_client_buf = NULL; > break; > case SPICE_MSGC_PORT_EVENT: > @@ -358,9 +358,9 @@ static uint8_t > *spicevmc_red_channel_alloc_msg_rcv_buf(RedChannelClient *rcc, > case SPICE_MSGC_SPICEVMC_DATA: > assert(!state->recv_from_client_buf); > > - state->recv_from_client_buf = > spice_char_device_write_buffer_get(state->chardev_st, > - > rcc->client, > - > size); > + state->recv_from_client_buf = > red_char_device_write_buffer_get(state->chardev, > + > rcc->client, > + > size); > if (!state->recv_from_client_buf) { > spice_error("failed to allocate write buffer"); > return NULL; > @@ -385,7 +385,7 @@ static void > spicevmc_red_channel_release_msg_rcv_buf(RedChannelClient *rcc, > switch (type) { > case SPICE_MSGC_SPICEVMC_DATA: > if (state->recv_from_client_buf) { /* buffer wasn't pushed to device > */ > - spice_char_device_write_buffer_release(state->chardev_st, > state->recv_from_client_buf); > + red_char_device_write_buffer_release(state->chardev, > state->recv_from_client_buf); > state->recv_from_client_buf = NULL; > } > break; > @@ -421,7 +421,7 @@ static void > spicevmc_red_channel_send_migrate_data(RedChannelClient *rcc, > spice_marshaller_add_uint32(m, SPICE_MIGRATE_DATA_SPICEVMC_MAGIC); > spice_marshaller_add_uint32(m, SPICE_MIGRATE_DATA_SPICEVMC_VERSION); > > - spice_char_device_state_migrate_data_marshall(state->chardev_st, m); > + red_char_device_migrate_data_marshall(state->chardev, m); > } > > static void spicevmc_red_channel_send_port_init(RedChannelClient *rcc, > @@ -521,8 +521,8 @@ static void spicevmc_connect(RedChannel *channel, > RedClient *client, > spicevmc_port_send_init(rcc); > } > > - if (!spice_char_device_client_add(state->chardev_st, client, FALSE, 0, > ~0, ~0, > - > red_channel_client_is_waiting_for_migrate_data(rcc))) > { > + if (!red_char_device_client_add(state->chardev, client, FALSE, 0, ~0, > ~0, > + > red_channel_client_is_waiting_for_migrate_data(rcc))) > { > spice_warning("failed to add client to spicevmc"); > red_channel_client_disconnect(rcc); > return; > @@ -534,9 +534,9 @@ static void spicevmc_connect(RedChannel *channel, > RedClient *client, > } > } > > -SpiceCharDeviceState *spicevmc_device_connect(RedsState *reds, > - SpiceCharDeviceInstance *sin, > - uint8_t channel_type) > +RedCharDevice *spicevmc_device_connect(RedsState *reds, > + SpiceCharDeviceInstance *sin, > + uint8_t channel_type) > { > static uint8_t id[256] = { 0, }; > SpiceVmcState *state; > @@ -564,11 +564,11 @@ SpiceCharDeviceState *spicevmc_device_connect(RedsState > *reds, > client_cbs.connect = spicevmc_connect; > red_channel_register_client_cbs(&state->channel, &client_cbs, NULL); > > - state->chardev_st = red_char_device_spicevmc_new(sin, reds, state); > + state->chardev = red_char_device_spicevmc_new(sin, reds, state); > state->chardev_sin = sin; > > reds_register_channel(reds, &state->channel); > - return state->chardev_st; > + return state->chardev; > } > > /* Must be called from RedClient handling thread. */ > @@ -576,13 +576,13 @@ void spicevmc_device_disconnect(RedsState *reds, > SpiceCharDeviceInstance *sin) > { > SpiceVmcState *state; > > - state = (SpiceVmcState *)spice_char_device_state_opaque_get(sin->st); > + state = (SpiceVmcState *)red_char_device_opaque_get(sin->st); > > if (state->recv_from_client_buf) { > - spice_char_device_write_buffer_release(state->chardev_st, > state->recv_from_client_buf); > + red_char_device_write_buffer_release(state->chardev, > state->recv_from_client_buf); > } > - spice_char_device_state_destroy(sin->st); > - state->chardev_st = NULL; > + red_char_device_destroy(sin->st); > + state->chardev = NULL; > sin->st = NULL; > > reds_unregister_channel(reds, &state->channel); > @@ -594,11 +594,11 @@ SPICE_GNUC_VISIBLE void > spice_server_port_event(SpiceCharDeviceInstance *sin, ui > SpiceVmcState *state; > > if (sin->st == NULL) { > - spice_warning("no SpiceCharDeviceState attached to instance %p", > sin); > + spice_warning("no RedCharDevice attached to instance %p", sin); > return; > } > > - state = (SpiceVmcState *)spice_char_device_state_opaque_get(sin->st); > + state = (SpiceVmcState *)red_char_device_opaque_get(sin->st); > if (event == SPICE_PORT_EVENT_OPENED) { > state->port_opened = TRUE; > } else if (event == SPICE_PORT_EVENT_CLOSED) { > -- > 2.4.3 > > _______________________________________________ > Spice-devel mailing list > Spice-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/spice-devel > _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel