[Spice-devel] [PATCH EXP 3/3] try to minimize header dependencies
Frediano Ziglio
fziglio at redhat.com
Mon May 9 12:32:36 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)?
quite strictly kind of:
#include <system_headers.h>
#include <no_spice_no_system_libraries.h>
#include <spice_protocol.h>
#include <spice_commont.h>
#include "spice-server.h"
(note the empty line in the middle!)
> > - spice-server;
> > - every header must be auto sufficient;
> > - use definition include only if necessary.
> >
>
> What do you mean by "definition include" ?
>
some kind of bad and too much copy&paste I think.
- use include only if necessary to have specific definitions.
The "definition" came from wanting to avoid includes just for structure declarations.
so instead of
#include "foo_definition.h"
void do_something(foo *p_foo);
(where foo is a structure typedef), use something like
struct foo;
void do_something(struct foo *p_foo);
this will avoid the nightmare of moving typedefs every 5 minutes and
reduce the dependencies quite a lot.
> 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.
>
I propose to remove the pdf file and add a "standard" (something
like Linux) CodingStyle file in git repository. But perhaps the file would
have to be duplicated between different repositories.
Frediano
> 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