summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Release 0.12.0v0.12.00.12.0Alon Levy2012-09-153-3/+15
|
* server/spice-server.syms: add missing global labelsAlon Levy2012-09-131-0/+3
| | | | Although global is the default, this makes the file more consistent.
* server/Makefile.am: fix for make distcheckAlon Levy2012-09-131-1/+1
| | | | | Doesn't make sense to distribute test_spice_version.sh, so just ensure the build passes if it doesn't exist.
* spice-server 0.11.5Alon Levy2012-09-132-4/+4
| | | | | | Added api: QXL interface (3.2) client_monitors_config
* server/tests: agent mock, client_monitors_configAlon Levy2012-09-134-1/+49
|
* server: Filter VD_AGENT_MONITORS_CONFIGAlon Levy2012-09-133-1/+61
| | | | | | If the guest supports client monitors config we pass it the VDAgentMonitorsConfig message via the QXLInterface::client_monitors_config api instead of via the vdagent.
* server/reds: reuse already defined localAlon Levy2012-09-131-1/+1
|
* server/red_dispatcher: client_monitors_config supportAlon Levy2012-09-132-0/+53
| | | | | | | | | Adds two functions: - red_dispatcher_use_client_monitors_config: check that QXLInterface supports client_monitors_config and that it's functional. - red_dispatcher_client_monitors_config: send the client monitors configuration to the guest.
* server: add QXLInterface::client_monitors_configAlon Levy2012-09-131-3/+9
| | | | | | | | | | | | | | | | | | | | | | Used to implement guest monitor configuration change similarly to real hardware in conjunction with the new qemu interrupt QXL_INTERRUPT_CLIENT_MONITORS_CONFIG. client_monitors_config is also used to probe the support by the interface. If it is not supported we send the message to the guest agent. This makes a linux qxl driver similar to existing kms drivers. The logic is: For every received VDAgentMonitorsConfig: if client_monitors_config(NULL): write client configuration to pci rom BAR. send interrupt to guest guest kernel reads configuration from rom BAR. guest kernel issues event to user space user space reads (libdrm) and reconfigures (libXRandr) else: (current implementation) write message to guest agent guest agent issues reconfiguration via XRandr / windows Escape ioctl to kernel
* update spice-common moduleAlon Levy2012-09-131-0/+0
| | | | For qxl client_monitors_config support.
* server/red_dispatcher: change a printerr to debugAlon Levy2012-09-121-1/+1
|
* Bump SPICE_INTERFACE_QXL_VERSION_MINORSøren Sandmann Pedersen2012-09-112-3/+7
| | | | | Then check that we have the right version before accessing the set_client_capabilities() function.
* Enable build on armv6+Peter Robinson2012-09-111-2/+2
| | | | | | | | | The following patch enables it to build on ARM platforms that support atomics. Tested on an armv7hl on an ARMv7 device running Fedora 18. Using firefox connecting to a RHEV-M instance I could launch consoles in spice-xpi and login so basic support works! Resolves: rhbz#613529
* Update spice-common to get A8 surface definitionsChristophe Fergeau2012-09-101-0/+0
| | | | Latest spice needs these definitions from spice-protocol
* Bump spice.h version number to 0.11.4Søren Sandmann Pedersen2012-09-071-1/+1
| | | | | | | | No new symbols are added, but there is an addition to QXLInterface: void (*set_client_capabilities)(QXLInstance *qin, uint8_t client_present, uint8_t caps[58]);
* Set a8 capability in the QXL device if supported by the clientSøren Sandmann Pedersen2012-09-071-0/+2
|
* Process outstanding commands in the ring after changing capability bitsSøren Sandmann Pedersen2012-09-071-0/+5
| | | | | | | | | | | When a new client connects, there may be commands in the ring that it can't understand, so we need to process these before forwarding new commands to the client. By doing this after changing the capability bits we ensure that the new client will never see a command that it doesn't understand (under the assumption that the guest will read and obey the capability bits). Acked-by: Alon Levy <alonl@redhat.com>
* Add new set_client_capabilities() interface to QXLInstanceSøren Sandmann Pedersen2012-09-062-0/+27
| | | | | | | | | | | | | | | | | | | | | A new interface set_client_capabilities (QXLInstance *qin, uint8_t client_present, uint8_t caps[58]); is added to QXLInstance, and spice server is changed to call it whenever a client connects or disconnects. The QXL device in response is expected to update the client capability bits in the ROM of the device and raise the QXL_INTERRUPT_CLIENT interrupt. There is a potential race condition in the case where a client disconnects and a new client with fewer capabilities connects. There may be commands in the ring that the new client can't handle. This case is handled by first changing the capability bits, then processing all commands in the ring, and then start forwarding commands to the new client. As long as the guest obeys the capability bits, the new client will never see anything it doesn't understand.
* client: Advertise A8_SURFACE capabilitySøren Sandmann Pedersen2012-09-061-0/+1
|
* server/red_parse_qxl: fix bitmap_consistent againAlon Levy2012-09-051-2/+2
|
* Implement spice_server_set_exit_on_disconnect to enable an option whereby ↵Jeremy White2012-09-054-3/+22
| | | | the spice server shuts down on client disconnect.
* server/red_parse_qxl: fix wrong bitmap_consistentAlon Levy2012-09-051-5/+26
| | | | | The bit calculation was wrong for all the paletted types by a factor of between 8 and 1 (SPICE_BITMAP_FMT_{1,4,8}BIT_PLT_{LE,BE})
* server/red_parse_qxl: add bitmap consistency checkAlon Levy2012-09-033-16/+34
| | | | | | | | | | | Just checks stride vs width times bpp. This fixes a potential abort on guest generated bad images in glz_encoder. Other files touched to move some consts to red_common, they are static so no problem to be defined in both red_worker.c and red_parse_qxl.c .
* server/tests/test_display_base: fix update_area abortAlon Levy2012-09-031-1/+3
| | | | | Don't do zero area update_areas, server now aborts on those. This tester is not supposed to test those aborts.
* server: replace syntax-check reported tabs with spacesAlon Levy2012-09-032-2/+2
|
* server: add dist-hook to prevent spice version configure/spice.h differenceAlon Levy2012-09-032-0/+45
|
* 0.11.3 release0.11.3Alon Levy2012-09-022-3/+29
| | | | No new api entries.
* add server/tests/test_vdagentAlon Levy2012-09-022-0/+115
|
* server/tests/test_two_serversAlon Levy2012-09-022-0/+47
|
* server/tests: introduce Test structAlon Levy2012-09-025-146/+170
|
* server/red_worker: seamless: fix invalid memory referenceAlon Levy2012-08-301-3/+3
| | | | | | | | | replace add_ref with add for stack allocated SpiceMigrateDataDisplay. This fixes wrong MIGRATE_DATA message in display channel (symptom is glz_encoder_max being way too big, and malloc failure at target) seen on F18 with gcc-4.7.1-5.fc18.x86_64 and glibc-2.16-8.fc18.x86_64 (didn't appear on RHEL 6).
* server: freezed->froze, missing whitespace after declarationsAlon Levy2012-08-302-3/+5
|
* server: s/max_encdoers/max_encoders/Alon Levy2012-08-302-7/+7
|
* server/inputs_channel.c: whitespace fixYonit Halperin2012-08-301-1/+1
|
* server/red_tunnel_worker: remove unneeded expect_migrate_markAlon Levy2012-08-301-6/+0
|
* server/red_tunnel_worker.c: fix buildAlon Levy2012-08-281-44/+18
| | | | Only passes compile, not tested.
* inputs: handle SPICE_MSGC_INPUTS_KEY_SCANCODEMarc-André Lureau2012-08-272-0/+10
| | | | | Handle SPICE_MSGC_INPUTS_KEY_SCANCODE message, allowing arbitrary keyboard scancode sequence.
* support automake >= 1.12Alon Levy2012-08-272-0/+3
| | | | | Requires a single line (sans comments) change to configure.ac in spice-common too, to define the new AM_PROG_AR.
* server/red_worker: handle_dev_update_area: fail if invalid areaAlon Levy2012-08-271-0/+6
|
* client: fix missing stdarg.h includeYann E. MORIN2012-08-271-0/+1
| | | | | | | When the C library is uClibc, stdarg.h is required to get the definition for va_list et al. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
* enable seamless migration and set migration protocol versionYonit Halperin2012-08-272-1/+2
|
* inputs channel migration: don't send any msg after MSG_MIGRATEYonit Halperin2012-08-271-5/+25
| | | | | Pending motion acks, and keyboard modifiers messages will be sent by the destination after receiving the migration data.
* inputs_channel: send and handle migration dataYonit Halperin2012-08-271-3/+49
|
* migration_protocol: add inputs channel migration dataYonit Halperin2012-08-271-0/+12
| | | | | | Storing the motion count in uint16_t and not in uint32_t since the exact count is not important, just its division in SPICE_INPUT_MOTION_ACK_BUNCH (see the next 2 patches).
* main_channel: don't expect init msg in a seamless migration destinationYonit Halperin2012-08-271-3/+8
| | | | | If the server is a destination of seamless migration, send msgs to the client, even though an init msg has not been sent to the client.
* red_channel: set send_data.last_sent_serial in ↵Yonit Halperin2012-08-271-0/+1
| | | | | | | | red_channel_client_set_message_serial red_channel_client_set_message_serial is called for setting the serial of the display channel messages after migration (on the destination side). The serial is retrieved from the migration data.
* red_channel: remove unused migrate flag from RedChannelYonit Halperin2012-08-278-22/+12
| | | | The relevant flags reside in RedChannelClient and RedClient
* snd_worker: handling migrationYonit Halperin2012-08-271-61/+17
| | | | | | | | | | The playback and record channel send SPICE_MSG_MIGRATE to the client. Both playback and record channel does not have a state to restore: while in the legacy migration implementation the record channel used to restore the mode and start time, it looks unnecessary since the client receives from the src MSG_RECORD_STOP before the migration completion notification (when the vm is stopped). Afterwards, when the vm starts on the dest side, the client receives MSG_RECORD_START.
* snd_channel: fix double releaseYonit Halperin2012-08-271-10/+17
| | | | | | | | Due to the fix in the previous patch, snd_disconnect_channel can be called both when there is write/read error in the channel, or from red_client_destroy (which calls client_cbs.disconnect). Multiple calls to snd_disconnect_channel resulted in calling channel->cleanup(channel) more than once (double release).
* red_channel (dummy): fix not adding dummy RedChannelClient to the clientYonit Halperin2012-08-273-14/+26
| | | | | | | | | | | snd channel wasn't added to be part of the client's channels list. As a result, when the client was destroyed, or migrated, snd channel client wasn't destroy, or its migration callback wasn't called. However, due to adding dummy channels to the client, we need special handling for calls to disconnecting dummy channel clients. TODO: we need to refactor snd_worker to use red_channel