summaryrefslogtreecommitdiffstats
path: root/server/spice.h
Commit message (Collapse)AuthorAgeFilesLines
* server/spice.h: semi-seamless migration interface, RHBZ #738266Yonit Halperin2011-09-251-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | semi-seamless migration details: migration source side --------------------- (1) spice_server_migrate_connect (*): tell client to link to the target side - send SPICE_MSG_MAIN_MIGRATE_BEGIN. This should be called upon client_migrate_info cmd. client_migrate_info is asynchronous. (2) Complete spice_server_migrate_connect only when the client has been connected to the target - wait for SPICE_MSGC_MAIN_MIGRATE_(CONNECTED|CONNECT_ERROR) or a timeout. (3) spice_server_migrate_end: tell client migration it can switch to the target - send SPICE_MSG_MAIN_MIGRATE_END. (4) client cleans up all data related to the connection to the source and switches to the target. It sends SPICE_MSGC_MAIN_MIGRATE_END. migration target side --------------------- (1) the server identifies itself as a migraiton target since the client is linked with (connection_id != 0) (2) server doesn't start the channels' logic (channel->link) till it receives SPICE_MSGC_MAIN_MIGRATE_END from the client. * After migration starts, the target qemu is blocked and cannot accept new spice client connections. Thus, we trigger the connection to the target upon client_migrate_info command.
* Release 0.8.20.8.2Alon Levy2011-07-221-1/+1
|
* server/spice.h: bump QXL_MINOR because of QXLWorker and QXLInterface changesAlon Levy2011-07-211-1/+1
| | | | (cherry picked from commit 3be08d68c01618c81e0dff6caab125a53b4c047e)
* server: add QXLWorker.flush_surfaces_async for S3/S4 supportAlon Levy2011-07-211-0/+2
| | | | | | | | | | | | This does the following, all to remove any referenced memory on the pci bars: flush_all_qxl_commands(worker); flush_all_surfaces(worker); red_wait_outgoing_item((RedChannel *)worker->display_channel); red_wait_outgoing_item((RedChannel *)worker->cursor_channel); The added api is specifically async, i.e. it calls async_complete when done. (cherry picked from commit 2a4d97fb780cf3ce2d9060751d0bec2fdc9800a9)
* server: add QXLInterface::update_area_complete callbackAlon Levy2011-07-211-0/+3
| | | | | | when update_area_async is called update_area_complete will be called with the surfaces dirty rectangle list. (cherry picked from commit b26f0532c170068e91e4946592eab2fd9d6cbae5)
* server: add async io supportAlon Levy2011-07-211-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new _ASYNC io's in qxl_dev listed at the end get six new api functions, and an additional callback function "async_complete". When the async version of a specific io is used, completion is notified by calling async_complete, and no READY message is written or expected by the dispatcher. update_area has been changed to push QXLRects to the worker thread, where the conversion to SpiceRect takes place. A cookie has been added to each async call to QXLWorker, and is passed back via async_complete. Added api: QXLWorker: update_area_async add_memslot_async destroy_surfaces_async destroy_primary_surface_async create_primary_surface_async destroy_surface_wait_async QXLInterface: async_complete (cherry picked from commit 096f49afbf4e83ccee80f58479b3ff05bd355660)
* server: api: add spice_qxl_* calls based on QXLWorker contentsAlon Levy2011-07-211-0/+20
| | | | | | | | | | | For each callback in QXLWorker, for example QXLWorker::update_area, add a direct call named spice_qxl_update_area. 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. [cherry-picked from master]
* server: add SASL supportMarc-André Lureau2011-07-211-0/+2
| | | | | | | | | | | | | | | | | We introduce 2 public functions to integrate with the library user. spice_server_set_sasl() - turn on SASL spice_server_set_sasl_appname() - specify the name of the app (It is used for where to find the default configuration file) The patch for QEMU is on its way. https://bugs.freedesktop.org/show_bug.cgi?id=34795 Conflicts: server/reds.c server/reds.h
* server: Make copy paste support configurableHans de Goede2011-03-241-1/+2
| | | | | | Also bump SPICE_SERVER_VERSION to 0x000801 as 0.8.1 will be the first version with the new API for this, and we need to be able to detect the presence of this API in qemu.
* Release 0.8.00.8.0Hans de Goede2011-03-011-1/+1
|
* Release 0.7.30.7.3Hans de Goede2011-02-111-1/+1
|
* Release 0.7.20.7.2Hans de Goede2011-01-191-1/+1
|
* Release 0.7.10.7.1Hans de Goede2010-12-171-1/+1
|
* server: Update SPICE_SERVER_VERSIONHans de Goede2010-12-171-1/+1
|
* move chardevs out of experimentalGerd Hoffmann2010-12-161-0/+26
| | | | | | | | | While we are at it: There is no reason for chardev support to stay in the experimental area, so move it out. qemu should not need the "spice-experimental.h" file. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 7bbc2ba090788d844573e044041480ff6e3cba7b)
* move switch-host migration out of experimentalGerd Hoffmann2010-12-161-0/+7
| | | | | | | | seamless stays in the experimental area. comments updates too. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> (cherry picked from commit 6acb817071daa13b8389bfce12cac6221997cebe)
* Release 0.6.30.6.3Hans de Goede2010-10-181-1/+1
|
* Bump version to 0.6.20.6.2Hans de Goede2010-10-181-1/+1
|
* server: add channel notifications.Gerd Hoffmann2010-10-121-1/+18
| | | | | | | | | | | | | This patch adds a channel event callback to the spice core interface. This new callback will be called for three events: (1) A new connection has been established. (2) The channel is ready (i.e. authentication is done, link message verification passed all tests, channel is ready to use). (3) Channel was disconnected. Qemu will use this to send notifications to the management app.
* Add API to turn on backwards compatibility modeAlexander Larsson2010-09-021-0/+13
| | | | | | | | | | | | | | | | | | When upgrading a cluster of machines you typically do this by upgrading a set of machines at a time, making the new machines run the new software version, but in a fashion compatible with the old versions (in terms of e.g. migration). Then when all machines are upgrades, any new features in the new version can be enabled. This API allows qemu to limit the set of features that spice uses to those compatible with an older version, in order to do an upgrade like this. Right now it doesn't really do much, since we don't keep compat with 0.4.0 atm (although that may be added later). There is no guarantee that any future version of spice support being compatible with any previous version. However, we will always support compatibility with the previous major version so that clusters can be upgraded step by step.
* Bump versions.Gerd Hoffmann2010-08-301-1/+1
| | | | | | Update #define in server/spice.h in preparation for the 0.6.0 release. We also got some new functions, thus we have to increate the shared lib minor number for spice-server.
* Add config functions.Gerd Hoffmann2010-08-301-0/+11
| | | | | | A bunch of configuration functions where never ported forward from rhel-6 to upstream. Add them so we can add qemu config options for these settings.
* add SPICE_SERVER_VERSIONGerd Hoffmann2010-07-141-0/+2
| | | | Allow to ifdef features which depend on a certain libspice-server release.
* server: enabling/disabling jpeg and zlib-over-glz via spice command line argsYonit Halperin2010-07-141-0/+10
|
* server: Remove unnecessary pci id/rev checksAlexander Larsson2010-07-081-4/+0
| | | | | | There is no need to check the pci ids or revisions. Thats a contract between qemu and the driver, and spice need not care, as long as we get the right data from qemu.
* remove QXLInterface->has_command()Gerd Hoffmann2010-07-081-1/+0
| | | | Not used any more, zap it before rolling up a release tarball.
* qxl abi: parse QXLRect.Gerd Hoffmann2010-06-291-4/+2
|
* add spice-experimental.hGerd Hoffmann2010-05-191-63/+0
| | | | | | | | Supposed to be used for work-in-progress bits, where interfaces are not finalized yet. Moved over vdi port interface, tunnel interface and spice client migration functions.
* zap vd_interface.hGerd Hoffmann2010-05-191-3/+343
| | | | move over content to spice.h
* migration: new apiGerd Hoffmann2010-05-191-0/+12
| | | | Add new API for migration, based on what RHEL-6 has.
* kill spice_server_set_mouse_absoluteGerd Hoffmann2010-05-191-2/+0
| | | | Not needed. Just register/unregister the tablet interface instead.
* QXL: redesign.Gerd Hoffmann2010-05-191-2/+1
|
* KeyboardInterface: redesign.Gerd Hoffmann2010-05-191-1/+1
| | | | | | | | | This is the direction I wanna take with all interfaces: Clearly separate interface (aka version information and function pointers) and state information. SpiceKbdInterface defines the interface, SpiceKbdInstance maintains per-instance state information. Keyboard hasn't much beside a pointer to SpiceKbdInterface, for other interfaces this very likely will be different.
* s/CoreInterface/SpiceCoreInterface/Gerd Hoffmann2010-05-191-4/+1
|
* VDInterface: redesign.Gerd Hoffmann2010-05-191-3/+5
| | | | | | | | | | | | VDInterface has been renamed to SpiceBaseInterface. Dropped base_version element, shlib versioning should be used instead. Dropped id element, it is passed to spice_server_add_interface() instead. Now SpiceBaseInterface has static information only, multiple interface instances can share it. Added SpiceBaseInstance struct for maintaining per-instance state information. Adapted spice_server_{add,remove}_interface() functions to the new world.
* channel security cleanupGerd Hoffmann2010-05-191-15/+1
| | | | | | | | - drop spice_channel_name_t enum, use spice-protocol defines instead. - switch spice_server_set_channel_security() channel parameter from enum to string. - drop spice_server_set_default_channel_security(), use spice_server_set_channel_security with channel == NULL instead.
* zap spice_parse_args + spice_usage_strGerd Hoffmann2010-05-191-3/+0
| | | | First step to throw out the old interface.
* Relicense everything from GPL to LGPL 2.1+Alexander Larsson2010-04-131-9/+9
|
* new libspice api: spice_server_add_get_{sock, peer}_info()Gerd Hoffmann2010-03-181-0/+4
|
* new libspice api: spice_server_add_renderer()Gerd Hoffmann2010-03-181-0/+2
|
* new libspice api: add spice_server_set_mouse_absolute()Gerd Hoffmann2010-03-091-0/+2
|
* new libspice api: add spice_server_set_channel_security()Gerd Hoffmann2010-03-091-0/+4
|
* new libspice api: make spice_channel_name_t part of the public api.Gerd Hoffmann2010-03-091-0/+15
|
* new libspice api: add spice_server_{get, set}_image_compression()Gerd Hoffmann2010-03-091-0/+4
| | | | Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
* new libspice api: make image_compression_t part of the public api.Gerd Hoffmann2010-03-091-0/+10
|
* new libspice api: configure listen addr, add ipv6 supporGerd Hoffmann2010-03-091-0/+4
|
* new libspice api: configure tlsGerd Hoffmann2010-03-091-0/+4
|
* new libspice api: zap function pointer indirection.Gerd Hoffmann2010-03-091-0/+4
| | | | | Make register_*_notifier calls optional, long term they should go away entriely. Add direct library calls as replacement.
* new libspice api: configure port + ticketGerd Hoffmann2010-03-091-0/+5
| | | | | | | | | Add new functions to configure spice port and ticketing. Yes, this is incomplete, it includes just the most important bits to get something up'n'running. These functions are supposed to replace both spice_parse_args() and the monitor interaction via qterm interface.
* new libspice api: alloc, initi and free spice server instances.Gerd Hoffmann2010-03-091-1/+7
| | | | | | The implementation can't handle multiple spice server instances at the same time right now. The API allows this though, so if we fixup the implementation some day we don't have to change the API.