diff options
author | Alon Levy <alevy@redhat.com> | 2011-10-31 17:35:30 +0200 |
---|---|---|
committer | Alon Levy <alevy@redhat.com> | 2011-11-08 16:23:10 +0200 |
commit | 8e049ce3b03c5e0034702d2a4b49b7ca36aaff92 (patch) | |
tree | d4f2032d649bcfb2c053f1808a0cf01ab4c5db51 /server/red_worker.h | |
parent | ca5776f40e60f5bf5c0bf19c242492c2082d3dfc (diff) | |
download | spice-8e049ce3b03c5e0034702d2a4b49b7ca36aaff92.tar.gz spice-8e049ce3b03c5e0034702d2a4b49b7ca36aaff92.tar.xz spice-8e049ce3b03c5e0034702d2a4b49b7ca36aaff92.zip |
server/red_worker: reuse dispatcher
This patch reuses Dispatcher in RedDispatcher. It adds two helpers
to red_worker to keep RedWorker opaque to the outside. The dispatcher is
abused in three places that use the underlying socket directly:
once sending a READY after red_init completes
once for each channel creation, replying with the RedChannel instance
for cursor and display.
FDO Bugzilla: 42463
rfc->v1:
* move callbacks to red_worker.c including registration (Yonit)
* rename dispatcher to red_dispatcher in red_worker.c and red_dispatcher.c
* add accessor red_dispatcher_get_dispatcher
* s/dispatcher_handle_recv/dispatcher_handle_recv_read/ and change sig to
just Dispatcher *dispatcher (was the SpiceCoreInterface one)
* remove SpiceCoreInterface parameter from dispatcher_init (Yonit)
* main_dispatcher needed it for channel_event so it has it in
struct MainDispatcher
* add dispatcher_get_recv_fd for red_worker
Diffstat (limited to 'server/red_worker.h')
-rw-r--r-- | server/red_worker.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/server/red_worker.h b/server/red_worker.h index 26c43adb..08c7b223 100644 --- a/server/red_worker.h +++ b/server/red_worker.h @@ -84,6 +84,8 @@ enum { RED_WORKER_MESSAGE_DISPLAY_CHANNEL_CREATE, RED_WORKER_MESSAGE_CURSOR_CHANNEL_CREATE, + + RED_WORKER_MESSAGE_COUNT // LAST }; typedef uint32_t RedWorkerMessage; @@ -102,7 +104,6 @@ typedef struct RedDispatcher RedDispatcher; typedef struct WorkerInitData { struct QXLInstance *qxl; int id; - int channel; uint32_t *pending; uint32_t num_renderers; uint32_t renderers[RED_MAX_RENDERERS]; @@ -116,7 +117,7 @@ typedef struct WorkerInitData { uint8_t memslot_id_bits; uint8_t internal_groupslot_id; uint32_t n_surfaces; - RedDispatcher *dispatcher; + RedDispatcher *red_dispatcher; } WorkerInitData; void *red_worker_main(void *arg); |