Re: [PATCH 06/14] Rename PipeItem to RedPipeItem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



These changes (this patch and the next patch) are pretty mechanical, so the main
question is whether anybody objects to this much code churn. Any objections?



On Thu, 2016-04-21 at 16:43 -0500, Jonathon Jongsma wrote:
> Following internal type naming conventions
> ---
> No changes since last patch
> 
>  server/cache-item.h      |  2 +-
>  server/cache-item.tmpl.c |  2 +-
>  server/char-device.c     | 22 +++++------
>  server/char-device.h     |  6 +--
>  server/cursor-channel.c  | 22 +++++------
>  server/dcc-send.c        | 22 +++++------
>  server/dcc.c             | 58 ++++++++++++++---------------
>  server/dcc.h             | 22 +++++------
>  server/display-channel.c | 10 ++---
>  server/display-channel.h |  8 ++--
>  server/inputs-channel.c  | 20 +++++-----
>  server/main-channel.c    | 97 ++++++++++++++++++++++++-----------------------
> -
>  server/red-channel.c     | 55 +++++++++++++--------------
>  server/red-channel.h     | 30 +++++++--------
>  server/red-pipe-item.c   | 14 +++----
>  server/red-pipe-item.h   | 14 +++----
>  server/red-worker.h      |  4 +-
>  server/reds.c            | 26 ++++++-------
>  server/smartcard.c       | 42 +++++++++++----------
>  server/spicevmc.c        | 41 ++++++++++----------
>  server/stream.c          | 16 ++++----
>  server/stream.h          |  8 ++--
>  22 files changed, 273 insertions(+), 268 deletions(-)
> 
> diff --git a/server/cache-item.h b/server/cache-item.h
> index 7dfb1af..90c82d3 100644
> --- a/server/cache-item.h
> +++ b/server/cache-item.h
> @@ -25,7 +25,7 @@ typedef struct CacheItem CacheItem;
>  
>  struct CacheItem {
>      union {
> -        PipeItem pipe_data;
> +        RedPipeItem pipe_data;
>          struct {
>              RingItem lru_link;
>              CacheItem *next;
> diff --git a/server/cache-item.tmpl.c b/server/cache-item.tmpl.c
> index 23b0bc1..d63e576 100644
> --- a/server/cache-item.tmpl.c
> +++ b/server/cache-item.tmpl.c
> @@ -81,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;
>  
> -    pipe_item_init(&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/char-device.c b/server/char-device.c
> index 8cdf326..fc1d692 100644
> --- a/server/char-device.c
> +++ b/server/char-device.c
> @@ -104,7 +104,7 @@ static guint signals[RED_CHAR_DEVICE_LAST_SIGNAL];
>  static void red_char_device_write_buffer_unref(RedCharDeviceWriteBuffer
> *write_buf);
>  static void red_char_device_write_retry(void *opaque);
>  
> -static PipeItem *
> +static RedPipeItem *
>  red_char_device_read_one_msg_from_device(RedCharDevice *dev)
>  {
>     RedCharDeviceClass *klass = RED_CHAR_DEVICE_GET_CLASS(dev);
> @@ -114,7 +114,7 @@ red_char_device_read_one_msg_from_device(RedCharDevice
> *dev)
>  
>  static void
>  red_char_device_send_msg_to_client(RedCharDevice *dev,
> -                                   PipeItem *msg,
> +                                   RedPipeItem *msg,
>                                     RedClient *client)
>  {
>     RedCharDeviceClass *klass = RED_CHAR_DEVICE_GET_CLASS(dev);
> @@ -188,7 +188,7 @@ static void red_char_device_client_free(RedCharDevice
> *dev,
>          dev_client->wait_for_tokens_timer = NULL;
>      }
>  
> -    g_queue_free_full(dev_client->send_queue, pipe_item_unref);
> +    g_queue_free_full(dev_client->send_queue, red_pipe_item_unref);
>  
>      /* 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);
> @@ -276,7 +276,7 @@ static uint64_t
> red_char_device_max_send_tokens(RedCharDevice *dev)
>  }
>  
>  static void red_char_device_add_msg_to_client_queue(RedCharDeviceClient
> *dev_client,
> -                                                    PipeItem *msg)
> +                                                    RedPipeItem *msg)
>  {
>      RedCharDevice *dev = dev_client->dev;
>  
> @@ -285,7 +285,7 @@ static void
> red_char_device_add_msg_to_client_queue(RedCharDeviceClient *dev_cli
>          return;
>      }
>  
> -    pipe_item_ref(msg);
> +    red_pipe_item_ref(msg);
>      g_queue_push_head(dev_client->send_queue, msg);
>      if (!dev_client->wait_for_tokens_started) {
>          reds_core_timer_start(dev->priv->reds, dev_client
> ->wait_for_tokens_timer,
> @@ -295,7 +295,7 @@ static void
> red_char_device_add_msg_to_client_queue(RedCharDeviceClient *dev_cli
>  }
>  
>  static void red_char_device_send_msg_to_clients(RedCharDevice *dev,
> -                                                PipeItem *msg)
> +                                                RedPipeItem *msg)
>  {
>      RingItem *item, *next;
>  
> @@ -341,7 +341,7 @@ static int red_char_device_read_from_device(RedCharDevice
> *dev)
>       * All messages will be discarded if no client is attached to the device
>       */
>      while ((max_send_tokens || ring_is_empty(&dev->priv->clients)) && dev
> ->priv->running) {
> -        PipeItem *msg;
> +        RedPipeItem *msg;
>  
>          msg = red_char_device_read_one_msg_from_device(dev);
>          if (!msg) {
> @@ -354,7 +354,7 @@ static int red_char_device_read_from_device(RedCharDevice
> *dev)
>          }
>          did_read = TRUE;
>          red_char_device_send_msg_to_clients(dev, msg);
> -        pipe_item_unref(msg);
> +        red_pipe_item_unref(msg);
>          max_send_tokens--;
>      }
>      dev->priv->during_read_from_device = 0;
> @@ -369,12 +369,12 @@ static void
> red_char_device_client_send_queue_push(RedCharDeviceClient *dev_clie
>  {
>      while (!g_queue_is_empty(dev_client->send_queue) &&
>             red_char_device_can_send_to_client(dev_client)) {
> -        PipeItem *msg = g_queue_pop_tail(dev_client->send_queue);
> +        RedPipeItem *msg = g_queue_pop_tail(dev_client->send_queue);
>          g_assert(msg != NULL);
>          dev_client->num_send_tokens--;
>          red_char_device_send_msg_to_client(dev_client->dev, msg,
>                                             dev_client->client);
> -        pipe_item_unref(msg);
> +        red_pipe_item_unref(msg);
>      }
>  }
>  
> @@ -854,7 +854,7 @@ void red_char_device_reset(RedCharDevice *dev)
>          dev_client = SPICE_CONTAINEROF(client_item, RedCharDeviceClient,
> link);
>          spice_debug("send_queue_empty %d", g_queue_is_empty(dev_client
> ->send_queue));
>          dev_client->num_send_tokens += g_queue_get_length(dev_client
> ->send_queue);
> -        g_queue_foreach(dev_client->send_queue, (GFunc)pipe_item_unref,
> NULL);
> +        g_queue_foreach(dev_client->send_queue, (GFunc)red_pipe_item_unref,
> NULL);
>          g_queue_clear(dev_client->send_queue);
>      }
>      red_char_device_reset_dev_instance(dev, NULL);
> diff --git a/server/char-device.h b/server/char-device.h
> index c18ce66..75ec344 100644
> --- a/server/char-device.h
> +++ b/server/char-device.h
> @@ -56,10 +56,10 @@ struct RedCharDeviceClass
>  
>      /* reads from the device till reaching a msg that should be sent to the
> client,
>       * or till the reading fails */
> -    PipeItem* (*read_one_msg_from_device)(SpiceCharDeviceInstance *sin,
> -                                          void *opaque);
> +    RedPipeItem* (*read_one_msg_from_device)(SpiceCharDeviceInstance *sin,
> +                                             void *opaque);
>      /* after this call, the message is unreferenced */
> -    void (*send_msg_to_client)(PipeItem *msg,
> +    void (*send_msg_to_client)(RedPipeItem *msg,
>                                 RedClient *client,
>                                 void *opaque);
>  
> diff --git a/server/cursor-channel.c b/server/cursor-channel.c
> index 7d5ac6a..e2bb706 100644
> --- a/server/cursor-channel.c
> +++ b/server/cursor-channel.c
> @@ -46,7 +46,7 @@ typedef struct CursorItem {
>  G_STATIC_ASSERT(sizeof(CursorItem) <= QXL_CURSUR_DEVICE_DATA_SIZE);
>  
>  typedef struct CursorPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      CursorItem *cursor_item;
>      int refs;
>  } CursorPipeItem;
> @@ -132,11 +132,11 @@ static void cursor_set_item(CursorChannel *cursor,
> CursorItem *item)
>      cursor->item = item ? cursor_item_ref(item) : NULL;
>  }
>  
> -static PipeItem *new_cursor_pipe_item(RedChannelClient *rcc, void *data, int
> num)
> +static RedPipeItem *new_cursor_pipe_item(RedChannelClient *rcc, void *data,
> int num)
>  {
>      CursorPipeItem *item = spice_malloc0(sizeof(CursorPipeItem));
>  
> -    pipe_item_init(&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++;
> @@ -212,7 +212,7 @@ static void put_cursor_pipe_item(CursorChannelClient *ccc,
> CursorPipeItem *pipe_
>          return;
>      }
>  
> -    spice_assert(!pipe_item_is_linked(&pipe_item->base));
> +    spice_assert(!red_pipe_item_is_linked(&pipe_item->base));
>  
>      cursor_item_unref(pipe_item->cursor_item);
>      free(pipe_item);
> @@ -229,7 +229,7 @@ static void
> cursor_channel_client_on_disconnect(RedChannelClient *rcc)
>  // TODO: share code between before/after_push since most of the items need
> the same
>  // release
>  static void
> cursor_channel_client_release_item_before_push(CursorChannelClient *ccc,
> -                                                           PipeItem *item)
> +                                                           RedPipeItem *item)
>  {
>      switch (item->type) {
>      case PIPE_ITEM_TYPE_CURSOR: {
> @@ -249,7 +249,7 @@ static void
> cursor_channel_client_release_item_before_push(CursorChannelClient *
>  }
>  
>  static void cursor_channel_client_release_item_after_push(CursorChannelClient
> *ccc,
> -                                                          PipeItem *item)
> +                                                          RedPipeItem *item)
>  {
>      switch (item->type) {
>          case PIPE_ITEM_TYPE_CURSOR: {
> @@ -263,7 +263,7 @@ static void
> cursor_channel_client_release_item_after_push(CursorChannelClient *c
>  }
>  
>  static void red_marshall_cursor_init(RedChannelClient *rcc, SpiceMarshaller
> *base_marshaller,
> -                                     PipeItem *pipe_item)
> +                                     RedPipeItem *pipe_item)
>  {
>      CursorChannel *cursor_channel;
>      CursorChannelClient *ccc = RCC_TO_CCC(rcc);
> @@ -290,7 +290,7 @@ static void cursor_marshall(RedChannelClient *rcc,
>      CursorChannel *cursor_channel = SPICE_CONTAINEROF(rcc->channel,
> CursorChannel, common.base);
>      CursorChannelClient *ccc = RCC_TO_CCC(rcc);
>      CursorItem *item = cursor_pipe_item->cursor_item;
> -    PipeItem *pipe_item = &cursor_pipe_item->base;
> +    RedPipeItem *pipe_item = &cursor_pipe_item->base;
>      RedCursorCmd *cmd;
>  
>      spice_return_if_fail(cursor_channel);
> @@ -348,7 +348,7 @@ static inline void red_marshall_inval(RedChannelClient
> *rcc,
>      spice_marshall_msg_cursor_inval_one(base_marshaller, &inval_one);
>  }
>  
> -static void cursor_channel_send_item(RedChannelClient *rcc, PipeItem
> *pipe_item)
> +static void cursor_channel_send_item(RedChannelClient *rcc, RedPipeItem
> *pipe_item)
>  {
>      SpiceMarshaller *m = red_channel_client_get_marshaller(rcc);
>      CursorChannelClient *ccc = RCC_TO_CCC(rcc);
> @@ -389,7 +389,7 @@ static CursorPipeItem *cursor_pipe_item_ref(CursorPipeItem
> *item)
>  }
>  
>  
> -static void cursor_channel_hold_pipe_item(RedChannelClient *rcc, PipeItem
> *item)
> +static void cursor_channel_hold_pipe_item(RedChannelClient *rcc, RedPipeItem
> *item)
>  {
>      CursorPipeItem *cursor_pipe_item;
>  
> @@ -399,7 +399,7 @@ static void cursor_channel_hold_pipe_item(RedChannelClient
> *rcc, PipeItem *item)
>      cursor_pipe_item_ref(cursor_pipe_item);
>  }
>  
> -static void cursor_channel_release_item(RedChannelClient *rcc, PipeItem
> *item, int item_pushed)
> +static void cursor_channel_release_item(RedChannelClient *rcc, RedPipeItem
> *item, int item_pushed)
>  {
>      CursorChannelClient *ccc = RCC_TO_CCC(rcc);
>  
> diff --git a/server/dcc-send.c b/server/dcc-send.c
> index b8d1157..799d5df 100644
> --- a/server/dcc-send.c
> +++ b/server/dcc-send.c
> @@ -186,9 +186,9 @@ static int is_brush_lossy(RedChannelClient *rcc,
> SpiceBrush *brush,
>      }
>  }
>  
> -static PipeItem *dcc_get_tail(DisplayChannelClient *dcc)
> +static RedPipeItem *dcc_get_tail(DisplayChannelClient *dcc)
>  {
> -    return (PipeItem*)ring_get_tail(&RED_CHANNEL_CLIENT(dcc)->pipe);
> +    return (RedPipeItem*)ring_get_tail(&RED_CHANNEL_CLIENT(dcc)->pipe);
>  }
>  
>  static void red_display_add_image_to_pixmap_cache(RedChannelClient *rcc,
> @@ -596,15 +596,15 @@ static int
> pipe_rendered_drawables_intersect_with_areas(DisplayChannelClient *dc
>                                                          SpiceRect
> *surface_areas[],
>                                                          int num_surfaces)
>  {
> -    PipeItem *pipe_item;
> +    RedPipeItem *pipe_item;
>      Ring *pipe;
>  
>      spice_assert(num_surfaces);
>      pipe = &RED_CHANNEL_CLIENT(dcc)->pipe;
>  
> -    for (pipe_item = (PipeItem *)ring_get_head(pipe);
> +    for (pipe_item = (RedPipeItem *)ring_get_head(pipe);
>           pipe_item;
> -         pipe_item = (PipeItem *)ring_next(pipe, &pipe_item->link))
> +         pipe_item = (RedPipeItem *)ring_next(pipe, &pipe_item->link))
>      {
>          Drawable *drawable;
>  
> @@ -685,7 +685,7 @@ static void
> red_pipe_replace_rendered_drawables_with_images(DisplayChannelClient
>      int resent_surface_ids[MAX_PIPE_SIZE];
>      SpiceRect resent_areas[MAX_PIPE_SIZE]; // not pointers since drawables
> may be released
>      int num_resent;
> -    PipeItem *pipe_item;
> +    RedPipeItem *pipe_item;
>      Ring *pipe;
>  
>      resent_surface_ids[0] = first_surface_id;
> @@ -695,9 +695,9 @@ static void
> red_pipe_replace_rendered_drawables_with_images(DisplayChannelClient
>      pipe = &RED_CHANNEL_CLIENT(dcc)->pipe;
>  
>      // going from the oldest to the newest
> -    for (pipe_item = (PipeItem *)ring_get_tail(pipe);
> +    for (pipe_item = (RedPipeItem *)ring_get_tail(pipe);
>           pipe_item;
> -         pipe_item = (PipeItem *)ring_prev(pipe, &pipe_item->link)) {
> +         pipe_item = (RedPipeItem *)ring_prev(pipe, &pipe_item->link)) {
>          Drawable *drawable;
>          DrawablePipeItem *dpi;
>          ImageItem *image;
> @@ -2301,7 +2301,7 @@ static void
> marshall_stream_activate_report(RedChannelClient *rcc,
>  
>  static void marshall_gl_scanout(RedChannelClient *rcc,
>                                  SpiceMarshaller *m,
> -                                PipeItem *item)
> +                                RedPipeItem *item)
>  {
>      DisplayChannelClient *dcc = RCC_TO_DCC(rcc);
>      DisplayChannel *display_channel = DCC_TO_DC(dcc);
> @@ -2317,7 +2317,7 @@ static void marshall_gl_scanout(RedChannelClient *rcc,
>  
>  static void marshall_gl_draw(RedChannelClient *rcc,
>                               SpiceMarshaller *m,
> -                             PipeItem *item)
> +                             RedPipeItem *item)
>  {
>      GlDrawItem *p = SPICE_CONTAINEROF(item, GlDrawItem, base);
>  
> @@ -2360,7 +2360,7 @@ static void reset_send_data(DisplayChannelClient *dcc)
>      memset(dcc->send_data.free_list.sync, 0, sizeof(dcc
> ->send_data.free_list.sync));
>  }
>  
> -void dcc_send_item(DisplayChannelClient *dcc, PipeItem *pipe_item)
> +void dcc_send_item(DisplayChannelClient *dcc, RedPipeItem *pipe_item)
>  {
>      RedChannelClient *rcc = RED_CHANNEL_CLIENT(dcc);
>      SpiceMarshaller *m = red_channel_client_get_marshaller(rcc);
> diff --git a/server/dcc.c b/server/dcc.c
> index 09a1fca..a74ffe1 100644
> --- a/server/dcc.c
> +++ b/server/dcc.c
> @@ -38,7 +38,7 @@ static SurfaceCreateItem
> *surface_create_item_new(RedChannel* channel,
>      create->surface_create.flags = flags;
>      create->surface_create.format = format;
>  
> -    pipe_item_init(&create->pipe_item, PIPE_ITEM_TYPE_CREATE_SURFACE);
> +    red_pipe_item_init(&create->pipe_item, PIPE_ITEM_TYPE_CREATE_SURFACE);
>      return create;
>  }
>  
> @@ -64,7 +64,7 @@ int
> dcc_clear_surface_drawables_from_pipe(DisplayChannelClient *dcc, int surface
>                                            int wait_if_used)
>  {
>      Ring *ring;
> -    PipeItem *item;
> +    RedPipeItem *item;
>      int x;
>      RedChannelClient *rcc;
>  
> @@ -74,8 +74,8 @@ int
> dcc_clear_surface_drawables_from_pipe(DisplayChannelClient *dcc, int surface
>  
>      rcc = RED_CHANNEL_CLIENT(dcc);
>      ring = &rcc->pipe;
> -    item = (PipeItem *) ring;
> -    while ((item = (PipeItem *)ring_next(ring, (RingItem *)item))) {
> +    item = (RedPipeItem *) ring;
> +    while ((item = (RedPipeItem *)ring_next(ring, (RingItem *)item))) {
>          Drawable *drawable;
>          DrawablePipeItem *dpi = NULL;
>          int depend_found = FALSE;
> @@ -90,11 +90,11 @@ int
> dcc_clear_surface_drawables_from_pipe(DisplayChannelClient *dcc, int surface
>          }
>  
>          if (drawable->surface_id == surface_id) {
> -            PipeItem *tmp_item = item;
> -            item = (PipeItem *)ring_prev(ring, (RingItem *)item);
> +            RedPipeItem *tmp_item = item;
> +            item = (RedPipeItem *)ring_prev(ring, (RingItem *)item);
>              red_channel_client_pipe_remove_and_release(rcc, tmp_item);
>              if (!item) {
> -                item = (PipeItem *)ring;
> +                item = (RedPipeItem *)ring;
>              }
>              continue;
>          }
> @@ -163,7 +163,7 @@ void dcc_create_surface(DisplayChannelClient *dcc, int
> surface_id)
>  
>  // adding the pipe item after pos. If pos == NULL, adding to head.
>  ImageItem *dcc_add_surface_area_image(DisplayChannelClient *dcc, int
> surface_id,
> -                                      SpiceRect *area, PipeItem *pos, int
> can_lossy)
> +                                      SpiceRect *area, RedPipeItem *pos, int
> can_lossy)
>  {
>      DisplayChannel *display = DCC_TO_DC(dcc);
>      RedSurface *surface = &display->surfaces[surface_id];
> @@ -184,7 +184,7 @@ ImageItem *dcc_add_surface_area_image(DisplayChannelClient
> *dcc, int surface_id,
>  
>      item = (ImageItem *)spice_malloc_n_m(height, stride, sizeof(ImageItem));
>  
> -    pipe_item_init(&item->base, PIPE_ITEM_TYPE_IMAGE);
> +    red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_IMAGE);
>  
>      item->surface_id = surface_id;
>      item->image_format =
> @@ -274,7 +274,7 @@ static void
> add_drawable_surface_images(DisplayChannelClient *dcc, Drawable *dra
>      dcc_push_surface_image(dcc, drawable->surface_id);
>  }
>  
> -void drawable_pipe_item_free(PipeItem *item)
> +void drawable_pipe_item_free(RedPipeItem *item)
>  {
>      DrawablePipeItem *dpi = SPICE_CONTAINEROF(item, DrawablePipeItem,
> dpi_pipe_item);
>      spice_assert(item->refcount == 0);
> @@ -294,8 +294,8 @@ static DrawablePipeItem
> *drawable_pipe_item_new(DisplayChannelClient *dcc, Drawa
>      dpi->dcc = dcc;
>      ring_item_init(&dpi->base);
>      ring_add(&drawable->pipes, &dpi->base);
> -    pipe_item_init_full(&dpi->dpi_pipe_item, PIPE_ITEM_TYPE_DRAW,
> -                        (GDestroyNotify)drawable_pipe_item_free);
> +    red_pipe_item_init_full(&dpi->dpi_pipe_item, PIPE_ITEM_TYPE_DRAW,
> +                            (GDestroyNotify)drawable_pipe_item_free);
>      drawable->refs++;
>      return dpi;
>  }
> @@ -316,7 +316,7 @@ void dcc_append_drawable(DisplayChannelClient *dcc,
> Drawable *drawable)
>      red_channel_client_pipe_add_tail_and_push(RED_CHANNEL_CLIENT(dcc), &dpi
> ->dpi_pipe_item);
>  }
>  
> -void dcc_add_drawable_after(DisplayChannelClient *dcc, Drawable *drawable,
> PipeItem *pos)
> +void dcc_add_drawable_after(DisplayChannelClient *dcc, Drawable *drawable,
> RedPipeItem *pos)
>  {
>      DrawablePipeItem *dpi = drawable_pipe_item_new(dcc, drawable);
>  
> @@ -334,8 +334,8 @@ static void dcc_init_stream_agents(DisplayChannelClient
> *dcc)
>          agent->stream = &display->streams_buf[i];
>          region_init(&agent->vis_region);
>          region_init(&agent->clip);
> -        pipe_item_init(&agent->create_item, PIPE_ITEM_TYPE_STREAM_CREATE);
> -        pipe_item_init(&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);
> @@ -505,7 +505,7 @@ void dcc_stream_agent_clip(DisplayChannelClient* dcc,
> StreamAgent *agent)
>      item->rects->num_rects = n_rects;
>      region_ret_rects(&agent->clip, item->rects->rects, n_rects);
>  
> -    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), (PipeItem *)item);
> +    red_channel_client_pipe_add(RED_CHANNEL_CLIENT(dcc), (RedPipeItem
> *)item);
>  }
>  
>  static void monitors_config_item_free(MonitorsConfigItem *item)
> @@ -522,8 +522,8 @@ static MonitorsConfigItem
> *monitors_config_item_new(RedChannel* channel,
>      mci = (MonitorsConfigItem *)spice_malloc(sizeof(*mci));
>      mci->monitors_config = monitors_config;
>  
> -    pipe_item_init_full(&mci->pipe_item, PIPE_ITEM_TYPE_MONITORS_CONFIG,
> -                        (GDestroyNotify)monitors_config_item_free);
> +    red_pipe_item_init_full(&mci->pipe_item, PIPE_ITEM_TYPE_MONITORS_CONFIG,
> +                            (GDestroyNotify)monitors_config_item_free);
>      return mci;
>  }
>  
> @@ -556,12 +556,12 @@ static SurfaceDestroyItem
> *surface_destroy_item_new(RedChannel *channel,
>  
>      destroy = spice_malloc(sizeof(SurfaceDestroyItem));
>      destroy->surface_destroy.surface_id = surface_id;
> -    pipe_item_init(&destroy->pipe_item, PIPE_ITEM_TYPE_DESTROY_SURFACE);
> +    red_pipe_item_init(&destroy->pipe_item, PIPE_ITEM_TYPE_DESTROY_SURFACE);
>  
>      return destroy;
>  }
>  
> -PipeItem *dcc_gl_scanout_item_new(RedChannelClient *rcc, void *data, int num)
> +RedPipeItem *dcc_gl_scanout_item_new(RedChannelClient *rcc, void *data, int
> num)
>  {
>      GlScanoutUnixItem *item = spice_new(GlScanoutUnixItem, 1);
>      spice_return_val_if_fail(item != NULL, NULL);
> @@ -574,12 +574,12 @@ PipeItem *dcc_gl_scanout_item_new(RedChannelClient *rcc,
> void *data, int num)
>          return NULL;
>      }
>  
> -    pipe_item_init(&item->base, PIPE_ITEM_TYPE_GL_SCANOUT);
> +    red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_GL_SCANOUT);
>  
>      return &item->base;
>  }
>  
> -PipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, void *data, int num)
> +RedPipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, void *data, int num)
>  {
>      DisplayChannelClient *dcc = RCC_TO_DCC(rcc);
>      const SpiceMsgDisplayGlDraw *draw = data;
> @@ -594,7 +594,7 @@ PipeItem *dcc_gl_draw_item_new(RedChannelClient *rcc, void
> *data, int num)
>  
>      dcc->gl_draw_ongoing = TRUE;
>      item->draw = *draw;
> -    pipe_item_init(&item->base, PIPE_ITEM_TYPE_GL_DRAW);
> +    red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_GL_DRAW);
>  
>      return &item->base;
>  }
> @@ -1589,7 +1589,7 @@ int dcc_handle_migrate_data(DisplayChannelClient *dcc,
> uint32_t size, void *mess
>      return TRUE;
>  }
>  
> -static void release_item_after_push(DisplayChannelClient *dcc, PipeItem
> *item)
> +static void release_item_after_push(DisplayChannelClient *dcc, RedPipeItem
> *item)
>  {
>      switch (item->type) {
>      case PIPE_ITEM_TYPE_DRAW:
> @@ -1597,7 +1597,7 @@ static void release_item_after_push(DisplayChannelClient
> *dcc, PipeItem *item)
>      case PIPE_ITEM_TYPE_STREAM_CLIP:
>      case PIPE_ITEM_TYPE_MONITORS_CONFIG:
>      case PIPE_ITEM_TYPE_UPGRADE:
> -        pipe_item_unref(item);
> +        red_pipe_item_unref(item);
>          break;
>      case PIPE_ITEM_TYPE_GL_SCANOUT:
>      case PIPE_ITEM_TYPE_GL_DRAW:
> @@ -1611,7 +1611,7 @@ static void release_item_after_push(DisplayChannelClient
> *dcc, PipeItem *item)
>  
>  // TODO: share code between before/after_push since most of the items need
> the same
>  // release
> -static void release_item_before_push(DisplayChannelClient *dcc, PipeItem
> *item)
> +static void release_item_before_push(DisplayChannelClient *dcc, RedPipeItem
> *item)
>  {
>      DisplayChannel *display = DCC_TO_DC(dcc);
>  
> @@ -1620,7 +1620,7 @@ static void
> release_item_before_push(DisplayChannelClient *dcc, PipeItem *item)
>      case PIPE_ITEM_TYPE_DRAW: {
>          DrawablePipeItem *dpi = SPICE_CONTAINEROF(item, DrawablePipeItem,
> dpi_pipe_item);
>          ring_remove(&dpi->base);
> -        pipe_item_unref(item);
> +        red_pipe_item_unref(item);
>          break;
>      }
>      case PIPE_ITEM_TYPE_STREAM_CREATE: {
> @@ -1637,7 +1637,7 @@ static void
> release_item_before_push(DisplayChannelClient *dcc, PipeItem *item)
>      case PIPE_ITEM_TYPE_UPGRADE:
>      case PIPE_ITEM_TYPE_IMAGE:
>      case PIPE_ITEM_TYPE_MONITORS_CONFIG:
> -        pipe_item_unref(item);
> +        red_pipe_item_unref(item);
>          break;
>      case PIPE_ITEM_TYPE_CREATE_SURFACE: {
>          SurfaceCreateItem *surface_create = SPICE_CONTAINEROF(item,
> SurfaceCreateItem,
> @@ -1667,7 +1667,7 @@ static void
> release_item_before_push(DisplayChannelClient *dcc, PipeItem *item)
>      }
>  }
>  
> -void dcc_release_item(DisplayChannelClient *dcc, PipeItem *item, int
> item_pushed)
> +void dcc_release_item(DisplayChannelClient *dcc, RedPipeItem *item, int
> item_pushed)
>  {
>      if (item_pushed)
>          release_item_after_push(dcc, item);
> diff --git a/server/dcc.h b/server/dcc.h
> index e8354e2..52cd22a 100644
> --- a/server/dcc.h
> +++ b/server/dcc.h
> @@ -123,20 +123,20 @@ struct DisplayChannelClient {
>  
>  typedef struct SurfaceCreateItem {
>      SpiceMsgSurfaceCreate surface_create;
> -    PipeItem pipe_item;
> +    RedPipeItem pipe_item;
>  } SurfaceCreateItem;
>  
>  typedef struct GlScanoutUnixItem {
> -    PipeItem base;
> +    RedPipeItem base;
>  } GlScanoutUnixItem;
>  
>  typedef struct GlDrawItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      SpiceMsgDisplayGlDraw draw;
>  } GlDrawItem;
>  
>  typedef struct ImageItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      SpicePoint pos;
>      int width;
>      int height;
> @@ -151,7 +151,7 @@ typedef struct ImageItem {
>  
>  typedef struct DrawablePipeItem {
>      RingItem base;  /* link for a list of pipe items held by Drawable */
> -    PipeItem dpi_pipe_item; /* link for the client's pipe itself */
> +    RedPipeItem dpi_pipe_item; /* link for the client's pipe itself */
>      Drawable *drawable;
>      DisplayChannelClient *dcc;
>      uint8_t refs;
> @@ -189,7 +189,7 @@ void                       dcc_push_surface_image         
>            (DisplayCha
>  ImageItem *                dcc_add_surface_area_image               
>  (DisplayChannelClient *dcc,
>                                                                        int
> surface_id,
>                                                                       
>  SpiceRect *area,
> -                                                                     
>  PipeItem *pos,
> +                                                                     
>  RedPipeItem *pos,
>                                                                        int
> can_lossy);
>  void                       dcc_palette_cache_reset                  
>  (DisplayChannelClient *dcc);
>  void                       dcc_palette_cache_palette                
>  (DisplayChannelClient *dcc,
> @@ -203,20 +203,20 @@ void                       dcc_append_drawable          
>              (DisplayCha
>                                                                       
>  Drawable *drawable);
>  void                       dcc_add_drawable_after                   
>  (DisplayChannelClient *dcc,
>                                                                       
>  Drawable *drawable,
> -                                                                     
>  PipeItem *pos);
> +                                                                     
>  RedPipeItem *pos);
>  void                       dcc_release_item                         
>  (DisplayChannelClient *dcc,
> -                                                                     
>  PipeItem *item,
> +                                                                     
>  RedPipeItem *item,
>                                                                        int
> item_pushed);
>  void                       dcc_send_item                            
>  (DisplayChannelClient *dcc,
> -                                                                     
>  PipeItem *item);
> +                                                                     
>  RedPipeItem *item);
>  int                        dcc_clear_surface_drawables_from_pipe    
>  (DisplayChannelClient *dcc,
>                                                                        int
> surface_id,
>                                                                        int
> wait_if_used);
>  int                        dcc_drawable_is_in_pipe                  
>  (DisplayChannelClient *dcc,
>                                                                       
>  Drawable *drawable);
> -PipeItem *                 dcc_gl_scanout_item_new                  
>  (RedChannelClient *rcc,
> +RedPipeItem *              dcc_gl_scanout_item_new                  
>  (RedChannelClient *rcc,
>                                                                        void
> *data, int num);
> -PipeItem *                 dcc_gl_draw_item_new                     
>  (RedChannelClient *rcc,
> +RedPipeItem *              dcc_gl_draw_item_new                     
>  (RedChannelClient *rcc,
>                                                                        void
> *data, int num);
>  
>  typedef struct compress_send_data_t {
> diff --git a/server/display-channel.c b/server/display-channel.c
> index 99a490d..31dccb8 100644
> --- a/server/display-channel.c
> +++ b/server/display-channel.c
> @@ -408,7 +408,7 @@ static void drawable_remove_from_pipes(Drawable *drawable)
>  
>      RING_FOREACH_SAFE(item, next, &drawable->pipes) {
>          dpi = SPICE_CONTAINEROF(item, DrawablePipeItem, base);
> -        if (pipe_item_is_linked(&dpi->dpi_pipe_item)) {
> +        if (red_pipe_item_is_linked(&dpi->dpi_pipe_item)) {
>              red_channel_client_pipe_remove_and_release(RED_CHANNEL_CLIENT(dpi
> ->dcc),
>                                                         &dpi->dpi_pipe_item);
>          }
> @@ -1965,12 +1965,12 @@ static void on_disconnect(RedChannelClient *rcc)
>                  display->glz_drawable_count);
>  }
>  
> -static void send_item(RedChannelClient *rcc, PipeItem *item)
> +static void send_item(RedChannelClient *rcc, RedPipeItem *item)
>  {
>      dcc_send_item(RCC_TO_DCC(rcc), item);
>  }
>  
> -static void hold_item(RedChannelClient *rcc, PipeItem *item)
> +static void hold_item(RedChannelClient *rcc, RedPipeItem *item)
>  {
>      spice_return_if_fail(item);
>  
> @@ -1979,14 +1979,14 @@ static void hold_item(RedChannelClient *rcc, PipeItem
> *item)
>      case PIPE_ITEM_TYPE_IMAGE:
>      case PIPE_ITEM_TYPE_STREAM_CLIP:
>      case PIPE_ITEM_TYPE_UPGRADE:
> -        pipe_item_ref(item);
> +        red_pipe_item_ref(item);
>          break;
>      default:
>          spice_warn_if_reached();
>      }
>  }
>  
> -static void release_item(RedChannelClient *rcc, PipeItem *item, int
> item_pushed)
> +static void release_item(RedChannelClient *rcc, RedPipeItem *item, int
> item_pushed)
>  {
>      DisplayChannelClient *dcc = RCC_TO_DCC(rcc);
>  
> diff --git a/server/display-channel.h b/server/display-channel.h
> index c10cfe2..c5b67c4 100644
> --- a/server/display-channel.h
> +++ b/server/display-channel.h
> @@ -58,7 +58,7 @@ struct Drawable {
>      RingItem list_link;
>      DrawItem tree_item;
>      Ring pipes;
> -    PipeItem *pipe_item_rest;
> +    RedPipeItem *pipe_item_rest;
>      uint32_t size_pipe_item_rest;
>      RedDrawable *red_drawable;
>  
> @@ -120,7 +120,7 @@ typedef struct MonitorsConfig {
>  } MonitorsConfig;
>  
>  typedef struct MonitorsConfigItem {
> -    PipeItem pipe_item;
> +    RedPipeItem pipe_item;
>      MonitorsConfig *monitors_config;
>  } MonitorsConfigItem;
>  
> @@ -242,11 +242,11 @@ static inline int get_stream_id(DisplayChannel *display,
> Stream *stream)
>  
>  typedef struct SurfaceDestroyItem {
>      SpiceMsgSurfaceDestroy surface_destroy;
> -    PipeItem pipe_item;
> +    RedPipeItem pipe_item;
>  } SurfaceDestroyItem;
>  
>  typedef struct UpgradeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      Drawable *drawable;
>      SpiceClipRects *rects;
>  } UpgradeItem;
> diff --git a/server/inputs-channel.c b/server/inputs-channel.c
> index 45e0a8f..81a8d4a 100644
> --- a/server/inputs-channel.c
> +++ b/server/inputs-channel.c
> @@ -123,16 +123,16 @@ enum {
>  };
>  
>  typedef struct InputsPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>  } InputsPipeItem;
>  
>  typedef struct KeyModifiersPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      uint8_t modifiers;
>  } KeyModifiersPipeItem;
>  
>  typedef struct InputsInitPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      uint8_t modifiers;
>  } InputsInitPipeItem;
>  
> @@ -229,19 +229,19 @@ static uint8_t kbd_get_leds(SpiceKbdInstance *sin)
>      return sif->get_leds(sin);
>  }
>  
> -static PipeItem *inputs_key_modifiers_item_new(
> +static RedPipeItem *inputs_key_modifiers_item_new(
>      RedChannelClient *rcc, void *data, int num)
>  {
>      KeyModifiersPipeItem *item = spice_malloc(sizeof(KeyModifiersPipeItem));
>  
> -    pipe_item_init(&item->base, PIPE_ITEM_KEY_MODIFIERS);
> +    red_pipe_item_init(&item->base, PIPE_ITEM_KEY_MODIFIERS);
>      item->modifiers = *(uint8_t *)data;
>      return &item->base;
>  }
>  
>  static void inputs_channel_send_migrate_data(RedChannelClient *rcc,
>                                               SpiceMarshaller *m,
> -                                             PipeItem *item)
> +                                             RedPipeItem *item)
>  {
>      InputsChannelClient *icc = SPICE_CONTAINEROF(rcc, InputsChannelClient,
> base);
>      InputsChannel *inputs = SPICE_CONTAINEROF(rcc->channel, InputsChannel,
> base);
> @@ -255,12 +255,12 @@ static void
> inputs_channel_send_migrate_data(RedChannelClient *rcc,
>  }
>  
>  static void inputs_channel_release_pipe_item(RedChannelClient *rcc,
> -    PipeItem *base, int item_pushed)
> +    RedPipeItem *base, int item_pushed)
>  {
>      free(base);
>  }
>  
> -static void inputs_channel_send_item(RedChannelClient *rcc, PipeItem *base)
> +static void inputs_channel_send_item(RedChannelClient *rcc, RedPipeItem
> *base)
>  {
>      SpiceMarshaller *m = red_channel_client_get_marshaller(rcc);
>  
> @@ -503,7 +503,7 @@ static void inputs_pipe_add_init(RedChannelClient *rcc)
>      InputsInitPipeItem *item = spice_malloc(sizeof(InputsInitPipeItem));
>      InputsChannel *inputs = SPICE_CONTAINEROF(rcc->channel, InputsChannel,
> base);
>  
> -    pipe_item_init(&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);
>  }
> @@ -524,7 +524,7 @@ static int inputs_channel_config_socket(RedChannelClient
> *rcc)
>      return TRUE;
>  }
>  
> -static void inputs_channel_hold_pipe_item(RedChannelClient *rcc, PipeItem
> *item)
> +static void inputs_channel_hold_pipe_item(RedChannelClient *rcc, RedPipeItem
> *item)
>  {
>  }
>  
> diff --git a/server/main-channel.c b/server/main-channel.c
> index a9d0ce1..b904e33 100644
> --- a/server/main-channel.c
> +++ b/server/main-channel.c
> @@ -79,28 +79,28 @@ enum {
>  };
>  
>  typedef struct RefsPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      int *refs;
>  } RefsPipeItem;
>  
>  typedef struct PingPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      int size;
>  } PingPipeItem;
>  
>  typedef struct MouseModePipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      int current_mode;
>      int is_client_mouse_allowed;
>  } MouseModePipeItem;
>  
>  typedef struct TokensPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      int tokens;
>  } TokensPipeItem;
>  
>  typedef struct AgentDataPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      uint8_t* data;
>      size_t len;
>      spice_marshaller_item_free_func free_data;
> @@ -108,7 +108,7 @@ typedef struct AgentDataPipeItem {
>  } AgentDataPipeItem;
>  
>  typedef struct InitPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      int connection_id;
>      int display_channels_hint;
>      int current_mouse_mode;
> @@ -118,22 +118,22 @@ typedef struct InitPipeItem {
>  } InitPipeItem;
>  
>  typedef struct NamePipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      SpiceMsgMainName msg;
>  } NamePipeItem;
>  
>  typedef struct UuidPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      SpiceMsgMainUuid msg;
>  } UuidPipeItem;
>  
>  typedef struct NotifyPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      char *msg;
>  } NotifyPipeItem;
>  
>  typedef struct MultiMediaTimePipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      int time;
>  } MultiMediaTimePipeItem;
>  
> @@ -166,7 +166,7 @@ enum NetTestStage {
>  };
>  
>  static void main_channel_release_pipe_item(RedChannelClient *rcc,
> -                                           PipeItem *base, int item_pushed);
> +                                           RedPipeItem *base, int
> item_pushed);
>  
>  int main_channel_is_connected(MainChannel *main_chan)
>  {
> @@ -221,42 +221,42 @@ typedef struct MainMouseModeItemInfo {
>      int is_client_mouse_allowed;
>  } MainMouseModeItemInfo;
>  
> -static PipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void *data,
> int num)
> +static RedPipeItem *main_mouse_mode_item_new(RedChannelClient *rcc, void
> *data, int num)
>  {
>      MouseModePipeItem *item = spice_malloc(sizeof(MouseModePipeItem));
>      MainMouseModeItemInfo *info = data;
>  
> -    pipe_item_init(&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;
>  }
>  
> -static PipeItem *main_ping_item_new(MainChannelClient *mcc, int size)
> +static RedPipeItem *main_ping_item_new(MainChannelClient *mcc, int size)
>  {
>      PingPipeItem *item = spice_malloc(sizeof(PingPipeItem));
>  
> -    pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_PING);
> +    red_pipe_item_init(&item->base, PIPE_ITEM_TYPE_MAIN_PING);
>      item->size = size;
>      return &item->base;
>  }
>  
> -static PipeItem *main_agent_tokens_item_new(RedChannelClient *rcc, uint32_t
> num_tokens)
> +static RedPipeItem *main_agent_tokens_item_new(RedChannelClient *rcc,
> uint32_t num_tokens)
>  {
>      TokensPipeItem *item = spice_malloc(sizeof(TokensPipeItem));
>  
> -    pipe_item_init(&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;
>  }
>  
> -static PipeItem *main_agent_data_item_new(RedChannelClient *rcc, uint8_t*
> data, size_t len,
> -                                          spice_marshaller_item_free_func
> free_data,
> -                                          void *opaque)
> +static RedPipeItem *main_agent_data_item_new(RedChannelClient *rcc, uint8_t*
> data, size_t len,
> +                                             spice_marshaller_item_free_func
> free_data,
> +                                             void *opaque)
>  {
>      AgentDataPipeItem *item = spice_malloc(sizeof(AgentDataPipeItem));
>  
> -    pipe_item_init(&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;
> @@ -264,14 +264,14 @@ static PipeItem
> *main_agent_data_item_new(RedChannelClient *rcc, uint8_t* data,
>      return &item->base;
>  }
>  
> -static PipeItem *main_init_item_new(MainChannelClient *mcc,
> +static RedPipeItem *main_init_item_new(MainChannelClient *mcc,
>      int connection_id, int display_channels_hint, int current_mouse_mode,
>      int is_client_mouse_allowed, int multi_media_time,
>      int ram_hint)
>  {
>      InitPipeItem *item = spice_malloc(sizeof(InitPipeItem));
>  
> -    pipe_item_init(&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;
> @@ -281,44 +281,44 @@ static PipeItem *main_init_item_new(MainChannelClient
> *mcc,
>      return &item->base;
>  }
>  
> -static PipeItem *main_name_item_new(MainChannelClient *mcc, const char *name)
> +static RedPipeItem *main_name_item_new(MainChannelClient *mcc, const char
> *name)
>  {
>      NamePipeItem *item = spice_malloc(sizeof(NamePipeItem) + strlen(name) +
> 1);
>  
> -    pipe_item_init(&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);
>  
>      return &item->base;
>  }
>  
> -static PipeItem *main_uuid_item_new(MainChannelClient *mcc, const uint8_t
> uuid[16])
> +static RedPipeItem *main_uuid_item_new(MainChannelClient *mcc, const uint8_t
> uuid[16])
>  {
>      UuidPipeItem *item = spice_malloc(sizeof(UuidPipeItem));
>  
> -    pipe_item_init(&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;
>  }
>  
> -static PipeItem *main_notify_item_new(RedChannelClient *rcc, void *data, int
> num)
> +static RedPipeItem *main_notify_item_new(RedChannelClient *rcc, void *data,
> int num)
>  {
>      NotifyPipeItem *item = spice_malloc(sizeof(NotifyPipeItem));
>      const char *msg = data;
>  
> -    pipe_item_init(&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;
>  }
>  
> -static PipeItem *main_multi_media_time_item_new(
> +static RedPipeItem *main_multi_media_time_item_new(
>      RedChannelClient *rcc, void *data, int num)
>  {
>      MultiMediaTimePipeItem *item, *info = data;
>  
>      item = spice_malloc(sizeof(MultiMediaTimePipeItem));
> -    pipe_item_init(&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;
>  }
> @@ -335,7 +335,7 @@ static void main_channel_push_channels(MainChannelClient
> *mcc)
>  
>  static void main_channel_marshall_channels(RedChannelClient *rcc,
>                                             SpiceMarshaller *m,
> -                                           PipeItem *item)
> +                                           RedPipeItem *item)
>  {
>      SpiceMsgChannels* channels_info;
>  
> @@ -349,7 +349,7 @@ static void
> main_channel_marshall_channels(RedChannelClient *rcc,
>  
>  int main_channel_client_push_ping(MainChannelClient *mcc, int size)
>  {
> -    PipeItem *item;
> +    RedPipeItem *item;
>  
>      if (mcc == NULL) {
>          return FALSE;
> @@ -417,7 +417,7 @@ void main_channel_push_agent_connected(MainChannel
> *main_chan)
>  
>  static void main_channel_marshall_agent_connected(SpiceMarshaller *m,
>                                                    RedChannelClient *rcc,
> -                                                  PipeItem *item)
> +                                                  RedPipeItem *item)
>  {
>      SpiceMsgMainAgentConnectedTokens connected;
>  
> @@ -433,7 +433,7 @@ void main_channel_push_agent_disconnected(MainChannel
> *main_chan)
>  
>  static void main_channel_marshall_agent_disconnected(RedChannelClient *rcc,
>                                                       SpiceMarshaller *m,
> -                                                     PipeItem *item)
> +                                                     RedPipeItem *item)
>  {
>      SpiceMsgMainAgentDisconnect disconnect;
>  
> @@ -444,7 +444,7 @@ static void
> main_channel_marshall_agent_disconnected(RedChannelClient *rcc,
>  
>  void main_channel_client_push_agent_tokens(MainChannelClient *mcc, uint32_t
> num_tokens)
>  {
> -    PipeItem *item = main_agent_tokens_item_new(&mcc->base, num_tokens);
> +    RedPipeItem *item = main_agent_tokens_item_new(&mcc->base, num_tokens);
>  
>      red_channel_client_pipe_add_push(&mcc->base, item);
>  }
> @@ -462,7 +462,7 @@ static void main_channel_marshall_tokens(RedChannelClient
> *rcc,
>  void main_channel_client_push_agent_data(MainChannelClient *mcc, uint8_t*
> data, size_t len,
>             spice_marshaller_item_free_func free_data, void *opaque)
>  {
> -    PipeItem *item;
> +    RedPipeItem *item;
>  
>      item = main_agent_data_item_new(&mcc->base, data, len, free_data,
> opaque);
>      red_channel_client_pipe_add_push(&mcc->base, item);
> @@ -482,7 +482,8 @@ static void
> main_channel_push_migrate_data_item(MainChannel *main_chan)
>  }
>  
>  static void main_channel_marshall_migrate_data_item(RedChannelClient *rcc,
> -                                                    SpiceMarshaller *m,
> PipeItem *item)
> +                                                    SpiceMarshaller *m,
> +                                                    RedPipeItem *item)
>  {
>      red_channel_client_init_send_data(rcc, SPICE_MSG_MIGRATE_DATA, item);
>      reds_marshall_migrate_data(rcc->channel->reds, m); // TODO: from reds
> split. ugly separation.
> @@ -515,7 +516,7 @@ void main_channel_push_init(MainChannelClient *mcc,
>      int is_client_mouse_allowed, int multi_media_time,
>      int ram_hint)
>  {
> -    PipeItem *item;
> +    RedPipeItem *item;
>  
>      item = main_init_item_new(mcc,
>               mcc->connection_id, display_channels_hint, current_mouse_mode,
> @@ -547,7 +548,7 @@ static void main_channel_marshall_init(RedChannelClient
> *rcc,
>  
>  void main_channel_push_name(MainChannelClient *mcc, const char *name)
>  {
> -    PipeItem *item;
> +    RedPipeItem *item;
>  
>      if (!red_channel_client_test_remote_cap(&mcc->base,
>                                              SPICE_MAIN_CAP_NAME_AND_UUID))
> @@ -559,7 +560,7 @@ void main_channel_push_name(MainChannelClient *mcc, const
> char *name)
>  
>  void main_channel_push_uuid(MainChannelClient *mcc, const uint8_t uuid[16])
>  {
> -    PipeItem *item;
> +    RedPipeItem *item;
>  
>      if (!red_channel_client_test_remote_cap(&mcc->base,
>                                              SPICE_MAIN_CAP_NAME_AND_UUID))
> @@ -571,7 +572,7 @@ void main_channel_push_uuid(MainChannelClient *mcc, const
> uint8_t uuid[16])
>  
>  void main_channel_client_push_notify(MainChannelClient *mcc, const char *msg)
>  {
> -    PipeItem *item = main_notify_item_new(&mcc->base, (void *)msg, 1);
> +    RedPipeItem *item = main_notify_item_new(&mcc->base, (void *)msg, 1);
>      red_channel_client_pipe_add_push(&mcc->base, item);
>  }
>  
> @@ -608,7 +609,7 @@ static void main_channel_fill_migrate_dst_info(MainChannel
> *main_channel,
>  }
>  
>  static void main_channel_marshall_migrate_begin(SpiceMarshaller *m,
> RedChannelClient *rcc,
> -                                                PipeItem *item)
> +                                                RedPipeItem *item)
>  {
>      SpiceMsgMainMigrationBegin migrate;
>      MainChannel *main_ch;
> @@ -621,7 +622,7 @@ static void
> main_channel_marshall_migrate_begin(SpiceMarshaller *m, RedChannelCl
>  
>  static void main_channel_marshall_migrate_begin_seamless(SpiceMarshaller *m,
>                                                           RedChannelClient
> *rcc,
> -                                                         PipeItem *item)
> +                                                         RedPipeItem *item)
>  {
>      SpiceMsgMainMigrateBeginSeamless migrate_seamless;
>      MainChannel *main_ch;
> @@ -665,7 +666,7 @@ void main_channel_migrate_switch(MainChannel *main_chan,
> RedsMigSpice *mig_targe
>  }
>  
>  static void main_channel_marshall_migrate_switch(SpiceMarshaller *m,
> RedChannelClient *rcc,
> -                                                 PipeItem *item)
> +                                                 RedPipeItem *item)
>  {
>      SpiceMsgMainMigrationSwitchHost migrate;
>      MainChannel *main_ch;
> @@ -698,7 +699,7 @@ static void
> main_channel_marshall_multi_media_time(RedChannelClient *rcc,
>      spice_marshall_msg_main_multi_media_time(m, &time_mes);
>  }
>  
> -static void main_channel_send_item(RedChannelClient *rcc, PipeItem *base)
> +static void main_channel_send_item(RedChannelClient *rcc, RedPipeItem *base)
>  {
>      MainChannelClient *mcc = SPICE_CONTAINEROF(rcc, MainChannelClient, base);
>      SpiceMarshaller *m = red_channel_client_get_marshaller(rcc);
> @@ -783,7 +784,7 @@ static void main_channel_send_item(RedChannelClient *rcc,
> PipeItem *base)
>  }
>  
>  static void main_channel_release_pipe_item(RedChannelClient *rcc,
> -    PipeItem *base, int item_pushed)
> +    RedPipeItem *base, int item_pushed)
>  {
>      switch (base->type) {
>          case PIPE_ITEM_TYPE_MAIN_AGENT_DATA: {
> @@ -1022,7 +1023,7 @@ static int main_channel_config_socket(RedChannelClient
> *rcc)
>      return TRUE;
>  }
>  
> -static void main_channel_hold_pipe_item(RedChannelClient *rcc, PipeItem
> *item)
> +static void main_channel_hold_pipe_item(RedChannelClient *rcc, RedPipeItem
> *item)
>  {
>  }
>  
> diff --git a/server/red-channel.c b/server/red-channel.c
> index 3e036c9..834ddb7 100644
> --- a/server/red-channel.c
> +++ b/server/red-channel.c
> @@ -45,7 +45,7 @@
>  #include "utils.h"
>  
>  typedef struct EmptyMsgPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      int msg;
>  } EmptyMsgPipeItem;
>  
> @@ -510,7 +510,7 @@ static void
> red_channel_client_send_migrate(RedChannelClient *rcc)
>  }
>  
>  
> -static void red_channel_client_send_empty_msg(RedChannelClient *rcc, PipeItem
> *base)
> +static void red_channel_client_send_empty_msg(RedChannelClient *rcc,
> RedPipeItem *base)
>  {
>      EmptyMsgPipeItem *msg_pipe_item = SPICE_CONTAINEROF(base,
> EmptyMsgPipeItem, base);
>  
> @@ -557,7 +557,7 @@ static void red_channel_client_send_ping(RedChannelClient
> *rcc)
>      red_channel_client_begin_send_message(rcc);
>  }
>  
> -static void red_channel_client_send_item(RedChannelClient *rcc, PipeItem
> *item)
> +static void red_channel_client_send_item(RedChannelClient *rcc, RedPipeItem
> *item)
>  {
>      spice_assert(red_channel_client_no_item_being_sent(rcc));
>      red_channel_client_reset_send_data(rcc);
> @@ -581,7 +581,7 @@ static void red_channel_client_send_item(RedChannelClient
> *rcc, PipeItem *item)
>      free(item);
>  }
>  
> -static void red_channel_client_release_item(RedChannelClient *rcc, PipeItem
> *item, int item_pushed)
> +static void red_channel_client_release_item(RedChannelClient *rcc,
> RedPipeItem *item, int item_pushed)
>  {
>      switch (item->type) {
>          case PIPE_ITEM_TYPE_SET_ACK:
> @@ -643,7 +643,7 @@ static void red_channel_peer_on_out_msg_done(void *opaque)
>  
>  }
>  
> -static void red_channel_client_pipe_remove(RedChannelClient *rcc, PipeItem
> *item)
> +static void red_channel_client_pipe_remove(RedChannelClient *rcc, RedPipeItem
> *item)
>  {
>      rcc->pipe_size--;
>      ring_remove(&item->link);
> @@ -1324,13 +1324,13 @@ static inline int
> red_channel_client_waiting_for_ack(RedChannelClient *rcc)
>              (rcc->ack_data.messages_window > rcc->ack_data.client_window *
> 2));
>  }
>  
> -static inline PipeItem *red_channel_client_pipe_item_get(RedChannelClient
> *rcc)
> +static inline RedPipeItem *red_channel_client_pipe_item_get(RedChannelClient
> *rcc)
>  {
> -    PipeItem *item;
> +    RedPipeItem *item;
>  
>      if (!rcc || rcc->send_data.blocked
>               || red_channel_client_waiting_for_ack(rcc)
> -             || !(item = (PipeItem *)ring_get_tail(&rcc->pipe))) {
> +             || !(item = (RedPipeItem *)ring_get_tail(&rcc->pipe))) {
>          return NULL;
>      }
>      red_channel_client_pipe_remove(rcc, item);
> @@ -1339,7 +1339,7 @@ static inline PipeItem
> *red_channel_client_pipe_item_get(RedChannelClient *rcc)
>  
>  void red_channel_client_push(RedChannelClient *rcc)
>  {
> -    PipeItem *pipe_item;
> +    RedPipeItem *pipe_item;
>  
>      if (!rcc->during_send) {
>          rcc->during_send = TRUE;
> @@ -1589,7 +1589,7 @@ static void red_channel_client_event(int fd, int event,
> void *data)
>      red_channel_client_unref(rcc);
>  }
>  
> -void red_channel_client_init_send_data(RedChannelClient *rcc, uint16_t
> msg_type, PipeItem *item)
> +void red_channel_client_init_send_data(RedChannelClient *rcc, uint16_t
> msg_type, RedPipeItem *item)
>  {
>      spice_assert(red_channel_client_no_item_being_sent(rcc));
>      spice_assert(msg_type != 0);
> @@ -1658,7 +1658,7 @@ void
> red_channel_client_set_message_serial(RedChannelClient *rcc, uint64_t seria
>      rcc->send_data.serial = serial;
>  }
>  
> -static inline gboolean client_pipe_add(RedChannelClient *rcc, PipeItem *item,
> RingItem *pos)
> +static inline gboolean client_pipe_add(RedChannelClient *rcc, RedPipeItem
> *item, RingItem *pos)
>  {
>      spice_assert(rcc && item);
>      if (SPICE_UNLIKELY(!red_channel_client_is_connected(rcc))) {
> @@ -1676,38 +1676,39 @@ static inline gboolean
> client_pipe_add(RedChannelClient *rcc, PipeItem *item, Ri
>      return TRUE;
>  }
>  
> -void red_channel_client_pipe_add(RedChannelClient *rcc, PipeItem *item)
> +void red_channel_client_pipe_add(RedChannelClient *rcc, RedPipeItem *item)
>  {
>  
>      client_pipe_add(rcc, item, &rcc->pipe);
>  }
>  
> -void red_channel_client_pipe_add_push(RedChannelClient *rcc, PipeItem *item)
> +void red_channel_client_pipe_add_push(RedChannelClient *rcc, RedPipeItem
> *item)
>  {
>      red_channel_client_pipe_add(rcc, item);
>      red_channel_client_push(rcc);
>  }
>  
>  void red_channel_client_pipe_add_after(RedChannelClient *rcc,
> -                                       PipeItem *item, PipeItem *pos)
> +                                       RedPipeItem *item,
> +                                       RedPipeItem *pos)
>  {
>      spice_assert(pos);
>      client_pipe_add(rcc, item, &pos->link);
>  }
>  
>  int red_channel_client_pipe_item_is_linked(RedChannelClient *rcc,
> -                                           PipeItem *item)
> +                                           RedPipeItem *item)
>  {
>      return ring_item_is_linked(&item->link);
>  }
>  
>  void red_channel_client_pipe_add_tail(RedChannelClient *rcc,
> -                                              PipeItem *item)
> +                                              RedPipeItem *item)
>  {
>      client_pipe_add(rcc, item, rcc->pipe.prev);
>  }
>  
> -void red_channel_client_pipe_add_tail_and_push(RedChannelClient *rcc,
> PipeItem *item)
> +void red_channel_client_pipe_add_tail_and_push(RedChannelClient *rcc,
> RedPipeItem *item)
>  {
>      if (client_pipe_add(rcc, item, rcc->pipe.prev)) {
>          red_channel_client_push(rcc);
> @@ -1716,9 +1717,9 @@ void
> red_channel_client_pipe_add_tail_and_push(RedChannelClient *rcc, PipeItem *
>  
>  void red_channel_client_pipe_add_type(RedChannelClient *rcc, int
> pipe_item_type)
>  {
> -    PipeItem *item = spice_new(PipeItem, 1);
> +    RedPipeItem *item = spice_new(RedPipeItem, 1);
>  
> -    pipe_item_init(item, pipe_item_type);
> +    red_pipe_item_init(item, pipe_item_type);
>      red_channel_client_pipe_add(rcc, item);
>      red_channel_client_push(rcc);
>  }
> @@ -1738,7 +1739,7 @@ void
> red_channel_client_pipe_add_empty_msg(RedChannelClient *rcc, int msg_type)
>  {
>      EmptyMsgPipeItem *item = spice_new(EmptyMsgPipeItem, 1);
>  
> -    pipe_item_init(&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);
> @@ -1781,12 +1782,12 @@ void
> red_channel_client_clear_sent_item(RedChannelClient *rcc)
>  
>  void red_channel_client_pipe_clear(RedChannelClient *rcc)
>  {
> -    PipeItem *item;
> +    RedPipeItem *item;
>  
>      if (rcc) {
>          red_channel_client_clear_sent_item(rcc);
>      }
> -    while ((item = (PipeItem *)ring_get_head(&rcc->pipe))) {
> +    while ((item = (RedPipeItem *)ring_get_head(&rcc->pipe))) {
>          ring_remove(&item->link);
>          red_channel_client_release_item(rcc, item, FALSE);
>      }
> @@ -2029,7 +2030,7 @@ int
> red_channel_client_no_item_being_sent(RedChannelClient *rcc)
>  }
>  
>  void red_channel_client_pipe_remove_and_release(RedChannelClient *rcc,
> -                                                PipeItem *item)
> +                                                RedPipeItem *item)
>  {
>      red_channel_client_pipe_remove(rcc, item);
>      red_channel_client_release_item(rcc, item, FALSE);
> @@ -2231,8 +2232,8 @@ int red_client_during_migrate_at_target(RedClient
> *client)
>   * TODO - inline? macro? right now this is the simplest from code amount
>   */
>  
> -typedef void (*rcc_item_t)(RedChannelClient *rcc, PipeItem *item);
> -typedef int (*rcc_item_cond_t)(RedChannelClient *rcc, PipeItem *item);
> +typedef void (*rcc_item_t)(RedChannelClient *rcc, RedPipeItem *item);
> +typedef int (*rcc_item_cond_t)(RedChannelClient *rcc, RedPipeItem *item);
>  
>  /**
>   * red_channel_pipes_create_batch:
> @@ -2249,7 +2250,7 @@ static int red_channel_pipes_create_batch(RedChannel
> *channel,
>  {
>      RingItem *link, *next;
>      RedChannelClient *rcc;
> -    PipeItem *item;
> +    RedPipeItem *item;
>      int num = 0, n = 0;
>  
>      spice_assert(creator != NULL);
> @@ -2362,7 +2363,7 @@ int
> red_channel_client_wait_outgoing_item(RedChannelClient *rcc,
>  
>  /* TODO: more evil sync stuff. anything with the word wait in it's name. */
>  int red_channel_client_wait_pipe_item_sent(RedChannelClient *rcc,
> -                                           PipeItem *item,
> +                                           RedPipeItem *item,
>                                             int64_t timeout)
>  {
>      uint64_t end_time;
> diff --git a/server/red-channel.h b/server/red-channel.h
> index 3c762ff..be5ae99 100644
> --- a/server/red-channel.h
> +++ b/server/red-channel.h
> @@ -158,10 +158,10 @@ typedef void
> (*channel_release_msg_recv_buf_proc)(RedChannelClient *channel,
>                                                    uint16_t type, uint32_t
> size, uint8_t *msg);
>  typedef void (*channel_disconnect_proc)(RedChannelClient *rcc);
>  typedef int (*channel_configure_socket_proc)(RedChannelClient *rcc);
> -typedef void (*channel_send_pipe_item_proc)(RedChannelClient *rcc, PipeItem
> *item);
> -typedef void (*channel_hold_pipe_item_proc)(RedChannelClient *rcc, PipeItem
> *item);
> +typedef void (*channel_send_pipe_item_proc)(RedChannelClient *rcc,
> RedPipeItem *item);
> +typedef void (*channel_hold_pipe_item_proc)(RedChannelClient *rcc,
> RedPipeItem *item);
>  typedef void (*channel_release_pipe_item_proc)(RedChannelClient *rcc,
> -                                               PipeItem *item, int
> item_pushed);
> +                                               RedPipeItem *item, int
> item_pushed);
>  typedef void (*channel_on_incoming_error_proc)(RedChannelClient *rcc);
>  typedef void (*channel_on_outgoing_error_proc)(RedChannelClient *rcc);
>  
> @@ -258,7 +258,7 @@ struct RedChannelClient {
>          SpiceMarshaller *marshaller;
>          SpiceDataHeaderOpaque header;
>          uint32_t size;
> -        PipeItem *item;
> +        RedPipeItem *item;
>          int blocked;
>          uint64_t serial;
>          uint64_t last_sent_serial;
> @@ -266,7 +266,7 @@ struct RedChannelClient {
>          struct {
>              SpiceMarshaller *marshaller;
>              uint8_t *header_data;
> -            PipeItem *item;
> +            RedPipeItem *item;
>          } main;
>  
>          struct {
> @@ -434,7 +434,7 @@ int red_channel_client_handle_message(RedChannelClient
> *rcc, uint32_t size,
>                                        uint16_t type, void *message);
>  
>  /* when preparing send_data: should call init and then use marshaller */
> -void red_channel_client_init_send_data(RedChannelClient *rcc, uint16_t
> msg_type, PipeItem *item);
> +void red_channel_client_init_send_data(RedChannelClient *rcc, uint16_t
> msg_type, RedPipeItem *item);
>  
>  uint64_t red_channel_client_get_message_serial(RedChannelClient *channel);
>  void red_channel_client_set_message_serial(RedChannelClient *channel,
> uint64_t);
> @@ -465,20 +465,20 @@ int red_channel_client_get_roundtrip_ms(RedChannelClient
> *rcc);
>  void red_channel_client_start_connectivity_monitoring(RedChannelClient *rcc,
> uint32_t timeout_ms);
>  
>  // TODO: add back the channel_pipe_add functionality - by adding reference
> counting
> -// to the PipeItem.
> +// to the RedPipeItem.
>  
>  // helper to push a new item to all channels
> -typedef PipeItem *(*new_pipe_item_t)(RedChannelClient *rcc, void *data, int
> num);
> +typedef RedPipeItem *(*new_pipe_item_t)(RedChannelClient *rcc, void *data,
> int num);
>  int red_channel_pipes_new_add_push(RedChannel *channel, new_pipe_item_t
> creator, void *data);
>  void red_channel_pipes_new_add(RedChannel *channel, new_pipe_item_t creator,
> void *data);
>  void red_channel_pipes_new_add_tail(RedChannel *channel, new_pipe_item_t
> creator, void *data);
>  
> -void red_channel_client_pipe_add_push(RedChannelClient *rcc, PipeItem *item);
> -void red_channel_client_pipe_add(RedChannelClient *rcc, PipeItem *item);
> -void red_channel_client_pipe_add_after(RedChannelClient *rcc, PipeItem *item,
> PipeItem *pos);
> -int red_channel_client_pipe_item_is_linked(RedChannelClient *rcc, PipeItem
> *item);
> -void red_channel_client_pipe_remove_and_release(RedChannelClient *rcc,
> PipeItem *item);
> -void red_channel_client_pipe_add_tail_and_push(RedChannelClient *rcc,
> PipeItem *item);
> +void red_channel_client_pipe_add_push(RedChannelClient *rcc, RedPipeItem
> *item);
> +void red_channel_client_pipe_add(RedChannelClient *rcc, RedPipeItem *item);
> +void red_channel_client_pipe_add_after(RedChannelClient *rcc, RedPipeItem
> *item, RedPipeItem *pos);
> +int red_channel_client_pipe_item_is_linked(RedChannelClient *rcc, RedPipeItem
> *item);
> +void red_channel_client_pipe_remove_and_release(RedChannelClient *rcc,
> RedPipeItem *item);
> +void red_channel_client_pipe_add_tail_and_push(RedChannelClient *rcc,
> RedPipeItem *item);
>  /* for types that use this routine -> the pipe item should be freed */
>  void red_channel_client_pipe_add_type(RedChannelClient *rcc, int
> pipe_item_type);
>  void red_channel_pipes_add_type(RedChannel *channel, int pipe_item_type);
> @@ -619,7 +619,7 @@ void red_client_migrate(RedClient *client);
>   */
>  
>  int red_channel_client_wait_pipe_item_sent(RedChannelClient *rcc,
> -                                           PipeItem *item,
> +                                           RedPipeItem *item,
>                                             int64_t timeout);
>  int red_channel_client_wait_outgoing_item(RedChannelClient *rcc,
>                                            int64_t timeout);
> diff --git a/server/red-pipe-item.c b/server/red-pipe-item.c
> index 098f1d4..d9c60aa 100644
> --- a/server/red-pipe-item.c
> +++ b/server/red-pipe-item.c
> @@ -20,9 +20,9 @@
>  #include "red-channel.h"
>  #include "red-pipe-item.h"
>  
> -PipeItem *pipe_item_ref(gpointer object)
> +RedPipeItem *red_pipe_item_ref(gpointer object)
>  {
> -    PipeItem *item = object;
> +    RedPipeItem *item = object;
>  
>      g_return_val_if_fail(item->refcount > 0, NULL);
>  
> @@ -31,9 +31,9 @@ PipeItem *pipe_item_ref(gpointer object)
>      return item;
>  }
>  
> -void pipe_item_unref(gpointer object)
> +void red_pipe_item_unref(gpointer object)
>  {
> -    PipeItem *item = object;
> +    RedPipeItem *item = object;
>  
>      g_return_if_fail(item->refcount > 0);
>  
> @@ -42,9 +42,9 @@ void pipe_item_unref(gpointer object)
>      }
>  }
>  
> -void pipe_item_init_full(PipeItem *item,
> -                         gint type,
> -                         GDestroyNotify free_func)
> +void red_pipe_item_init_full(RedPipeItem *item,
> +                             gint type,
> +                             GDestroyNotify free_func)
>  {
>      ring_item_init(&item->link);
>      item->type = type;
> diff --git a/server/red-pipe-item.h b/server/red-pipe-item.h
> index 4333e19..8bb12b7 100644
> --- a/server/red-pipe-item.h
> +++ b/server/red-pipe-item.h
> @@ -28,19 +28,19 @@ typedef struct {
>      int refcount;
>  
>      GDestroyNotify free_func;
> -} PipeItem;
> +} RedPipeItem;
>  
> -void pipe_item_init_full(PipeItem *item, int type, GDestroyNotify free_func);
> -PipeItem *pipe_item_ref(gpointer item);
> -void pipe_item_unref(gpointer item);
> +void red_pipe_item_init_full(RedPipeItem *item, int type, GDestroyNotify
> free_func);
> +RedPipeItem *red_pipe_item_ref(gpointer item);
> +void red_pipe_item_unref(gpointer item);
>  
> -static inline int pipe_item_is_linked(PipeItem *item)
> +static inline int red_pipe_item_is_linked(RedPipeItem *item)
>  {
>      return ring_item_is_linked(&item->link);
>  }
>  
> -static inline void pipe_item_init(PipeItem *item, int type)
> +static inline void red_pipe_item_init(RedPipeItem *item, int type)
>  {
> -    pipe_item_init_full(item, type, NULL);
> +    red_pipe_item_init_full(item, type, NULL);
>  }
>  #endif
> diff --git a/server/red-worker.h b/server/red-worker.h
> index 15cceb8..731afc7 100644
> --- a/server/red-worker.h
> +++ b/server/red-worker.h
> @@ -57,7 +57,7 @@ enum {
>  };
>  
>  typedef struct VerbItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      uint16_t verb;
>  } VerbItem;
>  
> @@ -70,7 +70,7 @@ static inline void red_pipe_add_verb(RedChannelClient* rcc,
> uint16_t verb)
>  {
>      VerbItem *item = spice_new(VerbItem, 1);
>  
> -    pipe_item_init(&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/reds.c b/server/reds.c
> index 4e553c3..9dd87d9 100644
> --- a/server/reds.c
> +++ b/server/reds.c
> @@ -167,7 +167,7 @@ struct ChannelSecurityOptions {
>  };
>  
>  typedef struct VDIReadBuf {
> -    PipeItem parent;
> +    RedPipeItem parent;
>      RedCharDeviceVDIPort *dev;
>  
>      int len;
> @@ -482,7 +482,7 @@ static void reds_reset_vdp(RedsState *reds)
>      dev->priv->receive_len = sizeof(dev->priv->vdi_chunk_header);
>      dev->priv->message_receive_len = 0;
>      if (dev->priv->current_read_buf) {
> -        pipe_item_unref(dev->priv->current_read_buf);
> +        red_pipe_item_unref(dev->priv->current_read_buf);
>          dev->priv->current_read_buf = NULL;
>      }
>      /* Reset read filter to start with clean state when the agent reconnects
> */
> @@ -705,7 +705,7 @@ static void vdi_port_read_buf_release(uint8_t *data, void
> *opaque)
>  {
>      VDIReadBuf *buf = (VDIReadBuf *)opaque;
>  
> -    pipe_item_unref(buf);
> +    red_pipe_item_unref(buf);
>  }
>  
>  /* returns TRUE if the buffer can be forwarded */
> @@ -744,8 +744,8 @@ static void vdi_read_buf_init(VDIReadBuf *buf)
>      /* Bogus pipe item type, we only need the RingItem and refcounting
>       * from the base class and are not going to use the type
>       */
> -    pipe_item_init_full(&buf->parent, -1,
> -                        (GDestroyNotify)vdi_port_read_buf_free);
> +    red_pipe_item_init_full(&buf->parent, -1,
> +                            (GDestroyNotify)vdi_port_read_buf_free);
>  }
>  
>  static VDIReadBuf *vdi_port_get_read_buf(RedCharDeviceVDIPort *dev)
> @@ -782,8 +782,8 @@ static void vdi_port_read_buf_free(VDIReadBuf *buf)
>  
>  /* reads from the device till completes reading a message that is addressed
> to the client,
>   * or otherwise, when reading from the device fails */
> -static PipeItem *vdi_port_read_one_msg_from_device(SpiceCharDeviceInstance
> *sin,
> -                                                   void *opaque)
> +static RedPipeItem *vdi_port_read_one_msg_from_device(SpiceCharDeviceInstance
> *sin,
> +                                                      void *opaque)
>  {
>      RedsState *reds;
>      RedCharDeviceVDIPort *dev = RED_CHAR_DEVICE_VDIPORT(sin->st);
> @@ -843,12 +843,12 @@ static PipeItem
> *vdi_port_read_one_msg_from_device(SpiceCharDeviceInstance *sin,
>                  dev->priv->read_state = VDI_PORT_READ_STATE_GET_BUFF;
>              }
>              if (vdi_port_read_buf_process(reds->agent_dev, dispatch_buf,
> &error)) {
> -                return (PipeItem *)dispatch_buf;
> +                return (RedPipeItem *)dispatch_buf;
>              } else {
>                  if (error) {
>                      reds_agent_remove(reds);
>                  }
> -                pipe_item_unref(dispatch_buf);
> +                red_pipe_item_unref(dispatch_buf);
>              }
>          }
>          } /* END switch */
> @@ -857,13 +857,13 @@ static PipeItem
> *vdi_port_read_one_msg_from_device(SpiceCharDeviceInstance *sin,
>  }
>  
>  /* after calling this, we unref the message, and the ref is in the instance
> side */
> -static void vdi_port_send_msg_to_client(PipeItem *msg,
> +static void vdi_port_send_msg_to_client(RedPipeItem *msg,
>                                          RedClient *client,
>                                          void *opaque)
>  {
>      VDIReadBuf *agent_data_buf = (VDIReadBuf *)msg;
>  
> -    pipe_item_ref(agent_data_buf);
> +    red_pipe_item_ref(agent_data_buf);
>      main_channel_client_push_agent_data(red_client_get_main(client),
>                                          agent_data_buf->data,
>                                          agent_data_buf->len,
> @@ -1218,7 +1218,7 @@ void reds_on_main_channel_migrate(RedsState *reds,
> MainChannelClient *mcc)
>              if (error) {
>                 reds_agent_remove(reds);
>              }
> -            pipe_item_unref(read_buf);
> +            red_pipe_item_unref(read_buf);
>          }
>  
>          spice_assert(agent_dev->priv->receive_len);
> @@ -4301,7 +4301,7 @@ red_char_device_vdi_port_init(RedCharDeviceVDIPort
> *self)
>          /* This ensures the newly created buffer is placed in the
>           * RedCharDeviceVDIPort::read_bufs queue ready to be reused
>           */
> -        pipe_item_unref(buf);
> +        red_pipe_item_unref(buf);
>      }
>  }
>  
> diff --git a/server/smartcard.c b/server/smartcard.c
> index b9b8967..75c5dd2 100644
> --- a/server/smartcard.c
> +++ b/server/smartcard.c
> @@ -83,19 +83,19 @@ enum {
>  };
>  
>  typedef struct ErrorItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      VSCMsgHeader vheader;
>      VSCMsgError  error;
>  } ErrorItem;
>  
>  typedef struct MsgItem {
> -    PipeItem base;
> +    RedPipeItem base;
>  
>      VSCMsgHeader* vheader;
>  } MsgItem;
>  
>  static MsgItem *smartcard_get_vsc_msg_item(RedChannelClient *rcc,
> VSCMsgHeader *vheader);
> -static void smartcard_channel_client_pipe_add_push(RedChannelClient *rcc,
> PipeItem *item);
> +static void smartcard_channel_client_pipe_add_push(RedChannelClient *rcc,
> RedPipeItem *item);
>  
>  typedef struct SmartCardChannel {
>      RedChannel base;
> @@ -129,8 +129,8 @@ static void
> smartcard_read_buf_prepare(RedCharDeviceSmartcard *dev, VSCMsgHeader
>      }
>  }
>  
> -static PipeItem *smartcard_read_msg_from_device(SpiceCharDeviceInstance *sin,
> -                                                void *opaque)
> +static RedPipeItem *smartcard_read_msg_from_device(SpiceCharDeviceInstance
> *sin,
> +                                                   void *opaque)
>  {
>      RedCharDeviceSmartcard *dev = opaque;
>      SpiceCharDeviceInterface *sif = spice_char_device_get_interface(sin);
> @@ -160,19 +160,19 @@ static PipeItem
> *smartcard_read_msg_from_device(SpiceCharDeviceInstance *sin,
>          dev->priv->buf_pos = dev->priv->buf;
>          dev->priv->buf_used = remaining;
>          if (msg_to_client) {
> -            return (PipeItem *)msg_to_client;
> +            return (RedPipeItem *)msg_to_client;
>          }
>      }
>      return NULL;
>  }
>  
> -static void smartcard_send_msg_to_client(PipeItem *msg,
> +static void smartcard_send_msg_to_client(RedPipeItem *msg,
>                                           RedClient *client,
>                                           void *opaque)
>  {
>      RedCharDeviceSmartcard *dev = opaque;
>      spice_assert(dev->priv->scc && dev->priv->scc->base.client == client);
> -    smartcard_channel_client_pipe_add_push(&dev->priv->scc->base, (PipeItem
> *)msg);
> +    smartcard_channel_client_pipe_add_push(&dev->priv->scc->base,
> (RedPipeItem *)msg);
>  
>  }
>  
> @@ -427,7 +427,7 @@ static void
> smartcard_channel_release_msg_rcv_buf(RedChannelClient *rcc,
>  }
>  
>  static void smartcard_channel_send_data(RedChannelClient *rcc,
> SpiceMarshaller *m,
> -                                        PipeItem *item, VSCMsgHeader
> *vheader)
> +                                        RedPipeItem *item, VSCMsgHeader
> *vheader)
>  {
>      spice_assert(rcc);
>      spice_assert(vheader);
> @@ -439,7 +439,7 @@ static void smartcard_channel_send_data(RedChannelClient
> *rcc, SpiceMarshaller *
>  }
>  
>  static void smartcard_channel_send_error(
> -    RedChannelClient *rcc, SpiceMarshaller *m, PipeItem *item)
> +    RedChannelClient *rcc, SpiceMarshaller *m, RedPipeItem *item)
>  {
>      ErrorItem* error_item = (ErrorItem*)item;
>  
> @@ -447,7 +447,7 @@ static void smartcard_channel_send_error(
>  }
>  
>  static void smartcard_channel_send_msg(RedChannelClient *rcc,
> -                                       SpiceMarshaller *m, PipeItem *item)
> +                                       SpiceMarshaller *m, RedPipeItem *item)
>  {
>      MsgItem* msg_item = (MsgItem*)item;
>  
> @@ -455,7 +455,7 @@ static void smartcard_channel_send_msg(RedChannelClient
> *rcc,
>  }
>  
>  static void smartcard_channel_send_migrate_data(RedChannelClient *rcc,
> -                                                SpiceMarshaller *m, PipeItem
> *item)
> +                                                SpiceMarshaller *m,
> RedPipeItem *item)
>  {
>      SmartCardChannelClient *scc;
>      RedCharDeviceSmartcard *dev;
> @@ -483,7 +483,7 @@ static void
> smartcard_channel_send_migrate_data(RedChannelClient *rcc,
>      }
>  }
>  
> -static void smartcard_channel_send_item(RedChannelClient *rcc, PipeItem
> *item)
> +static void smartcard_channel_send_item(RedChannelClient *rcc, RedPipeItem
> *item)
>  {
>      SpiceMarshaller *m = red_channel_client_get_marshaller(rcc);
>  
> @@ -506,10 +506,10 @@ static void smartcard_channel_send_item(RedChannelClient
> *rcc, PipeItem *item)
>  }
>  
>  static void smartcard_channel_release_pipe_item(RedChannelClient *rcc,
> -                                      PipeItem *item, int item_pushed)
> +                                      RedPipeItem *item, int item_pushed)
>  {
>      if (item->type == PIPE_ITEM_TYPE_SMARTCARD_DATA) {
> -        pipe_item_unref(item);
> +        red_pipe_item_unref(item);
>      } else {
>          free(item);
>      }
> @@ -530,7 +530,8 @@ static void
> smartcard_channel_on_disconnect(RedChannelClient *rcc)
>  /* this is called from both device input and client input. since the device
> is
>   * a usb device, the context is still the main thread (kvm_main_loop, timers)
>   * so no mutex is required. */
> -static void smartcard_channel_client_pipe_add_push(RedChannelClient *rcc,
> PipeItem *item)
> +static void smartcard_channel_client_pipe_add_push(RedChannelClient *rcc,
> +                                                   RedPipeItem *item)
>  {
>      red_channel_client_pipe_add_push(rcc, item);
>  }
> @@ -539,7 +540,7 @@ static void smartcard_push_error(RedChannelClient *rcc,
> uint32_t reader_id, VSCE
>  {
>      ErrorItem *error_item = spice_new0(ErrorItem, 1);
>  
> -    pipe_item_init(&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;
> @@ -559,8 +560,8 @@ static MsgItem
> *smartcard_get_vsc_msg_item(RedChannelClient *rcc, VSCMsgHeader *
>  {
>      MsgItem *msg_item = spice_new0(MsgItem, 1);
>  
> -    pipe_item_init_full(&msg_item->base, PIPE_ITEM_TYPE_SMARTCARD_DATA,
> -                        (GDestroyNotify)smartcard_free_vsc_msg_item);
> +    red_pipe_item_init_full(&msg_item->base, PIPE_ITEM_TYPE_SMARTCARD_DATA,
> +                            (GDestroyNotify)smartcard_free_vsc_msg_item);
>      msg_item->vheader = vheader;
>      return msg_item;
>  }
> @@ -747,7 +748,8 @@ static int
> smartcard_channel_handle_message(RedChannelClient *rcc,
>      return TRUE;
>  }
>  
> -static void smartcard_channel_hold_pipe_item(RedChannelClient *rcc, PipeItem
> *item)
> +static void smartcard_channel_hold_pipe_item(RedChannelClient *rcc,
> +                                             RedPipeItem *item)
>  {
>  }
>  
> diff --git a/server/spicevmc.c b/server/spicevmc.c
> index aa6a0ed..8450f19 100644
> --- a/server/spicevmc.c
> +++ b/server/spicevmc.c
> @@ -43,7 +43,7 @@
>  #define BUF_SIZE (64 * 1024 + 32)
>  
>  typedef struct SpiceVmcPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>  
>      /* writes which don't fit this will get split, this is not a problem */
>      uint8_t buf[BUF_SIZE];
> @@ -88,13 +88,13 @@ static RedCharDevice
> *red_char_device_spicevmc_new(SpiceCharDeviceInstance *sin,
>  G_DEFINE_TYPE(RedCharDeviceSpiceVmc, red_char_device_spicevmc,
> RED_TYPE_CHAR_DEVICE)
>  
>  typedef struct PortInitPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      char* name;
>      uint8_t opened;
>  } PortInitPipeItem;
>  
>  typedef struct PortEventPipeItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      uint8_t event;
>  } PortEventPipeItem;
>  
> @@ -105,8 +105,8 @@ enum {
>      PIPE_ITEM_TYPE_PORT_EVENT,
>  };
>  
> -static PipeItem *spicevmc_chardev_read_msg_from_dev(SpiceCharDeviceInstance
> *sin,
> -                                                    void *opaque)
> +static RedPipeItem
> *spicevmc_chardev_read_msg_from_dev(SpiceCharDeviceInstance *sin,
> +                                                       void *opaque)
>  {
>      SpiceVmcState *state = opaque;
>      SpiceCharDeviceInterface *sif;
> @@ -121,7 +121,7 @@ static PipeItem
> *spicevmc_chardev_read_msg_from_dev(SpiceCharDeviceInstance *sin
>  
>      if (!state->pipe_item) {
>          msg_item = spice_new0(SpiceVmcPipeItem, 1);
> -        pipe_item_init(&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;
> @@ -133,14 +133,14 @@ static PipeItem
> *spicevmc_chardev_read_msg_from_dev(SpiceCharDeviceInstance *sin
>      if (n > 0) {
>          spice_debug("read from dev %d", n);
>          msg_item->buf_used = n;
> -        return (PipeItem *)msg_item;
> +        return (RedPipeItem *)msg_item;
>      } else {
>          state->pipe_item = msg_item;
>          return NULL;
>      }
>  }
>  
> -static void spicevmc_chardev_send_msg_to_client(PipeItem *msg,
> +static void spicevmc_chardev_send_msg_to_client(RedPipeItem *msg,
>                                                  RedClient *client,
>                                                  void *opaque)
>  {
> @@ -148,8 +148,8 @@ static void spicevmc_chardev_send_msg_to_client(PipeItem
> *msg,
>      SpiceVmcPipeItem *vmc_msg = (SpiceVmcPipeItem *)msg;
>  
>      spice_assert(state->rcc->client == client);
> -    pipe_item_ref(vmc_msg);
> -    red_channel_client_pipe_add_push(state->rcc, (PipeItem *)vmc_msg);
> +    red_pipe_item_ref(vmc_msg);
> +    red_channel_client_pipe_add_push(state->rcc, (RedPipeItem *)vmc_msg);
>  }
>  
>  static void spicevmc_port_send_init(RedChannelClient *rcc)
> @@ -158,7 +158,7 @@ static void spicevmc_port_send_init(RedChannelClient *rcc)
>      SpiceCharDeviceInstance *sin = state->chardev_sin;
>      PortInitPipeItem *item = spice_malloc(sizeof(PortInitPipeItem));
>  
> -    pipe_item_init(&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);
> @@ -168,7 +168,7 @@ static void spicevmc_port_send_event(RedChannelClient
> *rcc, uint8_t event)
>  {
>      PortEventPipeItem *item = spice_malloc(sizeof(PortEventPipeItem));
>  
> -    pipe_item_init(&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);
>  }
> @@ -360,14 +360,14 @@ static void
> spicevmc_red_channel_release_msg_rcv_buf(RedChannelClient *rcc,
>  }
>  
>  static void spicevmc_red_channel_hold_pipe_item(RedChannelClient *rcc,
> -    PipeItem *item)
> +                                                RedPipeItem *item)
>  {
>      /* NOOP */
>  }
>  
>  static void spicevmc_red_channel_send_data(RedChannelClient *rcc,
>                                             SpiceMarshaller *m,
> -                                           PipeItem *item)
> +                                           RedPipeItem *item)
>  {
>      SpiceVmcPipeItem *i = SPICE_CONTAINEROF(item, SpiceVmcPipeItem, base);
>  
> @@ -377,7 +377,7 @@ static void
> spicevmc_red_channel_send_data(RedChannelClient *rcc,
>  
>  static void spicevmc_red_channel_send_migrate_data(RedChannelClient *rcc,
>                                                     SpiceMarshaller *m,
> -                                                   PipeItem *item)
> +                                                   RedPipeItem *item)
>  {
>      SpiceVmcState *state;
>  
> @@ -391,7 +391,7 @@ static void
> spicevmc_red_channel_send_migrate_data(RedChannelClient *rcc,
>  
>  static void spicevmc_red_channel_send_port_init(RedChannelClient *rcc,
>                                                  SpiceMarshaller *m,
> -                                                PipeItem *item)
> +                                                RedPipeItem *item)
>  {
>      PortInitPipeItem *i = SPICE_CONTAINEROF(item, PortInitPipeItem, base);
>      SpiceMsgPortInit init;
> @@ -405,7 +405,7 @@ static void
> spicevmc_red_channel_send_port_init(RedChannelClient *rcc,
>  
>  static void spicevmc_red_channel_send_port_event(RedChannelClient *rcc,
>                                                   SpiceMarshaller *m,
> -                                                 PipeItem *item)
> +                                                 RedPipeItem *item)
>  {
>      PortEventPipeItem *i = SPICE_CONTAINEROF(item, PortEventPipeItem, base);
>      SpiceMsgPortEvent event;
> @@ -416,7 +416,7 @@ static void
> spicevmc_red_channel_send_port_event(RedChannelClient *rcc,
>  }
>  
>  static void spicevmc_red_channel_send_item(RedChannelClient *rcc,
> -                                           PipeItem *item)
> +                                           RedPipeItem *item)
>  {
>      SpiceMarshaller *m = red_channel_client_get_marshaller(rcc);
>  
> @@ -442,10 +442,11 @@ static void
> spicevmc_red_channel_send_item(RedChannelClient *rcc,
>  }
>  
>  static void spicevmc_red_channel_release_pipe_item(RedChannelClient *rcc,
> -    PipeItem *item, int item_pushed)
> +                                                   RedPipeItem *item,
> +                                                   int item_pushed)
>  {
>      if (item->type == PIPE_ITEM_TYPE_SPICEVMC_DATA) {
> -        pipe_item_unref(item);
> +        red_pipe_item_unref(item);
>      } else {
>          free(item);
>      }
> diff --git a/server/stream.c b/server/stream.c
> index 22e1004..47f6a99 100644
> --- a/server/stream.c
> +++ b/server/stream.c
> @@ -78,7 +78,7 @@ void stream_stop(DisplayChannel *display, Stream *stream)
>          stream_agent = &dcc->stream_agents[get_stream_id(display, stream)];
>          region_clear(&stream_agent->vis_region);
>          region_clear(&stream_agent->clip);
> -        spice_assert(!pipe_item_is_linked(&stream_agent->destroy_item));
> +        spice_assert(!red_pipe_item_is_linked(&stream_agent->destroy_item));
>          if (stream_agent->mjpeg_encoder && dcc
> ->use_mjpeg_encoder_rate_control) {
>              uint64_t stream_bit_rate =
> mjpeg_encoder_get_bit_rate(stream_agent->mjpeg_encoder);
>  
> @@ -148,8 +148,8 @@ void stream_clip_item_free(StreamClipItem *item)
>  StreamClipItem *stream_clip_item_new(StreamAgent *agent)
>  {
>      StreamClipItem *item = spice_new(StreamClipItem, 1);
> -    pipe_item_init_full((PipeItem *)item, PIPE_ITEM_TYPE_STREAM_CLIP,
> -                        (GDestroyNotify)stream_clip_item_free);
> +    red_pipe_item_init_full((RedPipeItem *)item, PIPE_ITEM_TYPE_STREAM_CLIP,
> +                            (GDestroyNotify)stream_clip_item_free);
>  
>      item->stream_agent = agent;
>      agent->stream->refs++;
> @@ -343,7 +343,7 @@ static void before_reattach_stream(DisplayChannel
> *display,
>              continue;
>          }
>  
> -        if (pipe_item_is_linked(&dpi->dpi_pipe_item)) {
> +        if (red_pipe_item_is_linked(&dpi->dpi_pipe_item)) {
>  #ifdef STREAM_STATS
>              agent->stats.num_drops_pipe++;
>  #endif
> @@ -734,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();
> -        pipe_item_init(&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);
>      }
> @@ -808,8 +808,8 @@ static void
> dcc_detach_stream_gracefully(DisplayChannelClient *dcc,
>          rect_debug(&stream->current->red_drawable->bbox);
>          rcc = RED_CHANNEL_CLIENT(dcc);
>          upgrade_item = spice_new(UpgradeItem, 1);
> -        pipe_item_init_full(&upgrade_item->base, PIPE_ITEM_TYPE_UPGRADE,
> -                            (GDestroyNotify)upgrade_item_free);
> +        red_pipe_item_init_full(&upgrade_item->base, PIPE_ITEM_TYPE_UPGRADE,
> +                                (GDestroyNotify)upgrade_item_free);
>          upgrade_item->drawable = stream->current;
>          upgrade_item->drawable->refs++;
>          n_rects = pixman_region32_n_rects(&upgrade_item->drawable
> ->tree_item.base.rgn);
> diff --git a/server/stream.h b/server/stream.h
> index c83e3b5..5b59212 100644
> --- a/server/stream.h
> +++ b/server/stream.h
> @@ -47,7 +47,7 @@ typedef struct DisplayChannel DisplayChannel;
>  typedef struct Stream Stream;
>  
>  typedef struct StreamActivateReportItem {
> -    PipeItem pipe_item;
> +    RedPipeItem pipe_item;
>      uint32_t stream_id;
>  } StreamActivateReportItem;
>  
> @@ -81,8 +81,8 @@ typedef struct StreamAgent {
>                             vis_region will contain c2 and also the part of
> c1/c2 that still
>                             displays fragments of the video */
>  
> -    PipeItem create_item;
> -    PipeItem destroy_item;
> +    RedPipeItem create_item;
> +    RedPipeItem destroy_item;
>      Stream *stream;
>      uint64_t last_send_time;
>      MJpegEncoder *mjpeg_encoder;
> @@ -100,7 +100,7 @@ typedef struct StreamAgent {
>  } StreamAgent;
>  
>  typedef struct StreamClipItem {
> -    PipeItem base;
> +    RedPipeItem base;
>      StreamAgent *stream_agent;
>      int clip_type;
>      SpiceClipRects *rects;
_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]