Age | Commit message (Collapse) | Author | Files | Lines |
|
See spice-common commit edac1b36b572cbd8988c44341185a9f51ea3eeb5
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Now that client messages are always RedPipeItem, we don't need virtual
functions to know how to ref/unref them.
|
|
Now that all derived classes use a type deriving from PipeItem for their
RedCharDeviceMsgToClient, we can make this explicit in the
RedCharDeviceClass vfuncs, and remove the RedCharDeviceMsgToClient
typedef.
|
|
|
|
PipeItem already implements refcounting. Use it.
|
|
Since PipeItem already implements refcounting, there's no need to
re-implement it here.
|
|
Since the base class now implements refcounting, there's no need to
re-invent it here.
|
|
This allows to reuse pipe_item_{ref, unref} rather than
reimplementing them in spicevmc.c
|
|
This allows to reuse pipe_item_{ref, unref} rather than
reimplementing them in smartcard.c
|
|
Since PipeItem is already refcounted, this allows to remove various
layers of ref/unref helpers from reds.c, and use the generic
pipe_item_{ref, unref} instead.
|
|
A user-defined callback is called when the refcount drops to 0.
Reference counting is manually coded for several classes deriving from
PipeItem, so this change will help to share this code, and allow to remove
some ref/unref virtual functions in some interfaces when we can assume
every instance derives from this base class.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Reviewed-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
These function are called on both sides of dispatcher so the
increment/decrement of the counter is done in multiple threads.
This caused the counter to not get incremented correctly and
freed the structure too early, leaving a dangling pointer in
the other thread.
This fixes https://bugzilla.redhat.com/show_bug.cgi?id=1253375.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
One more duplicate typedef, once in reds.c and another time in
reds-private.h
RedsState::agent_dev is defined in reds-private.h but only used in
reds.c, so longer term this could all be moved back to reds.c
|
|
This structure holding virtual function pointers was kept until now as a
RedCharDevice member in order to make the GObject conversion easier.
Now that all RedCharDevice children are converted to GObject, it can be
moved into RedCharDeviceClass.
|
|
Nothing is using it anymore now that CharDevice classes are
gobjectified.
|
|
This inherits from RedCharDevice.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
|
|
Consistent with internal naming conventions, and prepares for
conversion to GObject
|
|
This inherits from RedCharDevice. Once all char device states are
converted, we can turn the associated vfuncs into RedCharDeviceClass
vfuncs.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
|
|
More consistent with naming conventions, and prepares for converting
this type to a GObject which inherits from RedCharDevice.
|
|
Mostly to get fixes for older glib versions (both at compile time and
runtime).
Changes this brings in:
Christophe Fergeau (4):
tests: Fix glib version check
log: Clamp SPICE_DEBUG_LEVEL if it's too high
log: Use SPICE_CONSTRUCTOR_FUNC
log: Make sure glib threading is initialized
Eduardo Lima (Etrunko) (2):
Fix build in systems with Glib version older than 2.38
Add check for openssl
|
|
We can directly include spice-qxl.h in red-qxl.h as it already gets it indirectly anyway.
>
|
|
This allows to stop using struct RedsState * rather than RedsState * in
headers which cannot include reds.h. This also allows to remove the
duplicate RedsState typedef in reds.h and reds-stream.h which is causing
issues with older gcc versions.
|
|
This method will be removed in a subsequent commit, but for now it's
causing breakage since it's setting "reds" instead of "spice-server"
|
|
We can pass it a SndChannel rather than an opaque void* data pointer
which we then blindly cast.
This came to light through a -Wshadow warning as there was a local
variable 'data' in addition to the 'data' parameter.
|
|
|
|
Older glib versions require g_type_init() to be called before using
GObject.
|
|
This inherits from RedCharDevice.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
VDIPortState and VDIReadBuf don't really need to be defined in a header
file as they are only used in reds.c
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
Acked-by: Pavel Grunt <pgrunt@redhat.com>
|
|
The structure is an internal one so should not have the Spice prefix
but use the Red one.
Acked-by: Pavel Grunt <pgrunt@redhat.com>
|
|
This is an attempt at listing the versions of the various packages which
needs to be up to date for a functional virgl + spice.
|
|
|
|
|
|
|
|
make the function names match the type names. So
spice_char_device_state_* becomes red_char_device_* and
spice_char_device_* also becomes red_char_device_*.
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Make it consistent with the renamed RedCharDevice and the convention of
using 'Red' namespaces for internal types
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
This is more consistent with internal type naming convention, and it
paves the way for a new char device GObject heirarchy
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Internal types should use 'Red' namespace for consistency
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Internal types should use Red namespace for consistency
Acked-by: Frediano Ziglio <fziglio@redhat.com>
|
|
Reset pointer after freeing the structure pointing to it.
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
Move all internal data into a private struct so that it won't be exposed
when we move SmartCardDeviceState into the header.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Jonathon Jongsma <jjongsma@redhat.com>
|
|
Allows more explicit inheritance relationship, and numerous other
advantages.
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
|
|
Create a structure to hold private data.
This helps to make patch for GObject smaller.
Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
|
|
CursorChannel and DisplayChannel was initialized half in red_worker_new
and half in red_dispatcher_init using some accessor for RedWorker
(red_worker_get_cursor_channel and red_worker_get_display_channel).
Moving directly into red_worker_new make easier to follow code path.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
|
|
There is no need callbacks knows about internal QXLState.
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Christophe Fergeau <cfergeau@redhat.com>
|
|
Rename the function to channel_supports_multiple_clients() as
channel_is_secondary() is unclear and was coded to return the opposite
of what was originally intended.
Also there are few channel types and whether they support multiple
clients is totally static so we might as well delegate the check to
the compiler.
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
|
|
This function is used only for debugging
Signed-off-by: Frediano Ziglio <fziglio@redhat.com>
Acked-by: Victor Toso <victortoso@redhat.com>
|
|
Document how to use virgl with QEMU/libvirt
virt-manager documentation still needs to be added.
|