summaryrefslogtreecommitdiffstats
path: root/server/cursor-channel.h
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@gmail.com>2013-09-03 22:24:44 +0200
committerFrediano Ziglio <fziglio@redhat.com>2015-11-03 09:07:18 +0000
commite601e920bd5a8385f7388cf31e0b0d543f68193e (patch)
treec0000f48d24adddc85b7417c3d3a52556faf0217 /server/cursor-channel.h
parentc9e3b058e452e3e00ae009163a5de66e99987492 (diff)
downloadspice-e601e920bd5a8385f7388cf31e0b0d543f68193e.tar.gz
spice-e601e920bd5a8385f7388cf31e0b0d543f68193e.tar.xz
spice-e601e920bd5a8385f7388cf31e0b0d543f68193e.zip
server: make more of cursor private
Acked-by: Fabiano Fidêncio <fidencio@redhat.com>
Diffstat (limited to 'server/cursor-channel.h')
-rw-r--r--server/cursor-channel.h50
1 files changed, 4 insertions, 46 deletions
diff --git a/server/cursor-channel.h b/server/cursor-channel.h
index 5d4f8ea2..887f8479 100644
--- a/server/cursor-channel.h
+++ b/server/cursor-channel.h
@@ -25,66 +25,24 @@
#include "cache-item.h"
#include "stat.h"
-#define CLIENT_CURSOR_CACHE_SIZE 256
-
-#define CURSOR_CACHE_HASH_SHIFT 8
-#define CURSOR_CACHE_HASH_SIZE (1 << CURSOR_CACHE_HASH_SHIFT)
-#define CURSOR_CACHE_HASH_MASK (CURSOR_CACHE_HASH_SIZE - 1)
-#define CURSOR_CACHE_HASH_KEY(id) ((id) & CURSOR_CACHE_HASH_MASK)
-
-enum {
- PIPE_ITEM_TYPE_CURSOR = PIPE_ITEM_TYPE_COMMON_LAST,
- PIPE_ITEM_TYPE_CURSOR_INIT,
- PIPE_ITEM_TYPE_INVAL_CURSOR_CACHE,
-};
-
typedef struct CursorChannel CursorChannel;
+typedef struct CursorChannelClient CursorChannelClient;
-typedef struct CursorItem {
- uint32_t group_id;
- int refs;
- RedCursorCmd *red_cursor;
-} CursorItem;
-
-typedef struct CursorPipeItem {
- PipeItem base;
- CursorItem *cursor_item;
- int refs;
-} CursorPipeItem;
-
-typedef struct LocalCursor {
- CursorItem base;
- SpicePoint16 position;
- uint32_t data_size;
- SpiceCursor red_cursor;
-} LocalCursor;
-
-typedef struct CursorChannelClient {
- CommonChannelClient common;
-
- CacheItem *cursor_cache[CURSOR_CACHE_HASH_SIZE];
- Ring cursor_cache_lru;
- long cursor_cache_available;
- uint32_t cursor_cache_items;
-} CursorChannelClient;
-
-G_STATIC_ASSERT(sizeof(CursorItem) <= QXL_CURSUR_DEVICE_DATA_SIZE);
+#define CURSOR_CHANNEL_CLIENT(Client) ((CursorChannelClient*)(Client))
CursorChannel* cursor_channel_new (RedWorker *worker);
void cursor_channel_disconnect (CursorChannel *cursor_channel);
void cursor_channel_reset (CursorChannel *cursor);
+void cursor_channel_init (CursorChannel *cursor, CursorChannelClient* client);
void cursor_channel_process_cmd (CursorChannel *cursor, RedCursorCmd *cursor_cmd,
uint32_t group_id);
void cursor_channel_set_mouse_mode(CursorChannel *cursor, uint32_t mode);
-CursorItem* cursor_item_new (RedCursorCmd *cmd, uint32_t group_id);
-void cursor_item_unref (QXLInstance *qxl, CursorItem *cursor);
-
-
CursorChannelClient* cursor_channel_client_new(CursorChannel *cursor,
RedClient *client, RedsStream *stream,
int mig_target,
uint32_t *common_caps, int num_common_caps,
uint32_t *caps, int num_caps);
+void cursor_channel_client_migrate(CursorChannelClient* client);
#endif /* CURSOR_CHANNEL_H_ */