rename red_dispatcher_ functions to red_qxl_

RedDispatcher is basically implementing QXLInstance.
After some internal discussion we decided to use QXLState structure
and red_qxl_ as function prefix.
This is the first of 3 patches that rename functions, structure
and files.

Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
This commit is contained in:
Frediano Ziglio 2016-02-25 18:02:41 +00:00
parent 994099dd3d
commit a8ff771ee8
5 changed files with 182 additions and 182 deletions

View File

@ -2164,7 +2164,7 @@ static void set_gl_draw_async_count(DisplayChannel *display, int num)
if (num == 0) {
struct AsyncCommand *async = qxl->st->gl_draw_async;
qxl->st->gl_draw_async = NULL;
red_dispatcher_async_complete(qxl->st->dispatcher, async);
red_qxl_async_complete(qxl->st->dispatcher, async);
}
}

View File

@ -58,7 +58,7 @@ struct RedDispatcher {
unsigned int max_monitors;
};
static int red_dispatcher_check_qxl_version(RedDispatcher *rd, int major, int minor)
static int red_qxl_check_qxl_version(RedDispatcher *rd, int major, int minor)
{
int qxl_major = rd->qxl->st->qif->base.major_version;
int qxl_minor = rd->qxl->st->qif->base.minor_version;
@ -67,10 +67,10 @@ static int red_dispatcher_check_qxl_version(RedDispatcher *rd, int major, int mi
((qxl_major == major) && (qxl_minor >= minor)));
}
static void red_dispatcher_set_display_peer(RedChannel *channel, RedClient *client,
RedsStream *stream, int migration,
int num_common_caps, uint32_t *common_caps, int num_caps,
uint32_t *caps)
static void red_qxl_set_display_peer(RedChannel *channel, RedClient *client,
RedsStream *stream, int migration,
int num_common_caps, uint32_t *common_caps, int num_caps,
uint32_t *caps)
{
RedWorkerMessageDisplayConnect payload = {0,};
RedDispatcher *dispatcher;
@ -93,7 +93,7 @@ static void red_dispatcher_set_display_peer(RedChannel *channel, RedClient *clie
&payload);
}
static void red_dispatcher_disconnect_display_peer(RedChannelClient *rcc)
static void red_qxl_disconnect_display_peer(RedChannelClient *rcc)
{
RedWorkerMessageDisplayDisconnect payload;
RedDispatcher *dispatcher;
@ -114,7 +114,7 @@ static void red_dispatcher_disconnect_display_peer(RedChannelClient *rcc)
&payload);
}
static void red_dispatcher_display_migrate(RedChannelClient *rcc)
static void red_qxl_display_migrate(RedChannelClient *rcc)
{
RedWorkerMessageDisplayMigrate payload;
RedDispatcher *dispatcher;
@ -129,10 +129,10 @@ static void red_dispatcher_display_migrate(RedChannelClient *rcc)
&payload);
}
static void red_dispatcher_set_cursor_peer(RedChannel *channel, RedClient *client, RedsStream *stream,
int migration, int num_common_caps,
uint32_t *common_caps, int num_caps,
uint32_t *caps)
static void red_qxl_set_cursor_peer(RedChannel *channel, RedClient *client, RedsStream *stream,
int migration, int num_common_caps,
uint32_t *common_caps, int num_caps,
uint32_t *caps)
{
RedWorkerMessageCursorConnect payload = {0,};
RedDispatcher *dispatcher = (RedDispatcher *)channel->data;
@ -153,7 +153,7 @@ static void red_dispatcher_set_cursor_peer(RedChannel *channel, RedClient *clien
&payload);
}
static void red_dispatcher_disconnect_cursor_peer(RedChannelClient *rcc)
static void red_qxl_disconnect_cursor_peer(RedChannelClient *rcc)
{
RedWorkerMessageCursorDisconnect payload;
RedDispatcher *dispatcher;
@ -171,7 +171,7 @@ static void red_dispatcher_disconnect_cursor_peer(RedChannelClient *rcc)
&payload);
}
static void red_dispatcher_cursor_migrate(RedChannelClient *rcc)
static void red_qxl_cursor_migrate(RedChannelClient *rcc)
{
RedWorkerMessageCursorMigrate payload;
RedDispatcher *dispatcher;
@ -187,9 +187,9 @@ static void red_dispatcher_cursor_migrate(RedChannelClient *rcc)
&payload);
}
static void red_dispatcher_update_area(RedDispatcher *dispatcher, uint32_t surface_id,
QXLRect *qxl_area, QXLRect *qxl_dirty_rects,
uint32_t num_dirty_rects, uint32_t clear_dirty_region)
static void red_qxl_update_area(RedDispatcher *dispatcher, uint32_t surface_id,
QXLRect *qxl_area, QXLRect *qxl_dirty_rects,
uint32_t num_dirty_rects, uint32_t clear_dirty_region)
{
RedWorkerMessageUpdate payload = {0,};
@ -203,15 +203,15 @@ static void red_dispatcher_update_area(RedDispatcher *dispatcher, uint32_t surfa
&payload);
}
gboolean red_dispatcher_use_client_monitors_config(RedDispatcher *dispatcher)
gboolean red_qxl_use_client_monitors_config(RedDispatcher *dispatcher)
{
return (red_dispatcher_check_qxl_version(dispatcher, 3, 3) &&
return (red_qxl_check_qxl_version(dispatcher, 3, 3) &&
dispatcher->qxl->st->qif->client_monitors_config &&
dispatcher->qxl->st->qif->client_monitors_config(dispatcher->qxl, NULL));
}
gboolean red_dispatcher_client_monitors_config(RedDispatcher *dispatcher,
VDAgentMonitorsConfig *monitors_config)
gboolean red_qxl_client_monitors_config(RedDispatcher *dispatcher,
VDAgentMonitorsConfig *monitors_config)
{
return (dispatcher->qxl->st->qif->client_monitors_config &&
dispatcher->qxl->st->qif->client_monitors_config(dispatcher->qxl,
@ -231,11 +231,11 @@ static AsyncCommand *async_command_alloc(RedDispatcher *dispatcher,
return async_command;
}
static void red_dispatcher_update_area_async(RedDispatcher *dispatcher,
uint32_t surface_id,
QXLRect *qxl_area,
uint32_t clear_dirty_region,
uint64_t cookie)
static void red_qxl_update_area_async(RedDispatcher *dispatcher,
uint32_t surface_id,
QXLRect *qxl_area,
uint32_t clear_dirty_region,
uint64_t cookie)
{
RedWorkerMessage message = RED_WORKER_MESSAGE_UPDATE_ASYNC;
RedWorkerMessageUpdateAsync payload;
@ -253,11 +253,11 @@ static void qxl_worker_update_area(QXLWorker *qxl_worker, uint32_t surface_id,
QXLRect *qxl_area, QXLRect *qxl_dirty_rects,
uint32_t num_dirty_rects, uint32_t clear_dirty_region)
{
red_dispatcher_update_area((RedDispatcher*)qxl_worker, surface_id, qxl_area,
qxl_dirty_rects, num_dirty_rects, clear_dirty_region);
red_qxl_update_area((RedDispatcher*)qxl_worker, surface_id, qxl_area,
qxl_dirty_rects, num_dirty_rects, clear_dirty_region);
}
static void red_dispatcher_add_memslot(RedDispatcher *dispatcher, QXLDevMemSlot *mem_slot)
static void red_qxl_add_memslot(RedDispatcher *dispatcher, QXLDevMemSlot *mem_slot)
{
RedWorkerMessageAddMemslot payload;
@ -269,10 +269,10 @@ static void red_dispatcher_add_memslot(RedDispatcher *dispatcher, QXLDevMemSlot
static void qxl_worker_add_memslot(QXLWorker *qxl_worker, QXLDevMemSlot *mem_slot)
{
red_dispatcher_add_memslot((RedDispatcher*)qxl_worker, mem_slot);
red_qxl_add_memslot((RedDispatcher*)qxl_worker, mem_slot);
}
static void red_dispatcher_add_memslot_async(RedDispatcher *dispatcher, QXLDevMemSlot *mem_slot, uint64_t cookie)
static void red_qxl_add_memslot_async(RedDispatcher *dispatcher, QXLDevMemSlot *mem_slot, uint64_t cookie)
{
RedWorkerMessageAddMemslotAsync payload;
RedWorkerMessage message = RED_WORKER_MESSAGE_ADD_MEMSLOT_ASYNC;
@ -282,7 +282,7 @@ static void red_dispatcher_add_memslot_async(RedDispatcher *dispatcher, QXLDevMe
dispatcher_send_message(&dispatcher->dispatcher, message, &payload);
}
static void red_dispatcher_del_memslot(RedDispatcher *dispatcher, uint32_t slot_group_id, uint32_t slot_id)
static void red_qxl_del_memslot(RedDispatcher *dispatcher, uint32_t slot_group_id, uint32_t slot_id)
{
RedWorkerMessageDelMemslot payload;
RedWorkerMessage message = RED_WORKER_MESSAGE_DEL_MEMSLOT;
@ -294,10 +294,10 @@ static void red_dispatcher_del_memslot(RedDispatcher *dispatcher, uint32_t slot_
static void qxl_worker_del_memslot(QXLWorker *qxl_worker, uint32_t slot_group_id, uint32_t slot_id)
{
red_dispatcher_del_memslot((RedDispatcher*)qxl_worker, slot_group_id, slot_id);
red_qxl_del_memslot((RedDispatcher*)qxl_worker, slot_group_id, slot_id);
}
static void red_dispatcher_destroy_surfaces(RedDispatcher *dispatcher)
static void red_qxl_destroy_surfaces(RedDispatcher *dispatcher)
{
RedWorkerMessageDestroySurfaces payload;
@ -308,10 +308,10 @@ static void red_dispatcher_destroy_surfaces(RedDispatcher *dispatcher)
static void qxl_worker_destroy_surfaces(QXLWorker *qxl_worker)
{
red_dispatcher_destroy_surfaces((RedDispatcher*)qxl_worker);
red_qxl_destroy_surfaces((RedDispatcher*)qxl_worker);
}
static void red_dispatcher_destroy_surfaces_async(RedDispatcher *dispatcher, uint64_t cookie)
static void red_qxl_destroy_surfaces_async(RedDispatcher *dispatcher, uint64_t cookie)
{
RedWorkerMessageDestroySurfacesAsync payload;
RedWorkerMessage message = RED_WORKER_MESSAGE_DESTROY_SURFACES_ASYNC;
@ -320,7 +320,7 @@ static void red_dispatcher_destroy_surfaces_async(RedDispatcher *dispatcher, uin
dispatcher_send_message(&dispatcher->dispatcher, message, &payload);
}
static void red_dispatcher_destroy_primary_surface_complete(RedDispatcher *dispatcher)
static void red_qxl_destroy_primary_surface_complete(RedDispatcher *dispatcher)
{
dispatcher->x_res = 0;
dispatcher->y_res = 0;
@ -331,20 +331,20 @@ static void red_dispatcher_destroy_primary_surface_complete(RedDispatcher *dispa
}
static void
red_dispatcher_destroy_primary_surface_sync(RedDispatcher *dispatcher,
uint32_t surface_id)
red_qxl_destroy_primary_surface_sync(RedDispatcher *dispatcher,
uint32_t surface_id)
{
RedWorkerMessageDestroyPrimarySurface payload;
payload.surface_id = surface_id;
dispatcher_send_message(&dispatcher->dispatcher,
RED_WORKER_MESSAGE_DESTROY_PRIMARY_SURFACE,
&payload);
red_dispatcher_destroy_primary_surface_complete(dispatcher);
red_qxl_destroy_primary_surface_complete(dispatcher);
}
static void
red_dispatcher_destroy_primary_surface_async(RedDispatcher *dispatcher,
uint32_t surface_id, uint64_t cookie)
red_qxl_destroy_primary_surface_async(RedDispatcher *dispatcher,
uint32_t surface_id, uint64_t cookie)
{
RedWorkerMessageDestroyPrimarySurfaceAsync payload;
RedWorkerMessage message = RED_WORKER_MESSAGE_DESTROY_PRIMARY_SURFACE_ASYNC;
@ -355,22 +355,22 @@ red_dispatcher_destroy_primary_surface_async(RedDispatcher *dispatcher,
}
static void
red_dispatcher_destroy_primary_surface(RedDispatcher *dispatcher,
uint32_t surface_id, int async, uint64_t cookie)
red_qxl_destroy_primary_surface(RedDispatcher *dispatcher,
uint32_t surface_id, int async, uint64_t cookie)
{
if (async) {
red_dispatcher_destroy_primary_surface_async(dispatcher, surface_id, cookie);
red_qxl_destroy_primary_surface_async(dispatcher, surface_id, cookie);
} else {
red_dispatcher_destroy_primary_surface_sync(dispatcher, surface_id);
red_qxl_destroy_primary_surface_sync(dispatcher, surface_id);
}
}
static void qxl_worker_destroy_primary_surface(QXLWorker *qxl_worker, uint32_t surface_id)
{
red_dispatcher_destroy_primary_surface((RedDispatcher*)qxl_worker, surface_id, 0, 0);
red_qxl_destroy_primary_surface((RedDispatcher*)qxl_worker, surface_id, 0, 0);
}
static void red_dispatcher_create_primary_surface_complete(RedDispatcher *dispatcher)
static void red_qxl_create_primary_surface_complete(RedDispatcher *dispatcher)
{
QXLDevSurfaceCreate *surface = &dispatcher->surface_create;
@ -384,8 +384,8 @@ static void red_dispatcher_create_primary_surface_complete(RedDispatcher *dispat
}
static void
red_dispatcher_create_primary_surface_async(RedDispatcher *dispatcher, uint32_t surface_id,
QXLDevSurfaceCreate *surface, uint64_t cookie)
red_qxl_create_primary_surface_async(RedDispatcher *dispatcher, uint32_t surface_id,
QXLDevSurfaceCreate *surface, uint64_t cookie)
{
RedWorkerMessageCreatePrimarySurfaceAsync payload;
RedWorkerMessage message = RED_WORKER_MESSAGE_CREATE_PRIMARY_SURFACE_ASYNC;
@ -398,8 +398,8 @@ red_dispatcher_create_primary_surface_async(RedDispatcher *dispatcher, uint32_t
}
static void
red_dispatcher_create_primary_surface_sync(RedDispatcher *dispatcher, uint32_t surface_id,
QXLDevSurfaceCreate *surface)
red_qxl_create_primary_surface_sync(RedDispatcher *dispatcher, uint32_t surface_id,
QXLDevSurfaceCreate *surface)
{
RedWorkerMessageCreatePrimarySurface payload = {0,};
@ -409,27 +409,27 @@ red_dispatcher_create_primary_surface_sync(RedDispatcher *dispatcher, uint32_t s
dispatcher_send_message(&dispatcher->dispatcher,
RED_WORKER_MESSAGE_CREATE_PRIMARY_SURFACE,
&payload);
red_dispatcher_create_primary_surface_complete(dispatcher);
red_qxl_create_primary_surface_complete(dispatcher);
}
static void
red_dispatcher_create_primary_surface(RedDispatcher *dispatcher, uint32_t surface_id,
QXLDevSurfaceCreate *surface, int async, uint64_t cookie)
red_qxl_create_primary_surface(RedDispatcher *dispatcher, uint32_t surface_id,
QXLDevSurfaceCreate *surface, int async, uint64_t cookie)
{
if (async) {
red_dispatcher_create_primary_surface_async(dispatcher, surface_id, surface, cookie);
red_qxl_create_primary_surface_async(dispatcher, surface_id, surface, cookie);
} else {
red_dispatcher_create_primary_surface_sync(dispatcher, surface_id, surface);
red_qxl_create_primary_surface_sync(dispatcher, surface_id, surface);
}
}
static void qxl_worker_create_primary_surface(QXLWorker *qxl_worker, uint32_t surface_id,
QXLDevSurfaceCreate *surface)
{
red_dispatcher_create_primary_surface((RedDispatcher*)qxl_worker, surface_id, surface, 0, 0);
red_qxl_create_primary_surface((RedDispatcher*)qxl_worker, surface_id, surface, 0, 0);
}
static void red_dispatcher_reset_image_cache(RedDispatcher *dispatcher)
static void red_qxl_reset_image_cache(RedDispatcher *dispatcher)
{
RedWorkerMessageResetImageCache payload;
@ -440,10 +440,10 @@ static void red_dispatcher_reset_image_cache(RedDispatcher *dispatcher)
static void qxl_worker_reset_image_cache(QXLWorker *qxl_worker)
{
red_dispatcher_reset_image_cache((RedDispatcher*)qxl_worker);
red_qxl_reset_image_cache((RedDispatcher*)qxl_worker);
}
static void red_dispatcher_reset_cursor(RedDispatcher *dispatcher)
static void red_qxl_reset_cursor(RedDispatcher *dispatcher)
{
RedWorkerMessageResetCursor payload;
@ -454,11 +454,11 @@ static void red_dispatcher_reset_cursor(RedDispatcher *dispatcher)
static void qxl_worker_reset_cursor(QXLWorker *qxl_worker)
{
red_dispatcher_reset_cursor((RedDispatcher*)qxl_worker);
red_qxl_reset_cursor((RedDispatcher*)qxl_worker);
}
static void red_dispatcher_destroy_surface_wait_sync(RedDispatcher *dispatcher,
uint32_t surface_id)
static void red_qxl_destroy_surface_wait_sync(RedDispatcher *dispatcher,
uint32_t surface_id)
{
RedWorkerMessageDestroySurfaceWait payload;
@ -468,9 +468,9 @@ static void red_dispatcher_destroy_surface_wait_sync(RedDispatcher *dispatcher,
&payload);
}
static void red_dispatcher_destroy_surface_wait_async(RedDispatcher *dispatcher,
uint32_t surface_id,
uint64_t cookie)
static void red_qxl_destroy_surface_wait_async(RedDispatcher *dispatcher,
uint32_t surface_id,
uint64_t cookie)
{
RedWorkerMessageDestroySurfaceWaitAsync payload;
RedWorkerMessage message = RED_WORKER_MESSAGE_DESTROY_SURFACE_WAIT_ASYNC;
@ -480,23 +480,23 @@ static void red_dispatcher_destroy_surface_wait_async(RedDispatcher *dispatcher,
dispatcher_send_message(&dispatcher->dispatcher, message, &payload);
}
static void red_dispatcher_destroy_surface_wait(RedDispatcher *dispatcher,
uint32_t surface_id,
int async, uint64_t cookie)
static void red_qxl_destroy_surface_wait(RedDispatcher *dispatcher,
uint32_t surface_id,
int async, uint64_t cookie)
{
if (async) {
red_dispatcher_destroy_surface_wait_async(dispatcher, surface_id, cookie);
red_qxl_destroy_surface_wait_async(dispatcher, surface_id, cookie);
} else {
red_dispatcher_destroy_surface_wait_sync(dispatcher, surface_id);
red_qxl_destroy_surface_wait_sync(dispatcher, surface_id);
}
}
static void qxl_worker_destroy_surface_wait(QXLWorker *qxl_worker, uint32_t surface_id)
{
red_dispatcher_destroy_surface_wait((RedDispatcher*)qxl_worker, surface_id, 0, 0);
red_qxl_destroy_surface_wait((RedDispatcher*)qxl_worker, surface_id, 0, 0);
}
static void red_dispatcher_reset_memslots(RedDispatcher *dispatcher)
static void red_qxl_reset_memslots(RedDispatcher *dispatcher)
{
RedWorkerMessageResetMemslots payload;
@ -507,10 +507,10 @@ static void red_dispatcher_reset_memslots(RedDispatcher *dispatcher)
static void qxl_worker_reset_memslots(QXLWorker *qxl_worker)
{
red_dispatcher_reset_memslots((RedDispatcher*)qxl_worker);
red_qxl_reset_memslots((RedDispatcher*)qxl_worker);
}
static bool red_dispatcher_set_pending(RedDispatcher *dispatcher, int pending)
static bool red_qxl_set_pending(RedDispatcher *dispatcher, int pending)
{
// this is not atomic but is not an issue
if (test_bit(pending, dispatcher->pending)) {
@ -521,11 +521,11 @@ static bool red_dispatcher_set_pending(RedDispatcher *dispatcher, int pending)
return FALSE;
}
static void red_dispatcher_wakeup(RedDispatcher *dispatcher)
static void red_qxl_wakeup(RedDispatcher *dispatcher)
{
RedWorkerMessageWakeup payload;
if (red_dispatcher_set_pending(dispatcher, RED_DISPATCHER_PENDING_WAKEUP))
if (red_qxl_set_pending(dispatcher, RED_DISPATCHER_PENDING_WAKEUP))
return;
dispatcher_send_message(&dispatcher->dispatcher,
@ -535,14 +535,14 @@ static void red_dispatcher_wakeup(RedDispatcher *dispatcher)
static void qxl_worker_wakeup(QXLWorker *qxl_worker)
{
red_dispatcher_wakeup((RedDispatcher*)qxl_worker);
red_qxl_wakeup((RedDispatcher*)qxl_worker);
}
static void red_dispatcher_oom(RedDispatcher *dispatcher)
static void red_qxl_oom(RedDispatcher *dispatcher)
{
RedWorkerMessageOom payload;
if (red_dispatcher_set_pending(dispatcher, RED_DISPATCHER_PENDING_OOM))
if (red_qxl_set_pending(dispatcher, RED_DISPATCHER_PENDING_OOM))
return;
dispatcher_send_message(&dispatcher->dispatcher,
@ -552,10 +552,10 @@ static void red_dispatcher_oom(RedDispatcher *dispatcher)
static void qxl_worker_oom(QXLWorker *qxl_worker)
{
red_dispatcher_oom((RedDispatcher*)qxl_worker);
red_qxl_oom((RedDispatcher*)qxl_worker);
}
void red_dispatcher_start(RedDispatcher *dispatcher)
void red_qxl_start(RedDispatcher *dispatcher)
{
RedWorkerMessageStart payload;
@ -566,10 +566,10 @@ void red_dispatcher_start(RedDispatcher *dispatcher)
static void qxl_worker_start(QXLWorker *qxl_worker)
{
red_dispatcher_start((RedDispatcher*)qxl_worker);
red_qxl_start((RedDispatcher*)qxl_worker);
}
static void red_dispatcher_flush_surfaces_async(RedDispatcher *dispatcher, uint64_t cookie)
static void red_qxl_flush_surfaces_async(RedDispatcher *dispatcher, uint64_t cookie)
{
RedWorkerMessageFlushSurfacesAsync payload;
RedWorkerMessage message = RED_WORKER_MESSAGE_FLUSH_SURFACES_ASYNC;
@ -578,10 +578,10 @@ static void red_dispatcher_flush_surfaces_async(RedDispatcher *dispatcher, uint6
dispatcher_send_message(&dispatcher->dispatcher, message, &payload);
}
static void red_dispatcher_monitors_config_async(RedDispatcher *dispatcher,
QXLPHYSICAL monitors_config,
int group_id,
uint64_t cookie)
static void red_qxl_monitors_config_async(RedDispatcher *dispatcher,
QXLPHYSICAL monitors_config,
int group_id,
uint64_t cookie)
{
RedWorkerMessageMonitorsConfigAsync payload;
RedWorkerMessage message = RED_WORKER_MESSAGE_MONITORS_CONFIG_ASYNC;
@ -594,7 +594,7 @@ static void red_dispatcher_monitors_config_async(RedDispatcher *dispatcher,
dispatcher_send_message(&dispatcher->dispatcher, message, &payload);
}
static void red_dispatcher_driver_unload(RedDispatcher *dispatcher)
static void red_qxl_driver_unload(RedDispatcher *dispatcher)
{
RedWorkerMessageDriverUnload payload;
@ -603,7 +603,7 @@ static void red_dispatcher_driver_unload(RedDispatcher *dispatcher)
&payload);
}
void red_dispatcher_stop(RedDispatcher *dispatcher)
void red_qxl_stop(RedDispatcher *dispatcher)
{
RedWorkerMessageStop payload;
@ -614,12 +614,12 @@ void red_dispatcher_stop(RedDispatcher *dispatcher)
static void qxl_worker_stop(QXLWorker *qxl_worker)
{
red_dispatcher_stop((RedDispatcher*)qxl_worker);
red_qxl_stop((RedDispatcher*)qxl_worker);
}
static void red_dispatcher_loadvm_commands(RedDispatcher *dispatcher,
struct QXLCommandExt *ext,
uint32_t count)
static void red_qxl_loadvm_commands(RedDispatcher *dispatcher,
struct QXLCommandExt *ext,
uint32_t count)
{
RedWorkerMessageLoadvmCommands payload;
@ -635,26 +635,26 @@ static void qxl_worker_loadvm_commands(QXLWorker *qxl_worker,
struct QXLCommandExt *ext,
uint32_t count)
{
red_dispatcher_loadvm_commands((RedDispatcher*)qxl_worker, ext, count);
red_qxl_loadvm_commands((RedDispatcher*)qxl_worker, ext, count);
}
void red_dispatcher_set_mm_time(RedDispatcher *dispatcher, uint32_t mm_time)
void red_qxl_set_mm_time(RedDispatcher *dispatcher, uint32_t mm_time)
{
dispatcher->qxl->st->qif->set_mm_time(dispatcher->qxl, mm_time);
}
void red_dispatcher_attach_worker(RedDispatcher *dispatcher)
void red_qxl_attach_worker(RedDispatcher *dispatcher)
{
QXLInstance *qxl = dispatcher->qxl;
qxl->st->qif->attache_worker(qxl, &dispatcher->base);
}
void red_dispatcher_set_compression_level(RedDispatcher *dispatcher, int level)
void red_qxl_set_compression_level(RedDispatcher *dispatcher, int level)
{
dispatcher->qxl->st->qif->set_compression_level(dispatcher->qxl, level);
}
uint32_t red_dispatcher_qxl_ram_size(RedDispatcher *dispatcher)
uint32_t red_qxl_get_ram_size(RedDispatcher *dispatcher)
{
QXLDevInitInfo qxl_info;
dispatcher->qxl->st->qif->get_init_info(dispatcher->qxl, &qxl_info);
@ -664,25 +664,25 @@ uint32_t red_dispatcher_qxl_ram_size(RedDispatcher *dispatcher)
SPICE_GNUC_VISIBLE
void spice_qxl_wakeup(QXLInstance *instance)
{
red_dispatcher_wakeup(instance->st->dispatcher);
red_qxl_wakeup(instance->st->dispatcher);
}
SPICE_GNUC_VISIBLE
void spice_qxl_oom(QXLInstance *instance)
{
red_dispatcher_oom(instance->st->dispatcher);
red_qxl_oom(instance->st->dispatcher);
}
SPICE_GNUC_VISIBLE
void spice_qxl_start(QXLInstance *instance)
{
red_dispatcher_start(instance->st->dispatcher);
red_qxl_start(instance->st->dispatcher);
}
SPICE_GNUC_VISIBLE
void spice_qxl_stop(QXLInstance *instance)
{
red_dispatcher_stop(instance->st->dispatcher);
red_qxl_stop(instance->st->dispatcher);
}
SPICE_GNUC_VISIBLE
@ -690,121 +690,121 @@ void spice_qxl_update_area(QXLInstance *instance, uint32_t surface_id,
struct QXLRect *area, struct QXLRect *dirty_rects,
uint32_t num_dirty_rects, uint32_t clear_dirty_region)
{
red_dispatcher_update_area(instance->st->dispatcher, surface_id, area, dirty_rects,
num_dirty_rects, clear_dirty_region);
red_qxl_update_area(instance->st->dispatcher, surface_id, area, dirty_rects,
num_dirty_rects, clear_dirty_region);
}
SPICE_GNUC_VISIBLE
void spice_qxl_add_memslot(QXLInstance *instance, QXLDevMemSlot *slot)
{
red_dispatcher_add_memslot(instance->st->dispatcher, slot);
red_qxl_add_memslot(instance->st->dispatcher, slot);
}
SPICE_GNUC_VISIBLE
void spice_qxl_del_memslot(QXLInstance *instance, uint32_t slot_group_id, uint32_t slot_id)
{
red_dispatcher_del_memslot(instance->st->dispatcher, slot_group_id, slot_id);
red_qxl_del_memslot(instance->st->dispatcher, slot_group_id, slot_id);
}
SPICE_GNUC_VISIBLE
void spice_qxl_reset_memslots(QXLInstance *instance)
{
red_dispatcher_reset_memslots(instance->st->dispatcher);
red_qxl_reset_memslots(instance->st->dispatcher);
}
SPICE_GNUC_VISIBLE
void spice_qxl_destroy_surfaces(QXLInstance *instance)
{
red_dispatcher_destroy_surfaces(instance->st->dispatcher);
red_qxl_destroy_surfaces(instance->st->dispatcher);
}
SPICE_GNUC_VISIBLE
void spice_qxl_destroy_primary_surface(QXLInstance *instance, uint32_t surface_id)
{
red_dispatcher_destroy_primary_surface(instance->st->dispatcher, surface_id, 0, 0);
red_qxl_destroy_primary_surface(instance->st->dispatcher, surface_id, 0, 0);
}
SPICE_GNUC_VISIBLE
void spice_qxl_create_primary_surface(QXLInstance *instance, uint32_t surface_id,
QXLDevSurfaceCreate *surface)
{
red_dispatcher_create_primary_surface(instance->st->dispatcher, surface_id, surface, 0, 0);
red_qxl_create_primary_surface(instance->st->dispatcher, surface_id, surface, 0, 0);
}
SPICE_GNUC_VISIBLE
void spice_qxl_reset_image_cache(QXLInstance *instance)
{
red_dispatcher_reset_image_cache(instance->st->dispatcher);
red_qxl_reset_image_cache(instance->st->dispatcher);
}
SPICE_GNUC_VISIBLE
void spice_qxl_reset_cursor(QXLInstance *instance)
{
red_dispatcher_reset_cursor(instance->st->dispatcher);
red_qxl_reset_cursor(instance->st->dispatcher);
}
SPICE_GNUC_VISIBLE
void spice_qxl_destroy_surface_wait(QXLInstance *instance, uint32_t surface_id)
{
red_dispatcher_destroy_surface_wait(instance->st->dispatcher, surface_id, 0, 0);
red_qxl_destroy_surface_wait(instance->st->dispatcher, surface_id, 0, 0);
}
SPICE_GNUC_VISIBLE
void spice_qxl_loadvm_commands(QXLInstance *instance, struct QXLCommandExt *ext, uint32_t count)
{
red_dispatcher_loadvm_commands(instance->st->dispatcher, ext, count);
red_qxl_loadvm_commands(instance->st->dispatcher, ext, count);
}
SPICE_GNUC_VISIBLE
void spice_qxl_update_area_async(QXLInstance *instance, uint32_t surface_id, QXLRect *qxl_area,
uint32_t clear_dirty_region, uint64_t cookie)
{
red_dispatcher_update_area_async(instance->st->dispatcher, surface_id, qxl_area,
red_qxl_update_area_async(instance->st->dispatcher, surface_id, qxl_area,
clear_dirty_region, cookie);
}
SPICE_GNUC_VISIBLE
void spice_qxl_add_memslot_async(QXLInstance *instance, QXLDevMemSlot *slot, uint64_t cookie)
{
red_dispatcher_add_memslot_async(instance->st->dispatcher, slot, cookie);
red_qxl_add_memslot_async(instance->st->dispatcher, slot, cookie);
}
SPICE_GNUC_VISIBLE
void spice_qxl_destroy_surfaces_async(QXLInstance *instance, uint64_t cookie)
{
red_dispatcher_destroy_surfaces_async(instance->st->dispatcher, cookie);
red_qxl_destroy_surfaces_async(instance->st->dispatcher, cookie);
}
SPICE_GNUC_VISIBLE
void spice_qxl_destroy_primary_surface_async(QXLInstance *instance, uint32_t surface_id, uint64_t cookie)
{
red_dispatcher_destroy_primary_surface(instance->st->dispatcher, surface_id, 1, cookie);
red_qxl_destroy_primary_surface(instance->st->dispatcher, surface_id, 1, cookie);
}
SPICE_GNUC_VISIBLE
void spice_qxl_create_primary_surface_async(QXLInstance *instance, uint32_t surface_id,
QXLDevSurfaceCreate *surface, uint64_t cookie)
{
red_dispatcher_create_primary_surface(instance->st->dispatcher, surface_id, surface, 1, cookie);
red_qxl_create_primary_surface(instance->st->dispatcher, surface_id, surface, 1, cookie);
}
SPICE_GNUC_VISIBLE
void spice_qxl_destroy_surface_async(QXLInstance *instance, uint32_t surface_id, uint64_t cookie)
{
red_dispatcher_destroy_surface_wait(instance->st->dispatcher, surface_id, 1, cookie);
red_qxl_destroy_surface_wait(instance->st->dispatcher, surface_id, 1, cookie);
}
SPICE_GNUC_VISIBLE
void spice_qxl_flush_surfaces_async(QXLInstance *instance, uint64_t cookie)
{
red_dispatcher_flush_surfaces_async(instance->st->dispatcher, cookie);
red_qxl_flush_surfaces_async(instance->st->dispatcher, cookie);
}
SPICE_GNUC_VISIBLE
void spice_qxl_monitors_config_async(QXLInstance *instance, QXLPHYSICAL monitors_config,
int group_id, uint64_t cookie)
{
red_dispatcher_monitors_config_async(instance->st->dispatcher, monitors_config, group_id, cookie);
red_qxl_monitors_config_async(instance->st->dispatcher, monitors_config, group_id, cookie);
}
SPICE_GNUC_VISIBLE
@ -816,7 +816,7 @@ void spice_qxl_set_max_monitors(QXLInstance *instance, unsigned int max_monitors
SPICE_GNUC_VISIBLE
void spice_qxl_driver_unload(QXLInstance *instance)
{
red_dispatcher_driver_unload(instance->st->dispatcher);
red_qxl_driver_unload(instance->st->dispatcher);
}
SPICE_GNUC_VISIBLE
@ -875,8 +875,8 @@ void spice_qxl_gl_draw_async(QXLInstance *qxl,
dispatcher_send_message(&dispatcher->dispatcher, message, &draw);
}
void red_dispatcher_async_complete(struct RedDispatcher *dispatcher,
AsyncCommand *async_command)
void red_qxl_async_complete(struct RedDispatcher *dispatcher,
AsyncCommand *async_command)
{
spice_debug("%p: cookie %" PRId64, async_command, async_command->cookie);
switch (async_command->message) {
@ -889,10 +889,10 @@ void red_dispatcher_async_complete(struct RedDispatcher *dispatcher,
case RED_WORKER_MESSAGE_GL_DRAW_ASYNC:
break;
case RED_WORKER_MESSAGE_CREATE_PRIMARY_SURFACE_ASYNC:
red_dispatcher_create_primary_surface_complete(dispatcher);
red_qxl_create_primary_surface_complete(dispatcher);
break;
case RED_WORKER_MESSAGE_DESTROY_PRIMARY_SURFACE_ASYNC:
red_dispatcher_destroy_primary_surface_complete(dispatcher);
red_qxl_destroy_primary_surface_complete(dispatcher);
break;
default:
spice_warning("unexpected message %d", async_command->message);
@ -902,7 +902,7 @@ void red_dispatcher_async_complete(struct RedDispatcher *dispatcher,
free(async_command);
}
void red_dispatcher_init(QXLInstance *qxl)
void red_qxl_init(QXLInstance *qxl)
{
RedDispatcher *red_dispatcher;
RedChannel *channel;
@ -947,17 +947,17 @@ void red_dispatcher_init(QXLInstance *qxl)
// TODO: move to their respective channel files
channel = red_worker_get_cursor_channel(worker);
client_cbs.connect = red_dispatcher_set_cursor_peer;
client_cbs.disconnect = red_dispatcher_disconnect_cursor_peer;
client_cbs.migrate = red_dispatcher_cursor_migrate;
client_cbs.connect = red_qxl_set_cursor_peer;
client_cbs.disconnect = red_qxl_disconnect_cursor_peer;
client_cbs.migrate = red_qxl_cursor_migrate;
red_channel_register_client_cbs(channel, &client_cbs);
red_channel_set_data(channel, red_dispatcher);
reds_register_channel(reds, channel);
channel = red_worker_get_display_channel(worker);
client_cbs.connect = red_dispatcher_set_display_peer;
client_cbs.disconnect = red_dispatcher_disconnect_display_peer;
client_cbs.migrate = red_dispatcher_display_migrate;
client_cbs.connect = red_qxl_set_display_peer;
client_cbs.disconnect = red_qxl_disconnect_display_peer;
client_cbs.migrate = red_qxl_display_migrate;
red_channel_register_client_cbs(channel, &client_cbs);
red_channel_set_data(channel, red_dispatcher);
red_channel_set_cap(channel, SPICE_DISPLAY_CAP_MONITORS_CONFIG);
@ -970,30 +970,30 @@ void red_dispatcher_init(QXLInstance *qxl)
qxl->st->dispatcher = red_dispatcher;
}
struct Dispatcher *red_dispatcher_get_dispatcher(RedDispatcher *red_dispatcher)
struct Dispatcher *red_qxl_get_dispatcher(RedDispatcher *red_dispatcher)
{
return &red_dispatcher->dispatcher;
}
void red_dispatcher_set_dispatcher_opaque(RedDispatcher *red_dispatcher,
void *opaque)
void red_qxl_set_dispatcher_opaque(RedDispatcher *red_dispatcher,
void *opaque)
{
dispatcher_set_opaque(&red_dispatcher->dispatcher, opaque);
}
void red_dispatcher_clear_pending(RedDispatcher *red_dispatcher, int pending)
void red_qxl_clear_pending(RedDispatcher *red_dispatcher, int pending)
{
spice_return_if_fail(red_dispatcher != NULL);
clear_bit(pending, &red_dispatcher->pending);
}
gboolean red_dispatcher_get_primary_active(RedDispatcher *dispatcher)
gboolean red_qxl_get_primary_active(RedDispatcher *dispatcher)
{
return dispatcher->primary_active;
}
gboolean red_dispatcher_get_allow_client_mouse(RedDispatcher *dispatcher, gint *x_res, gint *y_res)
gboolean red_qxl_get_allow_client_mouse(RedDispatcher *dispatcher, gint *x_res, gint *y_res)
{
if (dispatcher->use_hardware_cursor) {
if (x_res)
@ -1004,7 +1004,7 @@ gboolean red_dispatcher_get_allow_client_mouse(RedDispatcher *dispatcher, gint *
return dispatcher->use_hardware_cursor;
}
void red_dispatcher_on_ic_change(RedDispatcher *dispatcher, SpiceImageCompression ic)
void red_qxl_on_ic_change(RedDispatcher *dispatcher, SpiceImageCompression ic)
{
RedWorkerMessageSetCompression payload;
payload.image_compression = ic;
@ -1013,7 +1013,7 @@ void red_dispatcher_on_ic_change(RedDispatcher *dispatcher, SpiceImageCompressio
&payload);
}
void red_dispatcher_on_sv_change(RedDispatcher *dispatcher, int sv)
void red_qxl_on_sv_change(RedDispatcher *dispatcher, int sv)
{
RedWorkerMessageSetStreamingVideo payload;
payload.streaming_video = sv;
@ -1022,7 +1022,7 @@ void red_dispatcher_on_sv_change(RedDispatcher *dispatcher, int sv)
&payload);
}
void red_dispatcher_set_mouse_mode(RedDispatcher *dispatcher, uint32_t mode)
void red_qxl_set_mouse_mode(RedDispatcher *dispatcher, uint32_t mode)
{
RedWorkerMessageSetMouseMode payload;
payload.mode = mode;

View File

@ -24,23 +24,23 @@ typedef struct RedDispatcher RedDispatcher;
typedef struct AsyncCommand AsyncCommand;
void red_dispatcher_init(QXLInstance *qxl);
void red_qxl_init(QXLInstance *qxl);
void red_dispatcher_set_mm_time(RedDispatcher *dispatcher, uint32_t);
void red_dispatcher_on_ic_change(RedDispatcher *dispatcher, SpiceImageCompression ic);
void red_dispatcher_on_sv_change(RedDispatcher *dispatcher, int sv);
void red_dispatcher_set_mouse_mode(RedDispatcher *dispatcher, uint32_t mode);
void red_dispatcher_attach_worker(RedDispatcher *dispatcher);
void red_dispatcher_set_compression_level(RedDispatcher *dispatcher, int level);
void red_dispatcher_stop(RedDispatcher *dispatcher);
void red_dispatcher_start(RedDispatcher *dispatcher);
uint32_t red_dispatcher_qxl_ram_size(RedDispatcher *dispatcher);
void red_dispatcher_async_complete(struct RedDispatcher *, AsyncCommand *);
struct Dispatcher *red_dispatcher_get_dispatcher(struct RedDispatcher *);
gboolean red_dispatcher_use_client_monitors_config(RedDispatcher *dispatcher);
gboolean red_dispatcher_client_monitors_config(RedDispatcher *dispatcher, VDAgentMonitorsConfig *monitors_config);
gboolean red_dispatcher_get_primary_active(RedDispatcher *dispatcher);
gboolean red_dispatcher_get_allow_client_mouse(RedDispatcher *dispatcher, gint *x_res, gint *y_res);
void red_qxl_set_mm_time(RedDispatcher *dispatcher, uint32_t);
void red_qxl_on_ic_change(RedDispatcher *dispatcher, SpiceImageCompression ic);
void red_qxl_on_sv_change(RedDispatcher *dispatcher, int sv);
void red_qxl_set_mouse_mode(RedDispatcher *dispatcher, uint32_t mode);
void red_qxl_attach_worker(RedDispatcher *dispatcher);
void red_qxl_set_compression_level(RedDispatcher *dispatcher, int level);
void red_qxl_stop(RedDispatcher *dispatcher);
void red_qxl_start(RedDispatcher *dispatcher);
uint32_t red_qxl_get_ram_size(RedDispatcher *dispatcher);
void red_qxl_async_complete(struct RedDispatcher *, AsyncCommand *);
struct Dispatcher *red_qxl_get_dispatcher(struct RedDispatcher *);
gboolean red_qxl_use_client_monitors_config(RedDispatcher *dispatcher);
gboolean red_qxl_client_monitors_config(RedDispatcher *dispatcher, VDAgentMonitorsConfig *monitors_config);
gboolean red_qxl_get_primary_active(RedDispatcher *dispatcher);
gboolean red_qxl_get_allow_client_mouse(RedDispatcher *dispatcher, gint *x_res, gint *y_res);
typedef uint32_t RedWorkerMessage;
@ -267,6 +267,6 @@ enum {
RED_DISPATCHER_PENDING_OOM,
};
void red_dispatcher_clear_pending(RedDispatcher *red_dispatcher, int pending);
void red_qxl_clear_pending(RedDispatcher *red_dispatcher, int pending);
#endif

View File

@ -823,7 +823,7 @@ static void handle_dev_wakeup(void *opaque, void *payload)
RedWorker *worker = opaque;
stat_inc_counter(reds, worker->wakeup_counter, 1);
red_dispatcher_clear_pending(worker->red_dispatcher, RED_DISPATCHER_PENDING_WAKEUP);
red_qxl_clear_pending(worker->red_dispatcher, RED_DISPATCHER_PENDING_WAKEUP);
}
static void handle_dev_oom(void *opaque, void *payload)
@ -853,7 +853,7 @@ static void handle_dev_oom(void *opaque, void *payload)
display->glz_drawable_count,
display->current_size,
red_channel_sum_pipes_size(display_red_channel));
red_dispatcher_clear_pending(worker->red_dispatcher, RED_DISPATCHER_PENDING_OOM);
red_qxl_clear_pending(worker->red_dispatcher, RED_DISPATCHER_PENDING_OOM);
}
static void handle_dev_reset_cursor(void *opaque, void *payload)
@ -1194,7 +1194,7 @@ static void worker_handle_dispatcher_async_done(void *opaque,
RedWorkerMessageAsync *msg_async = payload;
spice_debug(NULL);
red_dispatcher_async_complete(worker->red_dispatcher, msg_async->cmd);
red_qxl_async_complete(worker->red_dispatcher, msg_async->cmd);
}
static void worker_dispatcher_record(void *opaque, uint32_t message_type, void *payload)
@ -1487,7 +1487,7 @@ RedWorker* red_worker_new(QXLInstance *qxl, RedDispatcher *red_dispatcher)
spice_error("failed to write replay header");
}
}
dispatcher = red_dispatcher_get_dispatcher(red_dispatcher);
dispatcher = red_qxl_get_dispatcher(red_dispatcher);
dispatcher_set_opaque(dispatcher, worker);
worker->red_dispatcher = red_dispatcher;

View File

@ -571,7 +571,7 @@ static void reds_set_mouse_mode(RedsState *reds, uint32_t mode)
reds->mouse_mode = mode;
for (l = reds->dispatchers; l != NULL; l = l->next)
red_dispatcher_set_mouse_mode(l->data, mode);
red_qxl_set_mouse_mode(l->data, mode);
main_channel_push_mouse_mode(reds->main_channel, reds->mouse_mode, reds->is_client_mouse_allowed);
}
@ -3213,7 +3213,7 @@ SPICE_GNUC_VISIBLE int spice_server_add_interface(SpiceServer *s,
pthread_mutex_init(&qxl->st->scanout_mutex, NULL);
qxl->st->scanout.drm_dma_buf_fd = -1;
qxl->st->qif = SPICE_CONTAINEROF(interface, QXLInterface, base);
red_dispatcher_init(qxl);
red_qxl_init(qxl);
dispatcher = qxl->st->dispatcher;
reds->dispatchers = g_list_prepend(reds->dispatchers, dispatcher);
@ -3222,8 +3222,8 @@ SPICE_GNUC_VISIBLE int spice_server_add_interface(SpiceServer *s,
* this callback is called. This as clients assume they can start the
* dispatchers. Also note that this should be the first callback to
* be called. */
red_dispatcher_attach_worker(dispatcher);
red_dispatcher_set_compression_level(dispatcher, calc_compression_level(reds));
red_qxl_attach_worker(dispatcher);
red_qxl_set_compression_level(dispatcher, calc_compression_level(reds));
} else if (strcmp(interface->type, SPICE_INTERFACE_TABLET) == 0) {
SpiceTabletInstance *tablet = SPICE_CONTAINEROF(sin, SpiceTabletInstance, base);
spice_info("SPICE_INTERFACE_TABLET");
@ -4157,8 +4157,8 @@ void reds_update_client_mouse_allowed(RedsState *reds)
for (l = reds->dispatchers; l != NULL && allow_now; l = l->next) {
RedDispatcher *now = l->data;
if (red_dispatcher_get_primary_active(now)) {
allow_now = red_dispatcher_get_allow_client_mouse(now, &x_res, &y_res);
if (red_qxl_get_primary_active(now)) {
allow_now = red_qxl_get_allow_client_mouse(now, &x_res, &y_res);
break;
}
}
@ -4181,7 +4181,7 @@ gboolean reds_use_client_monitors_config(RedsState *reds)
for (l = reds->dispatchers; l != NULL ; l = l->next) {
RedDispatcher *now = l->data;
if (!red_dispatcher_use_client_monitors_config(now))
if (!red_qxl_use_client_monitors_config(now))
return FALSE;
}
return TRUE;
@ -4193,7 +4193,7 @@ void reds_client_monitors_config(RedsState *reds, VDAgentMonitorsConfig *monitor
for (l = reds->dispatchers; l != NULL; l = l->next) {
RedDispatcher *now = l->data;
if (!red_dispatcher_client_monitors_config(now, monitors_config)) {
if (!red_qxl_client_monitors_config(now, monitors_config)) {
/* this is a normal condition, some qemu devices might not implement it */
spice_debug("QXLInterface::client_monitors_config failed\n");
}
@ -4206,7 +4206,7 @@ void reds_set_mm_time(RedsState *reds, uint32_t mm_time)
for (l = reds->dispatchers; l != NULL; l = l->next) {
RedDispatcher *now = l->data;
red_dispatcher_set_mm_time(now, mm_time);
red_qxl_set_mm_time(now, mm_time);
}
}
@ -4229,8 +4229,8 @@ void reds_on_ic_change(RedsState *reds)
for (l = reds->dispatchers; l != NULL; l = l->next) {
RedDispatcher *d = l->data;
red_dispatcher_set_compression_level(d, compression_level);
red_dispatcher_on_ic_change(d, spice_server_get_image_compression(reds));
red_qxl_set_compression_level(d, compression_level);
red_qxl_on_ic_change(d, spice_server_get_image_compression(reds));
}
}
@ -4241,8 +4241,8 @@ void reds_on_sv_change(RedsState *reds)
for (l = reds->dispatchers; l != NULL; l = l->next) {
RedDispatcher *d = l->data;
red_dispatcher_set_compression_level(d, compression_level);
red_dispatcher_on_sv_change(d, reds_get_streaming_video(reds));
red_qxl_set_compression_level(d, compression_level);
red_qxl_on_sv_change(d, reds_get_streaming_video(reds));
}
}
@ -4251,7 +4251,7 @@ void reds_on_vm_stop(RedsState *reds)
GList *l;
for (l = reds->dispatchers; l != NULL; l = l->next)
red_dispatcher_stop(l->data);
red_qxl_stop(l->data);
}
void reds_on_vm_start(RedsState *reds)
@ -4259,7 +4259,7 @@ void reds_on_vm_start(RedsState *reds)
GList *l;
for (l = reds->dispatchers; l != NULL; l = l->next)
red_dispatcher_start(l->data);
red_qxl_start(l->data);
}
uint32_t reds_qxl_ram_size(RedsState *reds)
@ -4270,7 +4270,7 @@ uint32_t reds_qxl_ram_size(RedsState *reds)
}
first = reds->dispatchers->data;
return red_dispatcher_qxl_ram_size(first);
return red_qxl_get_ram_size(first);
}
MainDispatcher* reds_get_main_dispatcher(RedsState *reds)