> > In anticipation of porting to GObject, use casting macros (e.g. > MAIN_CHANNEL_CLIENT()) to cast RedChannelClient types. This will help > reduce the changeset slightly porting to GObject and thus make it easier > to review those upcoming changes. > --- > server/cursor-channel-client.c | 4 ++-- > server/dcc.c | 4 ++-- > server/inputs-channel-client.c | 6 +++--- > server/inputs-channel-client.h | 2 ++ > server/inputs-channel.c | 4 ++-- > server/main-channel-client.c | 12 ++++++------ > server/main-channel-client.h | 2 ++ > server/main-channel.c | 16 ++++++++-------- > server/red-channel-client.c | 10 +++++----- > server/smartcard.c | 28 +++++++++++++++------------- > 10 files changed, 47 insertions(+), 41 deletions(-) > > diff --git a/server/cursor-channel-client.c b/server/cursor-channel-client.c > index bbcc290..89c23a3 100644 > --- a/server/cursor-channel-client.c > +++ b/server/cursor-channel-client.c > @@ -97,14 +97,14 @@ CursorChannelClient* > cursor_channel_client_new(CursorChannel *cursor, RedClient > spice_return_val_if_fail(!num_caps || caps, NULL); > > CursorChannelClient *ccc = > - > (CursorChannelClient*)red_channel_client_create(sizeof(CursorChannelClient), > + > CURSOR_CHANNEL_CLIENT(red_channel_client_create(sizeof(CursorChannelClient), > RED_CHANNEL(cursor), > client, stream, > FALSE, > num_common_caps, > common_caps, > num_caps, > - caps); > + caps)); > spice_return_val_if_fail(ccc != NULL, NULL); > COMMON_GRAPHICS_CHANNEL(cursor)->during_target_migrate = mig_target; > > diff --git a/server/dcc.c b/server/dcc.c > index f0a1ef8..0fdce29 100644 > --- a/server/dcc.c > +++ b/server/dcc.c > @@ -350,12 +350,12 @@ DisplayChannelClient *dcc_new(DisplayChannel *display, > { > DisplayChannelClient *dcc; > > - dcc = (DisplayChannelClient*)red_channel_client_create( > + dcc = DISPLAY_CHANNEL_CLIENT(red_channel_client_create( > sizeof(DisplayChannelClient), > &COMMON_GRAPHICS_CHANNEL(display)->base, > client, stream, TRUE, > num_common_caps, common_caps, > - num_caps, caps); > + num_caps, caps)); > > display->common.during_target_migrate = mig_target; > dcc->priv->id = display->common.qxl->id; > diff --git a/server/inputs-channel-client.c b/server/inputs-channel-client.c > index a07008b..7b38625 100644 > --- a/server/inputs-channel-client.c > +++ b/server/inputs-channel-client.c > @@ -46,13 +46,13 @@ RedChannelClient* inputs_channel_client_create(RedChannel > *channel, > uint32_t *caps) > { > InputsChannelClient* icc = > - > (InputsChannelClient*)red_channel_client_create(sizeof(InputsChannelClient), > + > INPUTS_CHANNEL_CLIENT(red_channel_client_create(sizeof(InputsChannelClient), > channel, client, > stream, > monitor_latency, > num_common_caps, > common_caps, > num_caps, > - caps); > + caps)); > if (icc) { > icc->priv->motion_count = 0; > } > @@ -63,7 +63,7 @@ void > inputs_channel_client_send_migrate_data(RedChannelClient *rcc, > SpiceMarshaller *m, > RedPipeItem *item) > { > - InputsChannelClient *icc = SPICE_CONTAINEROF(rcc, InputsChannelClient, > base); > + InputsChannelClient *icc = INPUTS_CHANNEL_CLIENT(rcc); > > red_channel_client_init_send_data(rcc, SPICE_MSG_MIGRATE_DATA, item); > > diff --git a/server/inputs-channel-client.h b/server/inputs-channel-client.h > index e83cc29..82dbbaf 100644 > --- a/server/inputs-channel-client.h > +++ b/server/inputs-channel-client.h > @@ -45,4 +45,6 @@ enum { > RED_PIPE_ITEM_MIGRATE_DATA, > }; > > +#define INPUTS_CHANNEL_CLIENT(rcc) ((InputsChannelClient*)rcc) > + > #endif /* _INPUTS_CHANNEL_CLIENT_H_ */ > diff --git a/server/inputs-channel.c b/server/inputs-channel.c > index 2738be4..840d5e9 100644 > --- a/server/inputs-channel.c > +++ b/server/inputs-channel.c > @@ -273,7 +273,7 @@ static int inputs_channel_handle_parsed(RedChannelClient > *rcc, uint32_t size, ui > void *message) > { > InputsChannel *inputs_channel = (InputsChannel > *)red_channel_client_get_channel(rcc); > - InputsChannelClient *icc = (InputsChannelClient *)rcc; > + InputsChannelClient *icc = INPUTS_CHANNEL_CLIENT(rcc); > uint32_t i; > RedsState *reds = red_channel_get_server(&inputs_channel->base); > > @@ -547,7 +547,7 @@ static int > inputs_channel_handle_migrate_data(RedChannelClient *rcc, > uint32_t size, > void *message) > { > - InputsChannelClient *icc = (InputsChannelClient*)rcc; > + InputsChannelClient *icc = INPUTS_CHANNEL_CLIENT(rcc); > InputsChannel *inputs = > (InputsChannel*)red_channel_client_get_channel(rcc); > SpiceMigrateDataHeader *header; > SpiceMigrateDataInputs *mig_data; > diff --git a/server/main-channel-client.c b/server/main-channel-client.c > index 236a2e7..693e832 100644 > --- a/server/main-channel-client.c > +++ b/server/main-channel-client.c > @@ -384,7 +384,7 @@ void > main_channel_client_handle_migrate_dst_do_seamless(MainChannelClient *mcc, > void main_channel_client_handle_pong(MainChannelClient *mcc, SpiceMsgPing > *ping, uint32_t size) > { > uint64_t roundtrip; > - RedChannelClient* rcc = (RedChannelClient*)mcc; > + RedChannelClient* rcc = RED_CHANNEL_CLIENT(mcc); > > roundtrip = g_get_monotonic_time() - ping->timestamp; > > @@ -559,10 +559,10 @@ MainChannelClient > *main_channel_client_create(MainChannel *main_chan, RedClient > int num_common_caps, uint32_t > *common_caps, > int num_caps, uint32_t *caps) > { > - MainChannelClient *mcc = (MainChannelClient*) > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT( > red_channel_client_create(sizeof(MainChannelClient), > &main_chan->base, > client, stream, > FALSE, > num_common_caps, > - common_caps, > num_caps, caps); > + common_caps, > num_caps, caps)); > spice_assert(mcc != NULL); > mcc->priv->connection_id = connection_id; > mcc->priv->bitrate_per_sec = ~0; > @@ -599,7 +599,7 @@ uint64_t > main_channel_client_get_roundtrip_ms(MainChannelClient *mcc) > void main_channel_client_migrate(RedChannelClient *rcc) > { > RedChannel *channel = red_channel_client_get_channel(rcc); > - reds_on_main_channel_migrate(channel->reds, SPICE_CONTAINEROF(rcc, > MainChannelClient, base)); > + reds_on_main_channel_migrate(channel->reds, MAIN_CHANNEL_CLIENT(rcc)); > red_channel_client_default_migrate(rcc); > } > > @@ -671,7 +671,7 @@ static void main_channel_marshall_ping(RedChannelClient > *rcc, > SpiceMarshaller *m, > RedPingPipeItem *item) > { > - MainChannelClient *mcc = (MainChannelClient*)rcc; > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > SpiceMsgPing ping; > int size_left = item->size; > > @@ -870,7 +870,7 @@ static void > main_channel_marshall_agent_connected(SpiceMarshaller *m, > > void main_channel_client_send_item(RedChannelClient *rcc, RedPipeItem *base) > { > - MainChannelClient *mcc = SPICE_CONTAINEROF(rcc, MainChannelClient, > base); > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > SpiceMarshaller *m = red_channel_client_get_marshaller(rcc); > > /* In semi-seamless migration (dest side), the connection is started > from scratch, and > diff --git a/server/main-channel-client.h b/server/main-channel-client.h > index 9f05af3..3bb8729 100644 > --- a/server/main-channel-client.h > +++ b/server/main-channel-client.h > @@ -105,4 +105,6 @@ typedef struct MainMultiMediaTimeItemInfo { > RedPipeItem *main_multi_media_time_item_new(RedChannelClient *rcc, > void *data, int num); > > +#define MAIN_CHANNEL_CLIENT(rcc) ((MainChannelClient*)rcc) > + > #endif /* __MAIN_CHANNEL_CLIENT_H__ */ > diff --git a/server/main-channel.c b/server/main-channel.c > index 4670315..d176498 100644 > --- a/server/main-channel.c > +++ b/server/main-channel.c > @@ -48,7 +48,7 @@ RedClient *main_channel_get_client_by_link_id(MainChannel > *main_chan, uint32_t c > RedChannelClient *rcc; > > FOREACH_CLIENT(main_chan, link, next, rcc) { > - MainChannelClient *mcc = (MainChannelClient*) rcc; > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > if (main_channel_client_get_connection_id(mcc) == connection_id) { > return red_channel_client_get_client(rcc); > } > @@ -102,7 +102,7 @@ static int > main_channel_handle_migrate_data(RedChannelClient *rcc, > uint32_t size, void *message) > { > RedChannel *channel = red_channel_client_get_channel(rcc); > - MainChannelClient *mcc = (MainChannelClient*)rcc; > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > SpiceMigrateDataHeader *header = (SpiceMigrateDataHeader *)message; > > /* not supported with multi-clients */ > @@ -157,7 +157,7 @@ static int main_channel_handle_parsed(RedChannelClient > *rcc, uint32_t size, uint > { > RedChannel *channel = red_channel_client_get_channel(rcc); > MainChannel *main_chan = SPICE_CONTAINEROF(channel, MainChannel, base); > - MainChannelClient *mcc = (MainChannelClient*)rcc; > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > > switch (type) { > case SPICE_MSGC_MAIN_AGENT_START: { > @@ -226,7 +226,7 @@ static uint8_t > *main_channel_alloc_msg_rcv_buf(RedChannelClient *rcc, > { > RedChannel *channel = red_channel_client_get_channel(rcc); > MainChannel *main_chan = SPICE_CONTAINEROF(channel, MainChannel, base); > - MainChannelClient *mcc = (MainChannelClient*)rcc; > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > > if (type == SPICE_MSGC_MAIN_AGENT_DATA) { > return reds_get_agent_data_buffer(channel->reds, mcc, size); > @@ -338,7 +338,7 @@ static int main_channel_connect_semi_seamless(MainChannel > *main_channel) > RedChannelClient *rcc; > > FOREACH_CLIENT(main_channel, link, next, rcc) { > - MainChannelClient *mcc = (MainChannelClient*)rcc; > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > if (main_channel_client_connect_semi_seamless(mcc)) > main_channel->num_clients_mig_wait++; > } > @@ -353,7 +353,7 @@ static int main_channel_connect_seamless(MainChannel > *main_channel) > spice_assert(g_list_length(main_channel->base.clients) == 1); > > FOREACH_CLIENT(main_channel, link, next, rcc) { > - MainChannelClient *mcc = (MainChannelClient*)rcc; > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > main_channel_client_connect_seamless(mcc); > main_channel->num_clients_mig_wait++; > } > @@ -393,7 +393,7 @@ void main_channel_migrate_cancel_wait(MainChannel > *main_chan) > RedChannelClient *rcc; > > FOREACH_CLIENT(main_chan, link, next, rcc) { > - MainChannelClient *mcc = (MainChannelClient*)rcc; > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > main_channel_client_migrate_cancel_wait(mcc); > } > main_chan->num_clients_mig_wait = 0; > @@ -413,7 +413,7 @@ int main_channel_migrate_src_complete(MainChannel > *main_chan, int success) > } > > FOREACH_CLIENT(main_chan, link, next, rcc) { > - MainChannelClient *mcc = (MainChannelClient*)rcc; > + MainChannelClient *mcc = MAIN_CHANNEL_CLIENT(rcc); > if (main_channel_client_migrate_src_complete(mcc, success)) > semi_seamless_count++; > } > diff --git a/server/red-channel-client.c b/server/red-channel-client.c > index 50b295c..8ec2d7c 100644 > --- a/server/red-channel-client.c > +++ b/server/red-channel-client.c > @@ -128,7 +128,7 @@ void red_channel_client_on_input(void *opaque, int n) > > int red_channel_client_get_out_msg_size(void *opaque) > { > - RedChannelClient *rcc = (RedChannelClient *)opaque; > + RedChannelClient *rcc = RED_CHANNEL_CLIENT(opaque); > > return rcc->priv->send_data.size; > } > @@ -136,7 +136,7 @@ int red_channel_client_get_out_msg_size(void *opaque) > void red_channel_client_prepare_out_msg(void *opaque, struct iovec *vec, > int *vec_size, int pos) > { > - RedChannelClient *rcc = (RedChannelClient *)opaque; > + RedChannelClient *rcc = RED_CHANNEL_CLIENT(opaque); > > *vec_size = spice_marshaller_fill_iovec(rcc->priv->send_data.marshaller, > vec, IOV_MAX, pos); > @@ -144,7 +144,7 @@ void red_channel_client_prepare_out_msg(void *opaque, > struct iovec *vec, > > void red_channel_client_on_out_block(void *opaque) > { > - RedChannelClient *rcc = (RedChannelClient *)opaque; > + RedChannelClient *rcc = RED_CHANNEL_CLIENT(opaque); > > rcc->priv->send_data.blocked = TRUE; > rcc->priv->channel->core->watch_update_mask(rcc->priv->stream->watch, > @@ -313,7 +313,7 @@ static void > red_channel_client_restore_main_sender(RedChannelClient *rcc) > > void red_channel_client_on_out_msg_done(void *opaque) > { > - RedChannelClient *rcc = (RedChannelClient *)opaque; > + RedChannelClient *rcc = RED_CHANNEL_CLIENT(opaque); > int fd; > > rcc->priv->send_data.size = 0; > @@ -529,7 +529,7 @@ void > red_channel_client_start_connectivity_monitoring(RedChannelClient *rcc, uin > > static void red_channel_client_event(int fd, int event, void *data) > { > - RedChannelClient *rcc = (RedChannelClient *)data; > + RedChannelClient *rcc = RED_CHANNEL_CLIENT(data); > > red_channel_client_ref(rcc); > if (event & SPICE_WATCH_EVENT_READ) { > diff --git a/server/smartcard.c b/server/smartcard.c > index 3ea8a25..41dc106 100644 > --- a/server/smartcard.c > +++ b/server/smartcard.c > @@ -66,6 +66,8 @@ typedef struct SmartCardChannelClient { > SmartCardChannelClientPrivate priv[1]; > } SmartCardChannelClient; > > +#define SMARTCARD_CHANNEL_CLIENT(rcc) ((SmartCardChannelClient*)rcc) > + > G_DEFINE_TYPE(RedCharDeviceSmartcard, red_char_device_smartcard, > RED_TYPE_CHAR_DEVICE) > > #define RED_CHAR_DEVICE_SMARTCARD_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE > ((o), RED_TYPE_CHAR_DEVICE_SMARTCARD, RedCharDeviceSmartcardPrivate)) > @@ -387,7 +389,7 @@ static uint8_t > *smartcard_channel_alloc_msg_rcv_buf(RedChannelClient *rcc, > uint16_t type, > uint32_t size) > { > - SmartCardChannelClient *scc = SPICE_CONTAINEROF(rcc, > SmartCardChannelClient, base); > + SmartCardChannelClient *scc = SMARTCARD_CHANNEL_CLIENT(rcc); > > /* todo: only one reader is actually supported. When we fix the code to > support > * multiple readers, we will porbably associate different devices to > @@ -420,7 +422,7 @@ static void > smartcard_channel_release_msg_rcv_buf(RedChannelClient *rcc, > uint32_t size, > uint8_t *msg) > { > - SmartCardChannelClient *scc = SPICE_CONTAINEROF(rcc, > SmartCardChannelClient, base); > + SmartCardChannelClient *scc = SMARTCARD_CHANNEL_CLIENT(rcc); > > /* todo: only one reader is actually supported. When we fix the code to > support > * multiple readers, we will porbably associate different devices to > @@ -472,7 +474,7 @@ static void > smartcard_channel_send_migrate_data(RedChannelClient *rcc, > RedCharDeviceSmartcard *dev; > SpiceMarshaller *m2; > > - scc = SPICE_CONTAINEROF(rcc, SmartCardChannelClient, base); > + scc = SMARTCARD_CHANNEL_CLIENT(rcc); > dev = scc->priv->smartcard; > red_channel_client_init_send_data(rcc, SPICE_MSG_MIGRATE_DATA, item); > spice_marshaller_add_uint32(m, SPICE_MIGRATE_DATA_SMARTCARD_MAGIC); > @@ -517,7 +519,7 @@ static void smartcard_channel_send_item(RedChannelClient > *rcc, RedPipeItem *item > > static void smartcard_channel_on_disconnect(RedChannelClient *rcc) > { > - SmartCardChannelClient *scc = SPICE_CONTAINEROF(rcc, > SmartCardChannelClient, base); > + SmartCardChannelClient *scc = SMARTCARD_CHANNEL_CLIENT(rcc); > > if (scc->priv->smartcard) { > RedCharDeviceSmartcard *dev = scc->priv->smartcard; > @@ -665,7 +667,7 @@ static int > smartcard_channel_client_handle_migrate_data(RedChannelClient *rcc, > SpiceMigrateDataHeader *header; > SpiceMigrateDataSmartcard *mig_data; > > - scc = SPICE_CONTAINEROF(rcc, SmartCardChannelClient, base); > + scc = SMARTCARD_CHANNEL_CLIENT(rcc); > header = (SpiceMigrateDataHeader *)message; > mig_data = (SpiceMigrateDataSmartcard *)(header + 1); > if (size < sizeof(SpiceMigrateDataHeader) + > sizeof(SpiceMigrateDataSmartcard)) { > @@ -706,7 +708,7 @@ static int > smartcard_channel_handle_message(RedChannelClient *rcc, > uint8_t *msg) > { > VSCMsgHeader* vheader = (VSCMsgHeader*)msg; > - SmartCardChannelClient *scc = SPICE_CONTAINEROF(rcc, > SmartCardChannelClient, base); > + SmartCardChannelClient *scc = SMARTCARD_CHANNEL_CLIENT(rcc); > > if (type != SPICE_MSGC_SMARTCARD_DATA) { > /* Handles seamless migration protocol. Also handles ack's, > @@ -760,13 +762,13 @@ static void smartcard_connect_client(RedChannel > *channel, RedClient *client, > > SmartCardChannelClient *scc; > > - scc = (SmartCardChannelClient > *)red_channel_client_create(sizeof(SmartCardChannelClient), > - channel, > - client, > - stream, > - FALSE, > - > num_common_caps, > common_caps, > - num_caps, > caps); > + scc = > SMARTCARD_CHANNEL_CLIENT(red_channel_client_create(sizeof(SmartCardChannelClient), > + channel, > + client, > + stream, > + FALSE, > + > num_common_caps, > common_caps, > + num_caps, > caps)); > if (!scc) { > return; > } Acked-by: Frediano Ziglio <fziglio@xxxxxxxxxx> Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel