--- a/server/spice.h
+++ b/server/spice.h
@@ -122,6 +122,16 @@ struct QXLWorker {
void (*reset_cursor)(QXLWorker *worker);
void (*destroy_surface_wait)(QXLWorker *worker, uint32_t surface_id);
void (*loadvm_commands)(QXLWorker *worker, struct QXLCommandExt *ext,
uint32_t count);
+ /* async versions of commands. when complete spice calls async_complete */
+ void (*update_area_async)(QXLWorker *qxl_worker, uint32_t surface_id,
+ struct QXLRect *area, uint32_t clear_dirty_region,
+ uint64_t cookie);
+ void (*add_memslot_async)(QXLWorker *worker, QXLDevMemSlot *slot, uint64_t
cookie);
+ void (*destroy_surfaces_async)(QXLWorker *worker, uint64_t cookie);
+ void (*destroy_primary_surface_async)(QXLWorker *worker, uint32_t
surface_id, uint64_t cookie);
+ void (*create_primary_surface_async)(QXLWorker *worker, uint32_t
surface_id,
+ QXLDevSurfaceCreate *surface, uint64_t
cookie);
+ void (*destroy_surface_wait_async)(QXLWorker *worker, uint32_t surface_id,
uint64_t cookie);
};
Is there any reason to go this indirect route through QXLWorker in the
first place (other than historical ones)? We can do this instead:
SPICE_GNUC_VISIBLE void
spice_qxl_update_area(QXLInstance *qxl, uint32_t surface_id,
QXLRect *qxl_area, QXLRect *qxl_dirty_rects,
uint32_t num_dirty_rects,
uint32_t clear_dirty_region)
{
qxl_worker_update_area(&qxl->st->dispatcher->base, surface_id,
qxl_area, qxl_dirty_rects,
num_dirty_rects, clear_dirty_region);
}
Then have qemu call spice_qxl_update_area() directly instead of
worker->update_area(). Likewise for all others. We obviously have to
keep the old indirect code path for the existing calls for compatibility
reasons.
I'd like to see all new calls go direct (and only direct). Having
direct calls for the old ones would be nice too.
This will (a) remove the pointless indirection and (b) make shared
library versioning alot easier as we'll get new linker symbols which we
can tag with the version they appeared in the shared library.
cheers,
Gerd
cheers,
Gerd
_______________________________________________
Spice-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/spice-devel