summaryrefslogtreecommitdiffstats
path: root/server/spice.h
Commit message (Collapse)AuthorAgeFilesLines
* bump version to 0.11.2Yonit Halperin2012-08-271-1/+1
| | | | | | | New api entries: spice_server_vm_start spice_server_vm_stop spice_server_set_seamless_migration
* spice.h: add spice_server_set_seamless_migrationYonit Halperin2012-08-271-0/+2
| | | | | | | | | | This new call is used in order to identify whether qemu, or the management (e.g. libvirt), support seamless migration. If it is supported, qemu spice cmd-line configuration should have seamless-migration=on. In addition, we disable seamless migration support if multiple clients are allowed. Currently, only one client is supported.
* spice_server_vm_start/stop: notify red_dispatcher on vm start/stopYonit Halperin2012-08-271-2/+4
| | | | | | | Till now, red_worker was notfied about vm status changes via QXLWorker->start/stop (or spice_qxl_start/stop). Newer qemu, that supports calling spice_server_vm_start/stop, will call only these routines, and won't call QXLWorker->start/stop.
* spice.h: add entries for tracking vm stateYonit Halperin2012-08-271-0/+3
| | | | | | | | | When vm state changes (started/stopped), we notify all the attached SpiceCharDeviceStates about the change. This is mainly required for avoiding writing/reading to/from the device during the non-live stage of migration. spice version will be bumped in one of the following patches.
* bump version to 0.11.1 for new spice_qxl_monitors_config_asyncAlon Levy2012-07-231-1/+1
| | | | | bump current and age since only additions where done. new server library is libspice-server.so.1.2.0 .
* server: add monitors_config supportAlon Levy2012-07-221-0/+3
| | | | | | | | | | | | | | | | a SpiceMsgDisplayMonitorsConfig is sent on two occasions: * as a result of a spice_qxl_monitors_config_async * whenever a client connects and there is a previously set monitors config Sending the new message is protected by a new cap, SPICE_DISPLAY_CAP_MONITORS_CONFIG More elaborately: spice_qxl_monitors_config_async receives a QXLPHYSICAL address of a QXLMonitorsConfig struct and reads it, caching it in the RedWorker, and sending it to all clients. Whenever a new client connects it receives a SpiceMsgDisplayMonitorsConfig message as well.
* spice.h: bump SPICE_SERVER_VERSION for release 0.11.0Alon Levy2012-06-271-1/+1
| | | | (cherry picked from commit dd5c995c32cf595d31e59975bd1b3216cf996656)
* Revert "spice.h: bump SPICE_SERVER_VERSION for release 0.11.0"Alon Levy2012-06-271-1/+1
| | | | This reverts commit dd5c995c32cf595d31e59975bd1b3216cf996656.
* spice.h: bump SPICE_SERVER_VERSION for release 0.11.0Alon Levy2012-06-211-1/+1
|
* server/spice.h: s/Pleaes/Please/Alon Levy2012-06-051-1/+1
|
* server: export spice_server_is_server_mouse predicateAlon Levy2012-03-261-1/+3
| | | | To be used by qemu query-spice / info spice commands.
* server: listen on a pre-opened file descriptorNahum Shalman2012-03-121-0/+1
| | | | | | | Allow applications to pre-open a file descriptor and have spice listen on it. Thanks to Daniel Berrange for his comments
* Send name & uuid to capable clientsMarc-André Lureau2012-03-051-1/+4
| | | | | | | | | Add spice_server_set_name() and spice_server_set_uuid() that allows the client to identify a Spice server (useful to associate settings with a particular server) The SPICE_MSG_MAIN_NAME and SPICE_MSG_MAIN_UUID messages are only sent to capable clients, announcing SPICE_MAIN_CAP_NAME_AND_UUID.
* server: support IPV6 addresses in channel events sent to qemuYonit Halperin2012-02-121-0/+6
| | | | | | | | | RHBZ #788444 CC: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Yonit Halperin <yhalperi@redhat.com>
* Release 0.10.1Hans de Goede2012-01-231-1/+1
|
* Allow auth to be skipped when attaching to pre-accepted clientsDaniel P. Berrange2012-01-091-2/+2
| | | | | | | | | | | When an applications passes in a pre-accepted socket for a client, they may well have already performed suitable authentication out of band. They should thus have the option to request that any spice authentication is skipped. * server/reds.c, spice.h: Add flag for skipping auth Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* Add APIs for injecting a client connection socketDaniel P. Berrange2012-01-091-0/+3
| | | | | | | | | | | Allow applications to pass a pre-accepted client socket file descriptor in. The new APIs are spice_server_add_ssl_client and spice_server_add_client * server/reds.c: Implement new APIs * server/spice.h: Define new APIs Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
* server/spice.h: semi-seamless migration interface, RHBZ #738266Yonit Halperin2011-11-021-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. (cherry picked from commit 6e56bea67c5648b0c81990171d4bc0cf1a402043 branch 0.8) Conflicts: server/spice.h
* server: add public spice_server_get_num_clientsAlon Levy2011-08-231-0/+3
|
* Bump version in server/spice,h to 0.9.1Hans de Goede2011-07-261-1/+1
| | | | | | | | It is a bit early to bump, since a 0.9.1 release is not happening yet, but this allows me to test if the vdagent SpiceCharInterface state callback fixes are present or not in qemu code, and thus disabling the ugly vdagent specific workaround from spice-qemu-char.c when compiling against a new enough spice-server.
* server/spice.h: bump QXL_MINOR because of QXLWorker and QXLInterface changesAlon Levy2011-07-201-1/+1
|
* server: add QXLWorker.flush_surfaces_async for S3/S4 supportAlon Levy2011-07-201-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.
* server: add QXLInterface::update_area_complete callbackAlon Levy2011-07-201-0/+3
| | | | | when update_area_async is called update_area_complete will be called with the surfaces dirty rectangle list.
* server: add async io supportAlon Levy2011-07-201-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
* server: api: add spice_qxl_* calls based on QXLWorker contentsAlon Levy2011-07-201-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.
* sndworker: add AudioVolume/AudioMute messagesMarc-André Lureau2011-06-221-2/+8
| | | | | | | | | | | | | | | | | | | These messages allow the guest to send the audio device volume to the client. It uses an arbitrary scale of 16bits, which works good enough for now. Save VolumeState in {Playback,Record}State, so that we can send the current volume on channel connection. Note about future improvements: - add exact dB support - add client to guest volume change Updated since v2: - bumped record and playback interface minor version to allow conditional compilation Updated since v1: - sync record volume on connection too
* server: bump SPICE_SERVER_VERSION to 0.9.0Marc-André Lureau2011-05-081-1/+1
| | | | SASL functions will be released with 0.9.0
* 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.
* server: add SASL supportMarc-André Lureau2011-02-281-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
* server: Update SPICE_SERVER_VERSIONHans 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>
* 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>
* 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.