[Spice-devel] [RFC v4 35/62] server/red_worker: more removal of direct rcc access

Marc-André Lureau marcandre.lureau at gmail.com
Mon May 2 16:55:45 PDT 2011


It looks like it could be merged with 05/62 move pipe from RedChannel
to RedChannelClient

On Tue, Apr 26, 2011 at 12:55 PM, Alon Levy <alevy at redhat.com> wrote:
> ---
>  server/red_worker.c |   21 +++++++++++++--------
>  1 files changed, 13 insertions(+), 8 deletions(-)
>
> diff --git a/server/red_worker.c b/server/red_worker.c
> index 3581173..79fffd1 100644
> --- a/server/red_worker.c
> +++ b/server/red_worker.c
> @@ -8489,7 +8489,8 @@ void red_disconnect_all_display_TODO_remove_me(RedChannel *channel)
>  static void red_migrate_display(RedWorker *worker)
>  {
>     if (worker->display_channel) {
> -        red_pipe_add_verb(worker->display_channel->common.base.rcc, SPICE_MSG_DISPLAY_STREAM_DESTROY_ALL);
> +        red_pipes_add_verb(&worker->display_channel->common.base,
> +            SPICE_MSG_DISPLAY_STREAM_DESTROY_ALL);
>         red_channel_pipes_add_type(&worker->display_channel->common.base, PIPE_ITEM_TYPE_MIGRATE);
>     }
>  }
> @@ -9584,9 +9585,11 @@ static void red_disconnect_cursor(RedChannel *channel)
>
>  static void red_migrate_cursor(RedWorker *worker)
>  {
> -    if (worker->cursor_channel) {
> -        red_channel_client_pipe_add_type(worker->cursor_channel->common.base.rcc, PIPE_ITEM_TYPE_INVAL_CURSOR_CACHE);
> -        red_channel_client_pipe_add_type(worker->cursor_channel->common.base.rcc, PIPE_ITEM_TYPE_MIGRATE);
> +    if (cursor_connected(worker)) {
> +        red_channel_pipes_add_type(&worker->cursor_channel->common.base,
> +                                   PIPE_ITEM_TYPE_INVAL_CURSOR_CACHE);
> +        red_channel_pipes_add_type(&worker->cursor_channel->common.base,
> +                                   PIPE_ITEM_TYPE_MIGRATE);
>     }
>  }
>
> @@ -10006,13 +10009,15 @@ static inline void handle_dev_create_primary_surface(RedWorker *worker)
>                        surface.height, surface.stride, surface.format,
>                        line_0, surface.flags & QXL_SURF_FLAG_KEEP_DATA);
>
> -    if (worker->display_channel) {
> -        red_pipe_add_verb(worker->display_channel->common.base.rcc, SPICE_MSG_DISPLAY_MARK);
> +    if (display_connected(worker)) {
> +        red_pipes_add_verb(&worker->display_channel->common.base,
> +                           SPICE_MSG_DISPLAY_MARK);
>         red_channel_push(&worker->display_channel->common.base);
>     }
>
> -    if (worker->cursor_channel) {
> -        red_channel_client_pipe_add_type(worker->cursor_channel->common.base.rcc, PIPE_ITEM_TYPE_CURSOR_INIT);
> +    if (cursor_connected(worker)) {
> +        red_channel_pipes_add_type(&worker->cursor_channel->common.base,
> +                                   PIPE_ITEM_TYPE_CURSOR_INIT);
>     }
>
>     message = RED_WORKER_MESSAGE_READY;
> --
> 1.7.4.4
>
> _______________________________________________
> Spice-devel mailing list
> Spice-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/spice-devel
>



-- 
Marc-André Lureau


More information about the Spice-devel mailing list