> > From: Christophe Fergeau <cfergeau@xxxxxxxxxx> > > The RedChannel argument is not used by red_pipe_item_init. Removing it > will make code simpler in places where we don't have a RedChannel > directly available. > --- > server/cache-item.tmpl.c | 3 +-- > server/cursor-channel.c | 2 +- > server/dcc.c | 26 +++++++++----------------- > server/inputs-channel.c | 6 ++---- > server/main-channel.c | 26 +++++++++----------------- > server/red-channel.c | 6 +++--- > server/red-channel.h | 2 +- > server/red-worker.h | 2 +- > server/smartcard.c | 6 ++---- > server/spicevmc.c | 7 +++---- > server/stream.c | 12 ++++-------- > 11 files changed, 36 insertions(+), 62 deletions(-) > > diff --git a/server/cache-item.tmpl.c b/server/cache-item.tmpl.c > index efc26c3..d63e576 100644 > --- a/server/cache-item.tmpl.c > +++ b/server/cache-item.tmpl.c > @@ -66,7 +66,6 @@ static CacheItem *FUNC_NAME(find)(CHANNELCLIENT > *channel_client, uint64_t id) > static void FUNC_NAME(remove)(CHANNELCLIENT *channel_client, CacheItem > *item) > { > CacheItem **now; > - CHANNEL *channel = CHANNEL_FROM_RCC(&channel_client->common.base); > spice_assert(item); > > now = &channel_client->CACHE_NAME[CACHE_HASH_KEY(item->id)]; > @@ -82,7 +81,7 @@ static void FUNC_NAME(remove)(CHANNELCLIENT > *channel_client, CacheItem *item) > channel_client->VAR_NAME(items)--; > channel_client->VAR_NAME(available) += item->size; > > - red_channel_pipe_item_init(&channel->common.base, &item->u.pipe_data, > PIPE_ITEM_TYPE_INVAL_ONE); > + red_pipe_item_init(&item->u.pipe_data, PIPE_ITEM_TYPE_INVAL_ONE); > red_channel_client_pipe_add_tail_and_push(&channel_client->common.base, > &item->u.pipe_data); // for now > } > > diff --git a/server/cursor-channel.c b/server/cursor-channel.c > index f5cb5ee..35b96fd 100644 > --- a/server/cursor-channel.c > +++ b/server/cursor-channel.c > @@ -136,7 +136,7 @@ static PipeItem *new_cursor_pipe_item(RedChannelClient > *rcc, void *data, int num > { > CursorPipeItem *item = spice_malloc0(sizeof(CursorPipeItem)); > > - red_channel_pipe_item_init(rcc->channel, &item->base, > PIPE_ITEM_TYPE_CURSOR); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_CURSOR); > item->refs = 1; > item->cursor_item = data; > item->cursor_item->refs++; > diff --git a/server/dcc.c b/server/dcc.c > index 1f71423..a8658c2 100644 > --- a/server/dcc.c > +++ b/server/dcc.c > @@ -38,8 +38,7 @@ static SurfaceCreateItem > *surface_create_item_new(RedChannel* channel, > create->surface_create.flags = flags; > create->surface_create.format = format; > > - red_channel_pipe_item_init(channel, > - &create->pipe_item, > PIPE_ITEM_TYPE_CREATE_SURFACE); > + red_pipe_item_init(&create->pipe_item, PIPE_ITEM_TYPE_CREATE_SURFACE); > return create; > } > > @@ -167,7 +166,6 @@ ImageItem > *dcc_add_surface_area_image(DisplayChannelClient *dcc, int surface_id, > SpiceRect *area, PipeItem *pos, int > can_lossy) > { > DisplayChannel *display = DCC_TO_DC(dcc); > - RedChannel *channel = RED_CHANNEL(display); > RedSurface *surface = &display->surfaces[surface_id]; > SpiceCanvas *canvas = surface->context.canvas; > ImageItem *item; > @@ -186,7 +184,7 @@ ImageItem > *dcc_add_surface_area_image(DisplayChannelClient *dcc, int surface_id, > > item = (ImageItem *)spice_malloc_n_m(height, stride, sizeof(ImageItem)); > > - red_channel_pipe_item_init(channel, &item->link, PIPE_ITEM_TYPE_IMAGE); > + red_pipe_item_init(&item->link, PIPE_ITEM_TYPE_IMAGE); > > item->refs = 1; > item->surface_id = surface_id; > @@ -305,8 +303,7 @@ static DrawablePipeItem > *drawable_pipe_item_new(DisplayChannelClient *dcc, Drawa > dpi->dcc = dcc; > ring_item_init(&dpi->base); > ring_add(&drawable->pipes, &dpi->base); > - red_channel_pipe_item_init(RED_CHANNEL_CLIENT(dcc)->channel, > - &dpi->dpi_pipe_item, PIPE_ITEM_TYPE_DRAW); > + red_pipe_item_init(&dpi->dpi_pipe_item, PIPE_ITEM_TYPE_DRAW); > dpi->refs++; > drawable->refs++; > return dpi; > @@ -340,15 +337,14 @@ static void dcc_init_stream_agents(DisplayChannelClient > *dcc) > { > int i; > DisplayChannel *display = DCC_TO_DC(dcc); > - RedChannel *channel = RED_CHANNEL_CLIENT(dcc)->channel; > > for (i = 0; i < NUM_STREAMS; i++) { > StreamAgent *agent = &dcc->stream_agents[i]; > agent->stream = &display->streams_buf[i]; > region_init(&agent->vis_region); > region_init(&agent->clip); > - red_channel_pipe_item_init(channel, &agent->create_item, > PIPE_ITEM_TYPE_STREAM_CREATE); > - red_channel_pipe_item_init(channel, &agent->destroy_item, > PIPE_ITEM_TYPE_STREAM_DESTROY); > + red_pipe_item_init(&agent->create_item, > PIPE_ITEM_TYPE_STREAM_CREATE); > + red_pipe_item_init(&agent->destroy_item, > PIPE_ITEM_TYPE_STREAM_DESTROY); > } > dcc->use_mjpeg_encoder_rate_control = > red_channel_client_test_remote_cap(RED_CHANNEL_CLIENT(dcc), > SPICE_DISPLAY_CAP_STREAM_REPORT); > @@ -529,8 +525,7 @@ static MonitorsConfigItem > *monitors_config_item_new(RedChannel* channel, > mci = (MonitorsConfigItem *)spice_malloc(sizeof(*mci)); > mci->monitors_config = monitors_config; > > - red_channel_pipe_item_init(channel, > - &mci->pipe_item, > PIPE_ITEM_TYPE_MONITORS_CONFIG); > + red_pipe_item_init(&mci->pipe_item, PIPE_ITEM_TYPE_MONITORS_CONFIG); > return mci; > } > > @@ -563,8 +558,7 @@ static SurfaceDestroyItem > *surface_destroy_item_new(RedChannel *channel, > > destroy = spice_malloc(sizeof(SurfaceDestroyItem)); > destroy->surface_destroy.surface_id = surface_id; > - red_channel_pipe_item_init(channel, &destroy->pipe_item, > - PIPE_ITEM_TYPE_DESTROY_SURFACE); > + red_pipe_item_init(&destroy->pipe_item, PIPE_ITEM_TYPE_DESTROY_SURFACE); > > return destroy; > } > @@ -582,8 +576,7 @@ PipeItem *dcc_gl_scanout_item_new(RedChannelClient *rcc, > void *data, int num) > return NULL; > } > > - red_channel_pipe_item_init(rcc->channel, &item->base, > - PIPE_ITEM_TYPE_GL_SCANOUT); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_GL_SCANOUT); > > return &item->base; > } > @@ -603,8 +596,7 @@ PipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, > void *data, int num) > > dcc->gl_draw_ongoing = TRUE; > item->draw = *draw; > - red_channel_pipe_item_init(rcc->channel, &item->base, > - PIPE_ITEM_TYPE_GL_DRAW); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_GL_DRAW); > > return &item->base; > } > diff --git a/server/inputs-channel.c b/server/inputs-channel.c > index 6533526..d3e5c97 100644 > --- a/server/inputs-channel.c > +++ b/server/inputs-channel.c > @@ -234,8 +234,7 @@ static PipeItem *inputs_key_modifiers_item_new( > { > KeyModifiersPipeItem *item = spice_malloc(sizeof(KeyModifiersPipeItem)); > > - red_channel_pipe_item_init(rcc->channel, &item->base, > - PIPE_ITEM_KEY_MODIFIERS); > + red_pipe_item_init(&item->base, PIPE_ITEM_KEY_MODIFIERS); > item->modifiers = *(uint8_t *)data; > return &item->base; > } > @@ -504,8 +503,7 @@ static void inputs_pipe_add_init(RedChannelClient *rcc) > InputsInitPipeItem *item = spice_malloc(sizeof(InputsInitPipeItem)); > InputsChannel *inputs = SPICE_CONTAINEROF(rcc->channel, InputsChannel, > base); > > - red_channel_pipe_item_init(rcc->channel, &item->base, > - PIPE_ITEM_INPUTS_INIT); > + red_pipe_item_init(&item->base, PIPE_ITEM_INPUTS_INIT); > item->modifiers = kbd_get_leds(inputs_channel_get_keyboard(inputs)); > red_channel_client_pipe_add_push(rcc, &item->base); > } > diff --git a/server/main-channel.c b/server/main-channel.c > index c72d7d5..ac58d8b 100644 > --- a/server/main-channel.c > +++ b/server/main-channel.c > @@ -226,8 +226,7 @@ static PipeItem > *main_mouse_mode_item_new(RedChannelClient *rcc, void *data, int > MouseModePipeItem *item = spice_malloc(sizeof(MouseModePipeItem)); > MainMouseModeItemInfo *info = data; > > - red_channel_pipe_item_init(rcc->channel, &item->base, > - PIPE_ITEM_TYPE_MAIN_MOUSE_MODE); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_MOUSE_MODE); > item->current_mode = info->current_mode; > item->is_client_mouse_allowed = info->is_client_mouse_allowed; > return &item->base; > @@ -237,7 +236,7 @@ static PipeItem *main_ping_item_new(MainChannelClient > *mcc, int size) > { > PingPipeItem *item = spice_malloc(sizeof(PingPipeItem)); > > - red_channel_pipe_item_init(mcc->base.channel, &item->base, > PIPE_ITEM_TYPE_MAIN_PING); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_PING); > item->size = size; > return &item->base; > } > @@ -246,8 +245,7 @@ static PipeItem > *main_agent_tokens_item_new(RedChannelClient *rcc, uint32_t num_ > { > TokensPipeItem *item = spice_malloc(sizeof(TokensPipeItem)); > > - red_channel_pipe_item_init(rcc->channel, &item->base, > - PIPE_ITEM_TYPE_MAIN_AGENT_TOKEN); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_AGENT_TOKEN); > item->tokens = num_tokens; > return &item->base; > } > @@ -258,8 +256,7 @@ static PipeItem > *main_agent_data_item_new(RedChannelClient *rcc, uint8_t* data, > { > AgentDataPipeItem *item = spice_malloc(sizeof(AgentDataPipeItem)); > > - red_channel_pipe_item_init(rcc->channel, &item->base, > - PIPE_ITEM_TYPE_MAIN_AGENT_DATA); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_AGENT_DATA); > item->data = data; > item->len = len; > item->free_data = free_data; > @@ -274,8 +271,7 @@ static PipeItem *main_init_item_new(MainChannelClient > *mcc, > { > InitPipeItem *item = spice_malloc(sizeof(InitPipeItem)); > > - red_channel_pipe_item_init(mcc->base.channel, &item->base, > - PIPE_ITEM_TYPE_MAIN_INIT); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_INIT); > item->connection_id = connection_id; > item->display_channels_hint = display_channels_hint; > item->current_mouse_mode = current_mouse_mode; > @@ -289,8 +285,7 @@ static PipeItem *main_name_item_new(MainChannelClient > *mcc, const char *name) > { > NamePipeItem *item = spice_malloc(sizeof(NamePipeItem) + strlen(name) + > 1); > > - red_channel_pipe_item_init(mcc->base.channel, &item->base, > - PIPE_ITEM_TYPE_MAIN_NAME); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_NAME); > item->msg.name_len = strlen(name) + 1; > memcpy(&item->msg.name, name, item->msg.name_len); > > @@ -301,8 +296,7 @@ static PipeItem *main_uuid_item_new(MainChannelClient > *mcc, const uint8_t uuid[1 > { > UuidPipeItem *item = spice_malloc(sizeof(UuidPipeItem)); > > - red_channel_pipe_item_init(mcc->base.channel, &item->base, > - PIPE_ITEM_TYPE_MAIN_UUID); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_UUID); > memcpy(item->msg.uuid, uuid, sizeof(item->msg.uuid)); > > return &item->base; > @@ -313,8 +307,7 @@ static PipeItem *main_notify_item_new(RedChannelClient > *rcc, void *data, int num > NotifyPipeItem *item = spice_malloc(sizeof(NotifyPipeItem)); > const char *msg = data; > > - red_channel_pipe_item_init(rcc->channel, &item->base, > - PIPE_ITEM_TYPE_MAIN_NOTIFY); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_NOTIFY); > item->msg = spice_strdup(msg); > return &item->base; > } > @@ -325,8 +318,7 @@ static PipeItem *main_multi_media_time_item_new( > MultiMediaTimePipeItem *item, *info = data; > > item = spice_malloc(sizeof(MultiMediaTimePipeItem)); > - red_channel_pipe_item_init(rcc->channel, &item->base, > - PIPE_ITEM_TYPE_MAIN_MULTI_MEDIA_TIME); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_MULTI_MEDIA_TIME); > item->time = info->time; > return &item->base; > } > diff --git a/server/red-channel.c b/server/red-channel.c > index 3ee6192..e71d845 100644 > --- a/server/red-channel.c > +++ b/server/red-channel.c > @@ -1663,7 +1663,7 @@ void > red_channel_client_set_message_serial(RedChannelClient *rcc, uint64_t seria > rcc->send_data.serial = serial; > } > > -void red_channel_pipe_item_init(RedChannel *channel, PipeItem *item, int > type) > +void red_pipe_item_init(PipeItem *item, int type) > { > ring_item_init(&item->link); > item->type = type; > @@ -1729,7 +1729,7 @@ void red_channel_client_pipe_add_type(RedChannelClient > *rcc, int pipe_item_type) > { > PipeItem *item = spice_new(PipeItem, 1); > > - red_channel_pipe_item_init(rcc->channel, item, pipe_item_type); > + red_pipe_item_init(item, pipe_item_type); > red_channel_client_pipe_add(rcc, item); > red_channel_client_push(rcc); > } > @@ -1749,7 +1749,7 @@ void > red_channel_client_pipe_add_empty_msg(RedChannelClient *rcc, int msg_type) > { > EmptyMsgPipeItem *item = spice_new(EmptyMsgPipeItem, 1); > > - red_channel_pipe_item_init(rcc->channel, &item->base, > PIPE_ITEM_TYPE_EMPTY_MSG); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_EMPTY_MSG); > item->msg = msg_type; > red_channel_client_pipe_add(rcc, &item->base); > red_channel_client_push(rcc); > diff --git a/server/red-channel.h b/server/red-channel.h > index 2d61bc5..65b4d32 100644 > --- a/server/red-channel.h > +++ b/server/red-channel.h > @@ -476,7 +476,7 @@ int red_channel_client_get_roundtrip_ms(RedChannelClient > *rcc); > */ > void red_channel_client_start_connectivity_monitoring(RedChannelClient *rcc, > uint32_t timeout_ms); > > -void red_channel_pipe_item_init(RedChannel *channel, PipeItem *item, int > type); > +void red_pipe_item_init(PipeItem *item, int type); > > // TODO: add back the channel_pipe_add functionality - by adding reference > counting > // to the PipeItem. > diff --git a/server/red-worker.h b/server/red-worker.h > index c93f66c..59cd711 100644 > --- a/server/red-worker.h > +++ b/server/red-worker.h > @@ -70,7 +70,7 @@ static inline void red_pipe_add_verb(RedChannelClient* rcc, > uint16_t verb) > { > VerbItem *item = spice_new(VerbItem, 1); > > - red_channel_pipe_item_init(rcc->channel, &item->base, > PIPE_ITEM_TYPE_VERB); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_VERB); > item->verb = verb; > red_channel_client_pipe_add(rcc, &item->base); > } > diff --git a/server/smartcard.c b/server/smartcard.c > index 6071f59..73c11e9 100644 > --- a/server/smartcard.c > +++ b/server/smartcard.c > @@ -576,8 +576,7 @@ static void smartcard_push_error(RedChannelClient *rcc, > uint32_t reader_id, VSCE > { > ErrorItem *error_item = spice_new0(ErrorItem, 1); > > - red_channel_pipe_item_init(rcc->channel, &error_item->base, > - PIPE_ITEM_TYPE_ERROR); > + red_pipe_item_init(&error_item->base, PIPE_ITEM_TYPE_ERROR); > > error_item->base.type = PIPE_ITEM_TYPE_ERROR; > error_item->vheader.reader_id = reader_id; > @@ -591,8 +590,7 @@ static MsgItem > *smartcard_get_vsc_msg_item(RedChannelClient *rcc, VSCMsgHeader * > { > MsgItem *msg_item = spice_new0(MsgItem, 1); > > - red_channel_pipe_item_init(rcc->channel, &msg_item->base, > - PIPE_ITEM_TYPE_SMARTCARD_DATA); > + red_pipe_item_init(&msg_item->base, PIPE_ITEM_TYPE_SMARTCARD_DATA); > msg_item->refs = 1; > msg_item->vheader = vheader; > return msg_item; > diff --git a/server/spicevmc.c b/server/spicevmc.c > index 929ec0e..f2b2494 100644 > --- a/server/spicevmc.c > +++ b/server/spicevmc.c > @@ -121,8 +121,7 @@ static SpiceCharDeviceMsgToClient > *spicevmc_chardev_read_msg_from_dev(SpiceCharD > if (!state->pipe_item) { > msg_item = spice_new0(SpiceVmcPipeItem, 1); > msg_item->refs = 1; > - red_channel_pipe_item_init(&state->channel, > - &msg_item->base, > PIPE_ITEM_TYPE_SPICEVMC_DATA); > + red_pipe_item_init(&msg_item->base, PIPE_ITEM_TYPE_SPICEVMC_DATA); > } else { > spice_assert(state->pipe_item->buf_used == 0); > msg_item = state->pipe_item; > @@ -159,7 +158,7 @@ static void spicevmc_port_send_init(RedChannelClient > *rcc) > SpiceCharDeviceInstance *sin = state->chardev_sin; > PortInitPipeItem *item = spice_malloc(sizeof(PortInitPipeItem)); > > - red_channel_pipe_item_init(rcc->channel, &item->base, > PIPE_ITEM_TYPE_PORT_INIT); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_PORT_INIT); > item->name = strdup(sin->portname); > item->opened = state->port_opened; > red_channel_client_pipe_add_push(rcc, &item->base); > @@ -169,7 +168,7 @@ static void spicevmc_port_send_event(RedChannelClient > *rcc, uint8_t event) > { > PortEventPipeItem *item = spice_malloc(sizeof(PortEventPipeItem)); > > - red_channel_pipe_item_init(rcc->channel, &item->base, > PIPE_ITEM_TYPE_PORT_EVENT); > + red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_PORT_EVENT); > item->event = event; > red_channel_client_pipe_add_push(rcc, &item->base); > } > diff --git a/server/stream.c b/server/stream.c > index e98ed69..cf5fb0c 100644 > --- a/server/stream.c > +++ b/server/stream.c > @@ -136,8 +136,7 @@ void stream_agent_unref(DisplayChannel *display, > StreamAgent *agent) > StreamClipItem *stream_clip_item_new(DisplayChannelClient* dcc, StreamAgent > *agent) > { > StreamClipItem *item = spice_new(StreamClipItem, 1); > - red_channel_pipe_item_init(RED_CHANNEL_CLIENT(dcc)->channel, > - (PipeItem *)item, > PIPE_ITEM_TYPE_STREAM_CLIP); > + red_pipe_item_init((PipeItem *)item, PIPE_ITEM_TYPE_STREAM_CLIP); > > item->stream_agent = agent; > agent->stream->refs++; > @@ -735,8 +734,8 @@ void dcc_create_stream(DisplayChannelClient *dcc, Stream > *stream) > StreamActivateReportItem *report_pipe_item = > spice_malloc0(sizeof(*report_pipe_item)); > > agent->report_id = rand(); > - red_channel_pipe_item_init(RED_CHANNEL_CLIENT(dcc)->channel, > &report_pipe_item->pipe_item, > - PIPE_ITEM_TYPE_STREAM_ACTIVATE_REPORT); > + red_pipe_item_init(&report_pipe_item->pipe_item, > + PIPE_ITEM_TYPE_STREAM_ACTIVATE_REPORT); > report_pipe_item->stream_id = get_stream_id(DCC_TO_DC(dcc), stream); > red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), > &report_pipe_item->pipe_item); > } > @@ -782,7 +781,6 @@ static void > dcc_detach_stream_gracefully(DisplayChannelClient *dcc, > > if (stream->current && > region_contains(&stream->current->tree_item.base.rgn, > &agent->vis_region)) { > - RedChannel *channel; > RedChannelClient *rcc; > UpgradeItem *upgrade_item; > int n_rects; > @@ -799,11 +797,9 @@ static void > dcc_detach_stream_gracefully(DisplayChannelClient *dcc, > stream_id, stream->current->sized_stream != NULL); > rect_debug(&stream->current->red_drawable->bbox); > rcc = RED_CHANNEL_CLIENT(dcc); > - channel = rcc->channel; > upgrade_item = spice_new(UpgradeItem, 1); > upgrade_item->refs = 1; > - red_channel_pipe_item_init(channel, > - &upgrade_item->base, PIPE_ITEM_TYPE_UPGRADE); > + red_pipe_item_init(&upgrade_item->base, PIPE_ITEM_TYPE_UPGRADE); > upgrade_item->drawable = stream->current; > upgrade_item->drawable->refs++; > n_rects = > pixman_region32_n_rects(&upgrade_item->drawable->tree_item.base.rgn); There is another patch on the serie that rename the function to pipe_item_init. I think we should merge them together and rename directly to pipe_item_init. Frediano _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel