[Spice-devel] [PATCH EXP 3/3] try to minimize header dependencies

Pavel Grunt pgrunt at redhat.com
Mon May 9 11:52:44 UTC 2016


Hi Frediano,

On Mon, 2016-05-09 at 11:51 +0100, Frediano Ziglio wrote:
> Different headers changes:
> - order headers:
>   - system/no-spice library includes;
>   - spice-common/spice-protocol;
maybe protocol before common (just to keep one style in all the files)?
>   - spice-server;
> - every header must be auto sufficient;
> - use definition include only if necessary.
> 

What do you mean by "definition include" ?

It is always better to have some rules, I like your suggestion.

Also would be nice to update the documentation (SPICE style) when we agree on
the style.

Thanks,
Pavel

> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
> ---
>  server/agent-msg-filter.h       |  9 ++++++---
>  server/cache-item.h             |  2 +-
>  server/char-device.h            |  3 +--
>  server/cursor-channel.h         |  3 ---
>  server/dcc-encoders.h           | 42 +++++++++++++++++++++++-----------------
> -
>  server/dcc-send.c               |  8 +++++---
>  server/dcc.c                    |  2 ++
>  server/dcc.h                    | 10 ++++++----
>  server/demarshallers.h          |  3 +++
>  server/dispatcher.c             |  1 +
>  server/dispatcher.h             |  2 +-
>  server/display-channel.c        |  3 +++
>  server/display-channel.h        | 24 ++---------------------
>  server/glz-encoder-priv.h       |  4 +++-
>  server/glz-encoder.h            |  1 -
>  server/inputs-channel.h         |  2 ++
>  server/main-dispatcher.h        |  1 -
>  server/memslot.c                |  3 +--
>  server/memslot.h                |  2 --
>  server/migration-protocol.h     |  2 ++
>  server/pixmap-cache.c           |  1 +
>  server/pixmap-cache.h           | 10 +++++++---
>  server/red-channel.h            |  4 +---
>  server/red-parse-qxl.h          |  9 ++++++---
>  server/red-pipe-item.h          |  1 +
>  server/red-qxl.h                |  1 -
>  server/red-record-qxl.h         |  7 ++++---
>  server/red-replay-qxl.h         |  3 ++-
>  server/red-worker.c             |  3 +++
>  server/red-worker.h             |  3 +--
>  server/reds-private.h           |  5 +++++
>  server/reds-stream.h            |  8 ++------
>  server/reds.h                   |  6 ++----
>  server/smartcard.h              |  2 ++
>  server/sound.h                  |  6 ++++--
>  server/spice-bitmap-utils.h     |  5 ++++-
>  server/stat.h                   |  1 +
>  server/stream.c                 |  2 ++
>  server/stream.h                 |  4 ++--
>  server/tests/replay.c           |  1 +
>  server/tests/test-qxl-parsing.c |  1 +
>  server/tree.h                   |  3 ++-
>  server/utils.h                  |  3 ++-
>  server/video-encoder.h          |  3 +++
>  server/zlib-encoder.h           |  2 ++
>  45 files changed, 124 insertions(+), 97 deletions(-)
> 
> diff --git a/server/agent-msg-filter.h b/server/agent-msg-filter.h
> index 836ddbd..e7eef1a 100644
> --- a/server/agent-msg-filter.h
> +++ b/server/agent-msg-filter.h
> @@ -21,6 +21,9 @@
>  #ifndef _H_AGENT_MSG_FILTER
>  #define _H_AGENT_MSG_FILTER
>  
> +#include <inttypes.h>
> +#include <glib.h>
> +
>  /* Possible return values for agent_msg_filter_process_data */
>  enum {
>      AGENT_MSG_FILTER_OK,
> @@ -39,14 +42,14 @@ typedef struct AgentMsgFilter {
>      gboolean discard_all;
>  } AgentMsgFilter;
>  
> -void agent_msg_filter_init(struct AgentMsgFilter *filter,
> +void agent_msg_filter_init(AgentMsgFilter *filter,
>                             gboolean copy_paste, gboolean file_xfer,
>                             gboolean use_client_monitors_config,
>                             gboolean discard_all);
> -void agent_msg_filter_config(struct AgentMsgFilter *filter,
> +void agent_msg_filter_config(AgentMsgFilter *filter,
>                               gboolean copy_paste, gboolean file_xfer,
>                               gboolean use_client_monitors_config);
> -int agent_msg_filter_process_data(struct AgentMsgFilter *filter,
> +int agent_msg_filter_process_data(AgentMsgFilter *filter,
>                                    uint8_t *data, uint32_t len);
>  
>  #endif
> diff --git a/server/cache-item.h b/server/cache-item.h
> index f72c0ff..f13a69a 100644
> --- a/server/cache-item.h
> +++ b/server/cache-item.h
> @@ -18,8 +18,8 @@
>  #ifndef CACHE_ITEM_H_
>  # define CACHE_ITEM_H_
>  
> -#include "red-channel.h"
>  #include <common/ring.h>
> +#include "red-pipe-item.h"
>  
>  typedef struct RedCacheItem RedCacheItem;
>  
> diff --git a/server/char-device.h b/server/char-device.h
> index d05b1fd..0dec86a 100644
> --- a/server/char-device.h
> +++ b/server/char-device.h
> @@ -20,9 +20,8 @@
>  
>  #include <glib-object.h>
>  
> -#include "spice.h"
> -#include "red-channel.h"
>  #include "migration-protocol.h"
> +#include "red-channel.h"
>  
>  #define RED_TYPE_CHAR_DEVICE red_char_device_get_type()
>  
> diff --git a/server/cursor-channel.h b/server/cursor-channel.h
> index 4dad4b6..3b56824 100644
> --- a/server/cursor-channel.h
> +++ b/server/cursor-channel.h
> @@ -18,10 +18,7 @@
>  #ifndef CURSOR_CHANNEL_H_
>  # define CURSOR_CHANNEL_H_
>  
> -#include "spice.h"
> -#include "reds.h"
>  #include "red-worker.h"
> -#include "red-parse-qxl.h"
>  
>  typedef struct CursorChannel CursorChannel;
>  typedef struct CursorChannelClient CursorChannelClient;
> diff --git a/server/dcc-encoders.h b/server/dcc-encoders.h
> index 14759c5..5f2f519 100644
> --- a/server/dcc-encoders.h
> +++ b/server/dcc-encoders.h
> @@ -19,11 +19,13 @@
>  #define DCC_ENCODERS_H_
>  
>  #include <setjmp.h>
> +
>  #include <common/marshaller.h>
>  #include <common/quic.h>
> -#include "red-channel.h"
> +#include <common/lz.h>
> +#include <common/ring.h>
> +
>  #include "red-parse-qxl.h"
> -#include "image-cache.h"
>  #include "glz-encoder.h"
>  #include "jpeg-encoder.h"
>  #ifdef USE_LZ4
> @@ -31,21 +33,25 @@
>  #endif
>  #include "zlib-encoder.h"
>  
> +struct RedClient;
> +struct Drawable;
> +struct DisplayChannelClient;
> +
>  typedef struct RedCompressBuf RedCompressBuf;
>  typedef struct GlzDrawableInstanceItem GlzDrawableInstanceItem;
>  typedef struct RedGlzDrawable RedGlzDrawable;
>  
> -void             dcc_encoders_init                           (DisplayChannelC
> lient *dcc);
> -void             dcc_encoders_free                           (DisplayChannelC
> lient *dcc);
> -void             dcc_free_glz_drawable_instance              (DisplayChannelC
> lient *dcc,
> +void             dcc_encoders_init                           (struct
> DisplayChannelClient *dcc);
> +void             dcc_encoders_free                           (struct
> DisplayChannelClient *dcc);
> +void             dcc_free_glz_drawable_instance              (struct
> DisplayChannelClient *dcc,
>                                                                GlzDrawableInst
> anceItem *item);
> -void             dcc_free_glz_drawable                       (DisplayChannelC
> lient *dcc,
> +void             dcc_free_glz_drawable                       (struct
> DisplayChannelClient *dcc,
>                                                                RedGlzDrawable
> *drawable);
> -int              dcc_free_some_independent_glz_drawables     (DisplayChannelC
> lient *dcc);
> -void             dcc_free_glz_drawables                      (DisplayChannelC
> lient *dcc);
> -void             dcc_free_glz_drawables_to_free              (DisplayChannelC
> lient* dcc);
> -void             dcc_freeze_glz                              (DisplayChannelC
> lient *dcc);
> -void             dcc_release_glz                             (DisplayChannelC
> lient *dcc);
> +int              dcc_free_some_independent_glz_drawables     (struct
> DisplayChannelClient *dcc);
> +void             dcc_free_glz_drawables                      (struct
> DisplayChannelClient *dcc);
> +void             dcc_free_glz_drawables_to_free              (struct
> DisplayChannelClient* dcc);
> +void             dcc_freeze_glz                              (struct
> DisplayChannelClient *dcc);
> +void             dcc_release_glz                             (struct
> DisplayChannelClient *dcc);
>  
>  void             marshaller_add_compressed                   (SpiceMarshaller
> *m,
>                                                                RedCompressBuf
> *comp_buf,
> @@ -71,17 +77,17 @@ typedef struct GlzSharedDictionary {
>      uint8_t id;
>      pthread_rwlock_t encode_lock;
>      int migrate_freeze;
> -    RedClient *client; // channel clients of the same client share the dict
> +    struct RedClient *client; // channel clients of the same client share the
> dict
>  } GlzSharedDictionary;
>  
> -GlzSharedDictionary*
> dcc_get_glz_dictionary                  (DisplayChannelClient *dcc,
> +GlzSharedDictionary* dcc_get_glz_dictionary                  (struct
> DisplayChannelClient *dcc,
>                                                                uint8_t id, int
> window_size);
> -GlzSharedDictionary*
> dcc_restore_glz_dictionary              (DisplayChannelClient *dcc,
> +GlzSharedDictionary* dcc_restore_glz_dictionary              (struct
> DisplayChannelClient *dcc,
>                                                                uint8_t id,
>                                                                GlzEncDictResto
> reData *restore_data);
>  
>  typedef struct  {
> -    DisplayChannelClient *dcc;
> +    struct DisplayChannelClient *dcc;
>      RedCompressBuf *bufs_head;
>      RedCompressBuf *bufs_tail;
>      jmp_buf jmp_env;
> @@ -100,7 +106,7 @@ typedef struct  {
>      char message_buf[512];
>  } EncoderData;
>  
> -void encoder_data_init(EncoderData *data, DisplayChannelClient *dcc);
> +void encoder_data_init(EncoderData *data, struct DisplayChannelClient *dcc);
>  void encoder_data_reset(EncoderData *data);
>  
>  typedef struct {
> @@ -155,11 +161,11 @@ struct RedGlzDrawable {
>      RingItem link;    // ordered by the time it was encoded
>      RingItem drawable_link;
>      RedDrawable *red_drawable;
> -    Drawable    *drawable;
> +    struct Drawable    *drawable;
>      GlzDrawableInstanceItem instances_pool[MAX_GLZ_DRAWABLE_INSTANCES];
>      Ring instances;
>      uint8_t instances_count;
> -    DisplayChannelClient *dcc;
> +    struct DisplayChannelClient *dcc;
>  };
>  
>  #define RED_RELEASE_BUNCH_SIZE 64
> diff --git a/server/dcc-send.c b/server/dcc-send.c
> index 5f967cc..67e505c 100644
> --- a/server/dcc-send.c
> +++ b/server/dcc-send.c
> @@ -19,12 +19,14 @@
>  #include <config.h>
>  #endif
>  
> -#include "dcc.h"
> -#include "display-channel.h"
> -
>  #include <common/marshaller.h>
>  #include <common/generated_server_marshallers.h>
>  
> +#include "reds.h"
> +#include "dcc.h"
> +#include "display-channel.h"
> +#include "cache-item.h"
> +
>  typedef enum {
>      FILL_BITS_TYPE_INVALID,
>      FILL_BITS_TYPE_CACHE,
> diff --git a/server/dcc.c b/server/dcc.c
> index db77cc7..a73d9b9 100644
> --- a/server/dcc.c
> +++ b/server/dcc.c
> @@ -21,6 +21,8 @@
>  
>  #include "dcc.h"
>  #include "display-channel.h"
> +#include "migration-protocol.h"
> +#include "cache-item.h"
>  
>  #define DISPLAY_CLIENT_SHORT_TIMEOUT 15000000000ULL //nano
>  
> diff --git a/server/dcc.h b/server/dcc.h
> index 1dd53bd..9d0b554 100644
> --- a/server/dcc.h
> +++ b/server/dcc.h
> @@ -18,12 +18,12 @@
>  #ifndef DCC_H_
>  # define DCC_H_
>  
> -#include "red-worker.h"
> +#include "image-cache.h"
>  #include "pixmap-cache.h"
> -#include "cache-item.h"
> +#include "display-limits.h"
> +#include "red-worker.h"
>  #include "dcc-encoders.h"
>  #include "stream.h"
> -#include "display-limits.h"
>  
>  #define PALETTE_CACHE_HASH_SHIFT 8
>  #define PALETTE_CACHE_HASH_SIZE (1 << PALETTE_CACHE_HASH_SHIFT)
> @@ -42,6 +42,8 @@
>  
>  #define MAX_PIPE_SIZE 50
>  
> +struct RedCacheItem;
> +
>  typedef struct WaitForChannels {
>      SpiceMsgWaitForChannels header;
>      SpiceWaitForChannel buf[MAX_CACHE_CLIENTS];
> @@ -82,7 +84,7 @@ struct DisplayChannelClient {
>      uint32_t pixmap_cache_generation;
>      int pending_pixmaps_sync;
>  
> -    RedCacheItem *palette_cache[PALETTE_CACHE_HASH_SIZE];
> +    struct RedCacheItem *palette_cache[PALETTE_CACHE_HASH_SIZE];
>      Ring palette_cache_lru;
>      long palette_cache_available;
>      uint32_t palette_cache_items;
> diff --git a/server/demarshallers.h b/server/demarshallers.h
> index c3d770d..dc35645 100644
> --- a/server/demarshallers.h
> +++ b/server/demarshallers.h
> @@ -17,6 +17,9 @@
>  #ifndef _H_DEMARSHAL
>  #define _H_DEMARSHAL
>  
> +#include <stddef.h>
> +#include <inttypes.h>
> +
>  typedef void (*message_destructor_t)(uint8_t *message);
>  typedef uint8_t * (*spice_parse_channel_func_t)(uint8_t *message_start,
> uint8_t *message_end, uint16_t message_type, int minor,
>                                                  size_t *size_out,
> message_destructor_t *free_message);
> diff --git a/server/dispatcher.c b/server/dispatcher.c
> index b9e23f6..96dccb8 100644
> --- a/server/dispatcher.c
> +++ b/server/dispatcher.c
> @@ -30,6 +30,7 @@
>  
>  #include <common/mem.h>
>  #include <common/spice_common.h>
> +#include "red-common.h"
>  #include "dispatcher.h"
>  
>  //#define DEBUG_DISPATCHER
> diff --git a/server/dispatcher.h b/server/dispatcher.h
> index caaebc5..b187a0e 100644
> --- a/server/dispatcher.h
> +++ b/server/dispatcher.h
> @@ -18,8 +18,8 @@
>  #ifndef DISPATCHER_H
>  #define DISPATCHER_H
>  
> +#include <inttypes.h>
>  #include <glib-object.h>
> -#include "red-common.h"
>  
>  #define TYPE_DISPATCHER dispatcher_get_type()
>  
> diff --git a/server/display-channel.c b/server/display-channel.c
> index 1f4d66f..245f241 100644
> --- a/server/display-channel.c
> +++ b/server/display-channel.c
> @@ -18,7 +18,10 @@
>  #include <config.h>
>  #endif
>  
> +#include <common/sw_canvas.h>
> +
>  #include "display-channel.h"
> +#include "reds.h"
>  
>  static void drawable_draw(DisplayChannel *display, Drawable *drawable);
>  
> diff --git a/server/display-channel.h b/server/display-channel.h
> index 1d20be0..efb0b44 100644
> --- a/server/display-channel.h
> +++ b/server/display-channel.h
> @@ -21,32 +21,12 @@
>  #include <setjmp.h>
>  
>  #include <common/rect.h>
> -#include <common/sw_canvas.h>
> -
> -#include "red-worker.h"
> -#include "reds-stream.h"
> -#include "cache-item.h"
> -#include "pixmap-cache.h"
> -#include "stat.h"
> -#include "reds.h"
> -#include "memslot.h"
> -#include "red-parse-qxl.h"
> -#include "red-record-qxl.h"
> -#include "demarshallers.h"
> -#include "red-channel.h"
> -#include "red-qxl.h"
> -#include "dispatcher.h"
> -#include "main-channel.h"
> -#include "migration-protocol.h"
> -#include "main-dispatcher.h"
> +
>  #include "spice-bitmap-utils.h"
> -#include "image-cache.h"
> -#include "utils.h"
>  #include "tree.h"
> +#include "red-channel.h"
>  #include "stream.h"
>  #include "dcc.h"
> -#include "display-limits.h"
> -
>  
>  typedef struct DependItem {
>      Drawable *drawable;
> diff --git a/server/glz-encoder-priv.h b/server/glz-encoder-priv.h
> index 919c439..1c76576 100644
> --- a/server/glz-encoder-priv.h
> +++ b/server/glz-encoder-priv.h
> @@ -18,7 +18,9 @@
>  #ifndef GLZ_ENCODER_PRIV_H_
>  #define GLZ_ENCODER_PRIV_H_
>  
> -#include "red-common.h"
> +#include <pthread.h>
> +#include <common/lz_common.h>
> +#include "glz-encoder-dict.h"
>  
>  /* Interface for using the dictionary for encoding.
>     Data structures are exposed for the encoder for efficiency
> diff --git a/server/glz-encoder.h b/server/glz-encoder.h
> index 6f4f44d..6a597d7 100644
> --- a/server/glz-encoder.h
> +++ b/server/glz-encoder.h
> @@ -20,7 +20,6 @@
>  
>  /* Manging the lz encoding using a dictionary that is shared among encoders
> */
>  
> -#include "red-common.h"
>  #include <common/lz_common.h>
>  #include "glz-encoder-dict.h"
>  
> diff --git a/server/inputs-channel.h b/server/inputs-channel.h
> index fce757f..9213aec 100644
> --- a/server/inputs-channel.h
> +++ b/server/inputs-channel.h
> @@ -24,6 +24,8 @@
>  #include <stdint.h>
>  #include <spice/vd_agent.h>
>  
> +#include "red-channel.h"
> +
>  typedef struct InputsChannel InputsChannel;
>  
>  InputsChannel* inputs_channel_new(RedsState *reds);
> diff --git a/server/main-dispatcher.h b/server/main-dispatcher.h
> index ffe82c8..3e9d9de 100644
> --- a/server/main-dispatcher.h
> +++ b/server/main-dispatcher.h
> @@ -18,7 +18,6 @@
>  #ifndef MAIN_DISPATCHER_H
>  #define MAIN_DISPATCHER_H
>  
> -#include <spice.h>
>  #include "dispatcher.h"
>  #include "red-channel.h"
>  
> diff --git a/server/memslot.c b/server/memslot.c
> index 99c63e4..0881f86 100644
> --- a/server/memslot.c
> +++ b/server/memslot.c
> @@ -19,8 +19,7 @@
>  #include <config.h>
>  #endif
>  
> -#include <inttypes.h>
> -
> +#include "red-common.h"
>  #include "memslot.h"
>  
>  static unsigned long __get_clean_virt(RedMemSlotInfo *info, QXLPHYSICAL addr)
> diff --git a/server/memslot.h b/server/memslot.h
> index 0caa627..c4aa8c6 100644
> --- a/server/memslot.h
> +++ b/server/memslot.h
> @@ -19,8 +19,6 @@
>  #ifndef MEMSLOT_H_
>  #define MEMSLOT_H_
>  
> -#include "red-common.h"
> -
>  #include <spice/qxl_dev.h>
>  
>  typedef struct MemSlot {
> diff --git a/server/migration-protocol.h b/server/migration-protocol.h
> index c1d97ef..3f08150 100644
> --- a/server/migration-protocol.h
> +++ b/server/migration-protocol.h
> @@ -20,6 +20,8 @@
>  
>  #include <spice/macros.h>
>  #include <spice/vd_agent.h>
> +#include <common/log.h>
> +
>  #include "glz-encoder-dict.h"
>  
>  /* ************************************************
> diff --git a/server/pixmap-cache.c b/server/pixmap-cache.c
> index a485268..12081ac 100644
> --- a/server/pixmap-cache.c
> +++ b/server/pixmap-cache.c
> @@ -18,6 +18,7 @@
>  #include <config.h>
>  #endif
>  
> +#include "red-channel.h"
>  #include "pixmap-cache.h"
>  
>  int pixmap_cache_unlocked_set_lossy(PixmapCache *cache, uint64_t id, int
> lossy)
> diff --git a/server/pixmap-cache.h b/server/pixmap-cache.h
> index 66658f3..6bce986 100644
> --- a/server/pixmap-cache.h
> +++ b/server/pixmap-cache.h
> @@ -18,7 +18,9 @@
>  #ifndef _PIXMAP_CACHE_H
>  # define _PIXMAP_CACHE_H
>  
> -#include "red-channel.h"
> +#include <stddef.h>
> +#include <inttypes.h>
> +#include <common/ring.h>
>  
>  #define MAX_CACHE_CLIENTS 4
>  
> @@ -27,6 +29,8 @@
>  #define BITS_CACHE_HASH_MASK (BITS_CACHE_HASH_SIZE - 1)
>  #define BITS_CACHE_HASH_KEY(id) ((id) & BITS_CACHE_HASH_MASK)
>  
> +struct RedClient;
> +
>  typedef struct PixmapCache PixmapCache;
>  typedef struct NewCacheItem NewCacheItem;
>  
> @@ -61,10 +65,10 @@ struct PixmapCache {
>      } generation_initiator;
>      uint64_t sync[MAX_CACHE_CLIENTS]; // here CLIENTS refer to different
> channel
>                                        // clients of the same client
> -    RedClient *client;
> +    struct RedClient *client;
>  };
>  
> -PixmapCache *pixmap_cache_get(RedClient *client, uint8_t id, int64_t size);
> +PixmapCache *pixmap_cache_get(struct RedClient *client, uint8_t id, int64_t
> size);
>  void         pixmap_cache_unref(PixmapCache *cache);
>  void         pixmap_cache_clear(PixmapCache *cache);
>  int          pixmap_cache_unlocked_set_lossy(PixmapCache *cache, uint64_t id,
> int lossy);
> diff --git a/server/red-channel.h b/server/red-channel.h
> index bc225c6..e0998fa 100644
> --- a/server/red-channel.h
> +++ b/server/red-channel.h
> @@ -28,12 +28,10 @@
>  #include <common/ring.h>
>  #include <common/marshaller.h>
>  
> -#include "spice.h"
> -#include "red-common.h"
>  #include "demarshallers.h"
> -#include "reds-stream.h"
>  #include "stat.h"
>  #include "red-pipe-item.h"
> +#include "reds-stream.h"
>  
>  #define MAX_SEND_BUFS 1000
>  #define CLIENT_ACK_WINDOW 20
> diff --git a/server/red-parse-qxl.h b/server/red-parse-qxl.h
> index 9c30572..508a1b3 100644
> --- a/server/red-parse-qxl.h
> +++ b/server/red-parse-qxl.h
> @@ -16,11 +16,14 @@
>     License along with this library; if not, see <http://www.gnu.org/licenses/
> >.
>  */
>  
> -#ifndef RED_ABI_TRANSLATE_H
> -#define RED_ABI_TRANSLATE_H
> +#ifndef RED_PARSE_QXL_H
> +#define RED_PARSE_QXL_H
>  
> +#include <common/draw.h>
> +#include <common/messages.h>
>  #include <spice/qxl_dev.h>
> -#include "red-common.h"
> +
> +#include "spice-qxl.h"
>  #include "memslot.h"
>  
>  typedef struct RedDrawable {
> diff --git a/server/red-pipe-item.h b/server/red-pipe-item.h
> index 8bb12b7..0ff4852 100644
> --- a/server/red-pipe-item.h
> +++ b/server/red-pipe-item.h
> @@ -19,6 +19,7 @@
>  #define _H_RED_PIPE_ITEM
>  
>  #include <glib.h>
> +#include <common/ring.h>
>  
>  typedef struct {
>      RingItem link;
> diff --git a/server/red-qxl.h b/server/red-qxl.h
> index c9b6b36..ce80f97 100644
> --- a/server/red-qxl.h
> +++ b/server/red-qxl.h
> @@ -19,7 +19,6 @@
>  #define _H_RED_DISPATCHER
>  
>  #include "red-channel.h"
> -#include "spice-qxl.h"
>  
>  typedef struct AsyncCommand AsyncCommand;
>  
> diff --git a/server/red-record-qxl.h b/server/red-record-qxl.h
> index 21f0bc9..4137ff8 100644
> --- a/server/red-record-qxl.h
> +++ b/server/red-record-qxl.h
> @@ -16,11 +16,12 @@
>     along with this program.  If not, see <http://www.gnu.org/licenses/>.
>  */
>  
> -#ifndef RED_ABI_RECORD_H
> -#define RED_ABI_RECORD_H
> +#ifndef RED_RECORD_QXL_H
> +#define RED_RECORD_QXL_H
>  
> +#include <stdio.h>
>  #include <spice/qxl_dev.h>
> -#include "red-common.h"
> +#include "spice-qxl.h"
>  #include "memslot.h"
>  
>  void red_record_dev_input_primary_surface_create(
> diff --git a/server/red-replay-qxl.h b/server/red-replay-qxl.h
> index a89b3d4..f33820c 100644
> --- a/server/red-replay-qxl.h
> +++ b/server/red-replay-qxl.h
> @@ -20,7 +20,8 @@
>  
>  #include <stdio.h>
>  #include <spice/qxl_dev.h>
> -#include <spice.h>
> +
> +#include "spice-qxl.h"
>  
>  typedef struct SpiceReplay SpiceReplay;
>  
> diff --git a/server/red-worker.c b/server/red-worker.c
> index 8d8073e..33af442 100644
> --- a/server/red-worker.c
> +++ b/server/red-worker.c
> @@ -48,9 +48,12 @@
>  #include "stream.h"
>  
>  #include "spice.h"
> +#include "red-record-qxl.h"
>  #include "red-worker.h"
>  #include "cursor-channel.h"
>  #include "tree.h"
> +#include "main-channel.h"
> +#include "reds.h"
>  
>  #define CMD_RING_POLL_TIMEOUT 10 //milli
>  #define CMD_RING_POLL_RETRIES 1
> diff --git a/server/red-worker.h b/server/red-worker.h
> index d7525e0..8517af5 100644
> --- a/server/red-worker.h
> +++ b/server/red-worker.h
> @@ -18,9 +18,8 @@
>  #ifndef _H_REDWORKER
>  #define _H_REDWORKER
>  
> -#include "red-common.h"
> -#include "red-qxl.h"
>  #include "red-parse-qxl.h"
> +#include "red-qxl.h"
>  
>  typedef struct RedWorker RedWorker;
>  
> diff --git a/server/reds-private.h b/server/reds-private.h
> index 74a251b..b2f00b6 100644
> --- a/server/reds-private.h
> +++ b/server/reds-private.h
> @@ -19,6 +19,11 @@
>  #define REDS_PRIVATE_H
>  
>  #include <spice/protocol.h>
> +#include <spice/stats.h>
> +
> +#include "main-dispatcher.h"
> +#include "main-channel.h"
> +#include "inputs-channel.h"
>  
>  #define MIGRATE_TIMEOUT (MSEC_PER_SEC * 10)
>  #define MM_TIME_DELTA 400 /*ms*/
> diff --git a/server/reds-stream.h b/server/reds-stream.h
> index 7392f56..9d8038f 100644
> --- a/server/reds-stream.h
> +++ b/server/reds-stream.h
> @@ -18,14 +18,10 @@
>  #ifndef _H_REDS_STREAM
>  #define _H_REDS_STREAM
>  
> -#include "spice.h"
> -#include <common/mem.h>
> -#include "red-common.h"
> -
> -#include <stdbool.h>
> -
>  #include <openssl/ssl.h>
>  
> +#include "red-common.h"
> +
>  typedef void (*AsyncReadDone)(void *opaque);
>  typedef void (*AsyncReadError)(void *opaque, int err);
>  
> diff --git a/server/reds.h b/server/reds.h
> index f0f28da9e..6673923 100644
> --- a/server/reds.h
> +++ b/server/reds.h
> @@ -21,16 +21,14 @@
>  #include <stdint.h>
>  #include <sys/uio.h>
>  #include <spice/vd_agent.h>
> -#include <config.h>
> -
>  
>  #include <common/marshaller.h>
>  #include <common/messages.h>
> +
> +#include "migration-protocol.h"
>  #include "char-device.h"
> -#include "spice.h"
>  #include "red-channel.h"
>  #include "main-dispatcher.h"
> -#include "migration-protocol.h"
>  
>  static inline QXLInterface * qxl_get_interface(QXLInstance *qxl)
>  {
> diff --git a/server/smartcard.h b/server/smartcard.h
> index 6bda594..2d1356e 100644
> --- a/server/smartcard.h
> +++ b/server/smartcard.h
> @@ -20,6 +20,8 @@
>  
>  #include <glib-object.h>
>  
> +#include "char-device.h"
> +
>  #define RED_TYPE_CHAR_DEVICE_SMARTCARD red_char_device_smartcard_get_type()
>  
>  #define RED_CHAR_DEVICE_SMARTCARD(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),
> RED_TYPE_CHAR_DEVICE_SMARTCARD, RedCharDeviceSmartcard))
> diff --git a/server/sound.h b/server/sound.h
> index 25e59f0..76174cf 100644
> --- a/server/sound.h
> +++ b/server/sound.h
> @@ -18,7 +18,9 @@
>  #ifndef SOUND_H_
>  #define SOUND_H_
>  
> -#include "spice.h"
> +#include "red-common.h"
> +
> +struct RedClient;
>  
>  void snd_attach_playback(RedsState *reds, SpicePlaybackInstance *sin);
>  void snd_detach_playback(SpicePlaybackInstance *sin);
> @@ -28,6 +30,6 @@ void snd_detach_record(SpiceRecordInstance *sin);
>  
>  void snd_set_playback_compression(int on);
>  
> -void snd_set_playback_latency(RedClient *client, uint32_t latency);
> +void snd_set_playback_latency(struct RedClient *client, uint32_t latency);
>  
>  #endif
> diff --git a/server/spice-bitmap-utils.h b/server/spice-bitmap-utils.h
> index ffb6c74..89a9068 100644
> --- a/server/spice-bitmap-utils.h
> +++ b/server/spice-bitmap-utils.h
> @@ -18,7 +18,10 @@
>  #ifndef SPICE_BITMAP_UTILS_H_
>  #define SPICE_BITMAP_UTILS_H_
>  
> -#include "red-common.h"
> +#include <glib.h>
> +#include <spice/qxl_dev.h>
> +#include <common/draw.h>
> +#include <common/log.h>
>  
>  typedef enum {
>      BITMAP_GRADUAL_INVALID,
> diff --git a/server/stat.h b/server/stat.h
> index 7db27ee..ec7e88d 100644
> --- a/server/stat.h
> +++ b/server/stat.h
> @@ -20,6 +20,7 @@
>  
>  #include <stdint.h>
>  #include <glib.h>
> +#include <spice.h>
>  
>  typedef uint32_t StatNodeRef;
>  #define INVALID_STAT_REF (~(StatNodeRef)0)
> diff --git a/server/stream.c b/server/stream.c
> index 8884480..2f194ce 100644
> --- a/server/stream.c
> +++ b/server/stream.c
> @@ -20,6 +20,8 @@
>  
>  #include "stream.h"
>  #include "display-channel.h"
> +#include "main-channel.h"
> +#include "reds.h"
>  
>  #define FPS_TEST_INTERVAL 1
>  #define FOREACH_STREAMS(display, item)                  \
> diff --git a/server/stream.h b/server/stream.h
> index 011467b..a21f6b0 100644
> --- a/server/stream.h
> +++ b/server/stream.h
> @@ -19,9 +19,9 @@
>  #define STREAM_H_
>  
>  #include <glib.h>
> -#include "utils.h"
> -#include "video-encoder.h"
>  #include <common/region.h>
> +
> +#include "video-encoder.h"
>  #include "red-channel.h"
>  #include "image-cache.h"
>  
> diff --git a/server/tests/replay.c b/server/tests/replay.c
> index d552327..0b5f0ed 100644
> --- a/server/tests/replay.c
> +++ b/server/tests/replay.c
> @@ -36,6 +36,7 @@
>  #include <pthread.h>
>  
>  #include <spice/macros.h>
> +#include "spice.h"
>  #include "red-replay-qxl.h"
>  #include "test_display_base.h"
>  #include <common/log.h>
> diff --git a/server/tests/test-qxl-parsing.c b/server/tests/test-qxl-parsing.c
> index a3b2e6c..0a6b8e4 100644
> --- a/server/tests/test-qxl-parsing.c
> +++ b/server/tests/test-qxl-parsing.c
> @@ -10,6 +10,7 @@
>  #include <assert.h>
>  
>  #include <spice/macros.h>
> +#include "spice.h"
>  #include "memslot.h"
>  #include "red-parse-qxl.h"
>  
> diff --git a/server/tree.h b/server/tree.h
> index 6476082..042123d 100644
> --- a/server/tree.h
> +++ b/server/tree.h
> @@ -19,9 +19,10 @@
>  # define TREE_H_
>  
>  #include <stdint.h>
> +
>  #include <common/region.h>
>  #include <common/ring.h>
> -#include "spice-bitmap-utils.h"
> +#include <spice/qxl_dev.h>
>  
>  enum {
>      TREE_ITEM_TYPE_NONE,
> diff --git a/server/utils.h b/server/utils.h
> index 00631f8..fcd6a43 100644
> --- a/server/utils.h
> +++ b/server/utils.h
> @@ -18,7 +18,8 @@
>  #ifndef UTILS_H_
>  # define UTILS_H_
>  
> -#include "red-common.h"
> +#include <inttypes.h>
> +#include <glib.h>
>  
>  #define SPICE_GNUC_VISIBLE __attribute__ ((visibility ("default")))
>  
> diff --git a/server/video-encoder.h b/server/video-encoder.h
> index 9833e13..8aa7783 100644
> --- a/server/video-encoder.h
> +++ b/server/video-encoder.h
> @@ -21,6 +21,9 @@
>  #ifndef _H_VIDEO_ENCODER
>  #define _H_VIDEO_ENCODER
>  
> +#include <inttypes.h>
> +#include <common/draw.h>
> +
>  enum {
>      VIDEO_ENCODER_FRAME_UNSUPPORTED = -1,
>      VIDEO_ENCODER_FRAME_DROP,
> diff --git a/server/zlib-encoder.h b/server/zlib-encoder.h
> index 0620fc7..2800102 100644
> --- a/server/zlib-encoder.h
> +++ b/server/zlib-encoder.h
> @@ -30,6 +30,8 @@
>  #ifndef _H_ZLIB_ENCODER
>  #define _H_ZLIB_ENCODER
>  
> +#include <inttypes.h>
> +
>  typedef struct ZlibEncoder ZlibEncoder;
>  typedef struct ZlibEncoderUsrContext ZlibEncoderUsrContext;
>  


More information about the Spice-devel mailing list