[Spice-devel] [PATCH] server: add async io support
Gerd Hoffmann
kraxel at redhat.com
Wed Jul 6 05:42:03 PDT 2011
Hi,
> diff --git a/server/spice.h b/server/spice.h
> index f64ff41..f0d5685 100644
> --- a/server/spice.h
> +++ b/server/spice.h
> @@ -122,6 +122,17 @@ 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, struct QXLRect *dirty_rects,
> + uint32_t num_dirty_rects, uint32_t clear_dirty_region);
> + void (*add_memslot_async)(QXLWorker *worker, QXLDevMemSlot *slot);
> + void (*destroy_surfaces_async)(QXLWorker *worker);
> + void (*destroy_primary_surface_async)(QXLWorker *worker, uint32_t surface_id);
> + void (*create_primary_surface_async)(QXLWorker *worker, uint32_t surface_id,
> + QXLDevSurfaceCreate *surface);
> + void (*destroy_surface_wait_async)(QXLWorker *worker, uint32_t surface_id);
> + void (*oom_async)(QXLWorker *worker);
I think it would be useful to pass in a magic cookie to the _async
functions ...
> + void (*async_complete)(QXLInstance *qin);
... which will be passed back here, to make it easier for the caller to
figure which async call was just finished? I'd suggest intptr_t or
uint64_t as type.
While we are busy updating the interface: can we please also add a
callback which is called by spice server each time it updates a surface
in qxl device memory?
Oh, and the minor version of the qxl interface must be updated too.
Likewise the minor version of the shared library.
cheers,
Gerd
More information about the Spice-devel
mailing list