History | View | Annotate | Download (77.2 kB)
sysemu: avoid proliferation of include/ subdirectories
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
usb-redir: Fix crash on migration with no client connected
If no client is connected on the src side, then we won't receive aparser during migrate, in this case usbredir_post_load() should be a nop,rather then to try to derefefence the NULL dev->parser pointer....
usb-redir: Add flow control support
Signed-off-by: Hans de Goede <hdegoede@redhat.com>Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
qemu-char: Automatically do fe_open / fe_close on qemu_chr_add_handlers
Most frontends can't really determine if the guest actually has the frontendside open. So lets automatically generate fe_open / fe_close as soon as afrontend becomes ready (as signalled by calling qemu_chr_add_handlers) /...
qemu-char: Rename opened to be_open
Rename the opened variable to be_open to reflect that it contains theopened state of the backend.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>Message-id: 1364292483-16564-2-git-send-email-hdegoede@redhat.comSigned-off-by: Anthony Liguori <aliguori@us.ibm.com>
unbreak hw/usb/redirect.c build
Commit 8550a02d1239415342959f6a32d178bc05c557cc added a streamsparameter to usb_wakeup and didn't update redirect.c. Fix it.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
usb-redir: simplify packet copy
usb_packet_copy can handle combined packets now,so it isn't needed to special-case them any more.
Also use the new usb_packet_size() function.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Make all static TypeInfos const
Since 39bffca2030950ef6efe57c2fac8327a45ae1015 (qdev: register alltypes natively through QEMU Object Model), TypeInfo as used inthe common, non-iterative pattern is no longer amended with informationand should therefore be const....
usbredir: Add support for buffered bulk input (v2)
Buffered bulk mode is intended for bulk input endpoints, where the data isof a streaming nature (not part of a command-response protocol). Theseendpoints' input buffer may overflow if data is not read quickly enough....
usbredir: Add an usbredir_stop_ep helper function
usbredir: Add USBEP2I and I2USBEP helper macros
usbredir: Add ep_stopped USBDevice method
To ensure that interrupt receiving is properly stopped when the guest isno longer interested in an interrupt endpoint.
usbredir: Verify we have 32 bits bulk length cap when redirecting to xhci
The xhci-hcd may submit bulk transfers > 65535 bytes even when not usingbulk-in pipeling, so usbredir can only be used in combination with an xhcihcd if the client has the 32 bits bulk length capability....
usbredir: Add usbredir_init_endpoints() helper
usb-redir: Add debugging to bufpq save / restore
usb/redirect.c: unbreak compilation due to include/char/char.h
Broken since:
commit 927d4878b0ff319ed87fed9363f314613b0a5ed9Author: Paolo Bonzini <pbonzini@redhat.com>Date: Mon Dec 17 18:20:05 2012 +0100
softmmu: move remaining include files to include/ subdirectories...
softmmu: move include files to include/sysemu/
misc: move include files to include/qemu/
monitor: move include files to include/monitor/
usb: Call wakeup when data becomes available for all devices with int eps
This is necessary for proper interaction with the xhci controller, and itwill allow other hcds to lower there frame timer while waiting for interruptdata.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>...
usb-redir: Split usb_handle_interrupt_data into separate in/out functions
No functional changes.
usb-redir: Don't handle interrupt output packets async
Instead report them as successfully completed directly on submission, thishas 2 advantages:
1) This matches the timing of interrupt output packets on real hardware,with the previous async handling, if an ep has an interval of say 500 ms,...
usb-redir: Only add actually in flight packets to the in flight queue
Packets which are queued up, but not yet handed over to the device, arenot in flight.
usb-redir: Set default debug level to warning
The previous default of 0 means that even errors and warnings would notget printed, which is really not a good default.
usb: split packet result into actual_length + status
Since with the ehci and xhci controllers a single packet can be largerthen maxpacketsize, it is possible for the result of a single packetto be both having transferred some data as well as the transfer to have...
usb-redir: Allow packets to have both data and an error-status
usb-redir: Add an usbredir_setup_usb_eps() helper function
usb-redir: Use reject rather the disconnect on bad ep info
So that the client gets a notification about us disconnecting the device.
usb-redir: Allow to attach USB 2.0 devices to 1.1 host controller
This follows the logic of host-linux: If a 2.0 device has no ISOendpoint and no interrupt endpoint with a packet size > 64, we canattach it also to an 1.1 host controller. In case the redir server does...
usb-redir: Allow redirecting super speed devices to high speed controllers
usb-redir: Add support for input pipelining
usb-redir: Add support for 32 bits bulk packet length
usb: Move short-not-ok handling to the core
After a short-not-ok packet ending short, we should not advance the queue.Move enforcing this to the core, rather then handling it in the hcd code.
This may result in the queue now actually containing multiple input packets...
usb-redir: Change usbredir_open_chardev into usbredir_create_parser
As we need to create the parser at more places.
usb-redir: Don't make migration fail in none seamless case
Instead simple disconnect the device like host redirection does onmigration.
usb-redir: Add support for migration
usb-redir: Add chardev open / close debug logging
usb-redir: Revert usb-redir part of commit 93bfef4c
Commit 93bfef4c6e4b23caea9d51e1099d06433d8835a4 makes qemu-deviceswhich report the qemu version string to the guest in some way use aqemu_get_version function which reports a machine-specific version string....
usb-redir: Change cancelled packet code into a generic packet-id queue
usb-redir: Add an already_in_flight packet-id queue
After a live migration, the usb-hcd will re-queue all packets bywalking over the schedule in the guest memory again, but requests whichwere encountered on the migration source before will already be in flight,...
usb-redir: Store max_packet_size in endp_data
So that we've a place to migrate it to / from to allow restoring it aftermigration.
usb-redir: Don't delay handling of open events to a bottom half
There is no need for this, and doing so means that a backend trying towrite immediately after an open event will see qemu_chr_be_can_writereturning 0, which not all backends handle well as there is no wakeup...
usb-redir: Get rid of async-struct get member
This is a preparation patch for completely getting rid of the async-packetstruct in usb-redir, instead relying on the (new) per ep queues in theqemu usb core.
usb-redir: Get rid of local shadow copy of packet headers
The shadow copy only serves as an extra check (besides the packet-id) toensure the packet we get back is a reply to the packet we think it is.
This check has never triggered in all the time usb-redir is in use now,...
usb-redir: Get rid of unused async-struct dev member
usb-redir: Move to core packet id and queue handling
usb-redir: Return babble when getting more bulk data then requested
Babble is the appropriate error in this case (rather then signalling a stall).
usb-redir: Convert to new libusbredirparser 0.5 API
This gives us support for 64 bit ids which is needed for using XHCI withthe new hcd generated ids.
usb-redir: Set ep max_packet_size if available
This is needed for usb-redir to work properly with the xhci emulation.
usb-redir: Add a usbredir_reject_device helper function
usb-redir: Ensure our peer has the necessary caps when redirecting to XHCI
In order for redirection to work properly when redirecting to an emulatedXHCI controller, the usb-redir-host must support bothusb_redir_cap_ep_info_max_packet_size and usb_redir_cap_64bits_ids,...
usb-redir: Enable pipelining for bulk endpoints
usb-redir: Never return USB_RET_NAK for async handled packets
USB_RET_NAK is not a valid response for async handled packets (and willtrigger an assert as such).
Also drop the warning when receiving a status of cancelled for packets notcancelled by qemu itself, this can happen when a device gets unredirected...
usb-redir: Correctly handle the usb_redir_babble usbredir status
Allow machines to configure the QEMU_VERSION that's exposed via hardware
QEMU exposes its version to the guest's hardware and in some cases that is wrong(e.g. Windows prints messages about driver updates when you switchthe QEMU version).There is a new field now on the struct QEmuMachine, hw_version, which may...
usb-redir: An interface count of 0 is a valid value
An interface-count of 0 happens when a device is in unconfigured state whenit gets redirected. So we should not use 0 to detect not having receivedinterface info from our peer.
usb-redir: Reset device address and speed on disconnect
Without this disconnected devices look like the last redirected devicein the monitor in "info usb".
usb-redir: Not finding an async urb id is not an error
We clear our pending async urb list on device disconnect and we may stillreceive "packet complete" packets from our peer after this, which will thenrefer to packet ids no longer in our list.
usb-redir: Notify our peer when we reject a device due to a speed mismatch
Also cleanup (reset) our device state when we reject a device due to aspeed mismatch.
Add bootindex support to usb-host and usb-redir
When passing through a usb pendrive seabios will present it in the F12boot menu and will happily boot from it.
This patch adds bootorder support so you can even make it the defaultboot device.
usb: the big rename
Reorganize usb source files. Create a new hw/usb/ directory and moveall usb source code to that place. Also make filenames a bit moredescriptive. Host adapters are prefixed with "hch-" now, usb deviceemulations are prefixed with "dev-". Fixup paths Makefile and include...