Age | Commit message (Collapse) | Author | Files | Lines |
|
connected when server shutsdown)
|
|
|
|
|
|
uses xf86AddInputDriver, xf86PostButtonEvent, xf86PostMotionEvent and xf86PostKeyboardEvent
reused xspice_get_spice_server to access the single spice server instance.
|
|
|
|
|
|
|
|
Initialize a SpiceServer instance, and implement SpiceCoreInterface,
that is fd read, write notification and watchs (timers).
The SpiceServer instance creation is wrapped in xspice_get_spice_server to allow
access from the pointer and keyboard drivers introduced later.
The fd implementation is off because Xserver doesn't allow us to be
notified on write unblock, only read. Workaround is to poll.
|
|
|
|
Memory is taken from malloc instead of from the pci bar.
Adds shadow_rom to qxl_screen_t.
Introduces init_qxl_rom, which is directly taken from the qxl device
in qemu. Plenty of TODO's added in this commit about various constants
and about factoring out the code to not do this copy paste from qemu.
|
|
|
|
|
|
|
|
This ifdefs out all the parts in qxl_driver.c that are pci device specific
and are not required by xspice. No functional change. The resulting spiceqxl_drv.so
doesn't run.
|
|
|
|
Fixes a few places that have hardcoded "qxl" to use the already defined
QXL_DRIVER_NAME.
|
|
adds --enable-xspice, which builds an spiceqxl_drv.so target,
and defines SUPPORT_XSPICE. Fails build if spice-server not found.
|
|
qxl_map_memory_helper and qxl_unmap_memory_helper introduced, here as
a simple split, later different implementation if XSPICE defined will
be added. Nicer then putting an ifdef inside the map/unmap functions.
|
|
used in qxl_reset. Later ifdefed with XSPICE, which only uses a single
slot covering all memory (really it should just avoid calling the translation
mechanism, but for now this is simple enough).
|
|
|
|
replace everywhere it is needed for xspice - places left out are ifdefed
out later based on the same define mentioned in qxl.h, XSPICE.
|
|
Add a qxl_screen_t* member to qxl_ring to make generelizing outb to
ioport_write easier in the next patch. This means we do an extra deref
and addition for every outb, but it means the code becomes simpler for
doing outb in qxl_drv.so and a function call for spiceqxl_drv.so
|
|
|
|
|
|
|
|
removing whitespace in lines consisting only of it.
most of those areas are touched later, but not all.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- Surfaces need to be evacuated before switching VT
- The device must be reset
- Framebuffer access must be turned off
- Pixmaps created while switched away must be created in host memory.
|
|
https://bugzilla.redhat.com/show_bug.cgi?id=552000
|
|
Instead of uploading the full software image in one go, upload it in
512x512 tiles to avoid having to find huge huge blocks of memory and
potentially running out.
|
|
Surfaces that were used in a read-only way don't need to be uploaded
again since they didn't change. This is a particularly important
optimization for Composite since sources and masks there don't have
tight damage tracking regions.
|
|
|
|
A bunch of renames and just plain removal (where the
struct was never used):
* s/qxl_cursor_cmd/QXLCursorCmd/
* s/qxl_mode/QXLMode/
* s/qxl_command/QXLCommand/
* remove qxl_command_ext
* s/qxl_rect/QXLRect/
* s/qxl_release_info/QXLReleaseInfo/
* remove QXLReleaseInfo_ext (prev qxl_release_info_ext)
* s/qxl_clip/QXLClip/
* s/qxl_point/QXLPoint/
* s/qxl_pattern/QXLPattern/
* s/qxl_point16/QXLPoint16/
* s/qxl_brush/QXLBrush/
* s/qxl_mask/QXLQMask/
* s/QXL_BRUSH/SPICE_BRUSH/
* s/QXL_IMAGE/SPICE_IMAGE/
* s/qxl_image_descriptor/QXLImageDescriptor/
* s/qxl_data_chunk/QXLDataChunk/
* s/qxl_bitmap_format/SpiceBitmapFmt/
* s/qxl_bitmap/QXLBitmap/
* s/qxl_image/QXLImage/
* s/qxl_fill/QXLFill/
* s/qxl_opaque/QXLOpaque/
* s/qxl_copy/QXLCopy/
* s/qxl_transparent/QXLTransparent/
* s/qxl_alpha_blend/QXLAlphaBlend/
* s/qxl_copy_bits/QXLCopyBits/
* s/qxl_blend/QXLBlend/
* s/qxl_rop3/QXLRop3/
* s/qxl_line_attr/QXLLineAttr/
* s/qxl_stroke/QXLStroke/
* s/qxl_text/QXLText/
* use QXLBlackness,QXLInvers (typo needs fixing later), QXLWhiteness
* s/QXL_CLIP_TYPE/SPICE_CLIP_TYPE/
* s/qxl_compat_drawable/QXLCompatDrawable/
* s/qxl_drawable/QXLDrawable/
* s/qxl_surface_cmd/QXLSurfaceCmd/
* remove qxl_compat_update_cmd
* remove qxl_update_cmd
* remove QXL_CURSOR_DEVICE_DATA_SIZE
* s/CURSOR_TYPE/SPICE_CURSOR_TYPE/
* s/qxl_cursor/QXLCursor/
* s/qxl_rom/QXLRom/
* remove QXL_SURF_TYPE_PRIMARY
* s/qxl_surface_create/QXLSurfaceCreate/
|
|
|
|
|
|
|
|
|
|
|
|
These were kludges and are not necessary with new servers. Note that
they were never necessary for the QXL driver because we generally
don't use software cursors.
|
|
|
|
Keep track of how many live images there are, for debugging purposes.
|
|
|
|
|
|
|