spice/server
Hans de Goede c030382abb Rename usbredir channel code to spicevmc
While discussing various things with Alon in Vancouver, it came up that
having a channel which simply passes through data coming out of a qemu
chardev frontend unmodified, like the usbredir channel does, can be used
for a lot of other cases too. To facilitate this the usbredir channel code
will be turned into a generic spicevmc channel, which is just a passthrough
to the client, from the spicevmc chardev.

This patch renames usbredir.c to spicevmc.c and changes the prefix of all
functions / structs to match. This should make clear that the code is not
usbredir specific.

Some examples of why having a generic spicevmc pass through is good:
1) We could add a monitor channel, allowing access to the qemu monitor from
the spice client, since the monitor is a chardev frontend we could re-use
the generic spicevmc channel server code, so all that is needed to add this
(server side) would be reserving a new channel id for this.

2) We could allow users to come up with new channels of their own, without
requiring qemu or server modification. The idea is to allow doing something
like this on the qemu startup cmdline:
-chardev spicevmc,name=generic,channelid=128

To ensure these new "generic" channels cannot conflict with newly added
official types, they must start at the SPICE_CHANNEL_USER_DEFINED_START value
(128).

These new user defined channels could then either be used with a special
modified client, with client plugins (if we add support for those), or
by exporting them on the client side for use by an external ap, see below.

3) We could also add support to the client to make user-defined channels
end in a unix socket / pipe, allowing handling of the data by an external app,
we could for example have a new spice client cmdline argument like this:
--custom-channel unixsocket=/tmp/mysocket,channelid=128

This would allow for something like:
$random app on guest -> virtio-serial -> spicevmc chardev ->
 -> spicevmc channel -> unix socket -> $random app on client

4) On hind sight this could also have been used for the smartcard stuff,
with a 1 channel / reader model, rather then the current multiplexing code
where we've our own multiplexing protocol wrapper over the libcacard
smartcard protocol.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
2011-08-25 14:04:27 +02:00
..
tests server: add tester and todo for multiple client support 2011-08-23 19:18:23 +03:00
.gitignore gitignore: add generated_*, vim temps, pyc 2010-11-08 16:06:55 +02:00
agent-msg-filter.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
agent-msg-filter.h server: add discard all option to agent message filter 2011-04-04 11:30:30 +02:00
char_device.h Rename usbredir channel code to spicevmc 2011-08-25 14:04:27 +02:00
demarshallers.h Add destructor for demarshalled messages 2010-06-22 10:53:24 +02:00
glz_encode_match_tmpl.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
glz_encode_tmpl.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
glz_encoder_config.h Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
glz_encoder_dictionary_protected.h Fix spelling errors in comments and strings 2010-05-21 10:51:28 +02:00
glz_encoder_dictionary.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
glz_encoder_dictionary.h Fix spelling errors in comments and strings 2010-05-21 10:51:28 +02:00
glz_encoder.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
glz_encoder.h Fix spelling errors in comments and strings 2010-05-21 10:51:28 +02:00
inputs_channel.c server: registering RedChannel in reds, instead of Channel 2011-08-23 18:27:46 +03:00
inputs_channel.h server/inputs_channel: remove unused declaration in inputs_channel.h 2010-12-07 21:32:34 +02:00
jpeg_encoder.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
jpeg_encoder.h JPEG support: introducing jpeg encoding for spice bitmaps 2010-06-09 11:40:25 +02:00
main_channel.c server/reds: fix reds_main_channel_connected 2011-08-23 18:29:45 +03:00
main_channel.h server/reds: fix reds_main_channel_connected 2011-08-23 18:29:45 +03:00
Makefile.am Rename usbredir channel code to spicevmc 2011-08-25 14:04:27 +02:00
mjpeg_encoder.c mjpeg: add missing SPICE_BITMAP_FMT_RGBA 2011-08-02 11:13:49 +02:00
mjpeg_encoder.h mjpeg_encoder: remove unused functions 2011-07-22 16:53:56 +02:00
red_bitmap_utils.h Fix spelling errors in comments and strings 2010-05-21 10:51:28 +02:00
red_channel.c red_channel: Fix msg buf memleak on parser error 2011-08-25 14:04:27 +02:00
red_channel.h server/snd_worker.c: add red_channel_client_destroy_dummy 2011-08-23 18:28:59 +03:00
red_client_cache.h server/red_worker: multiple client support - base split 2011-08-23 18:01:04 +03:00
red_client_shared_cache.h server/red_worker: multiple client support - base split 2011-08-23 18:01:04 +03:00
red_common.h server/common: introduce common/spice_common.h 2011-03-02 17:27:51 +02:00
red_dispatcher.c server: registering RedChannel in reds, instead of Channel 2011-08-23 18:27:46 +03:00
red_dispatcher.h server: registering RedChannel in reds, instead of Channel 2011-08-23 18:27:46 +03:00
red_memslots.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
red_memslots.h Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
red_parse_qxl.c server: add async io support 2011-07-20 16:00:19 +03:00
red_parse_qxl.h server/red_worker: add ref counting to RedDrawable 2011-08-23 18:07:10 +03:00
red_tunnel_worker.c server: registering RedChannel in reds, instead of Channel 2011-08-23 18:27:46 +03:00
red_tunnel_worker.h server: Unset executable bit of red_tunnel_worker.h 2011-05-05 20:04:49 +03:00
red_worker.c drawables count for debug 2011-08-23 18:27:53 +03:00
red_worker.h server: registering RedChannel in reds, instead of Channel 2011-08-23 18:27:46 +03:00
reds_gl_canvas.c common,server: use ASSERT from spice_common.h 2011-05-03 14:44:11 +02:00
reds_gl_canvas.h autotools: correctly build canvas-related code 2011-05-03 14:44:10 +02:00
reds_sw_canvas.c common,server: use ASSERT from spice_common.h 2011-05-03 14:44:11 +02:00
reds_sw_canvas.h autotools: correctly build canvas-related code 2011-05-03 14:44:10 +02:00
reds.c Rename usbredir channel code to spicevmc 2011-08-25 14:04:27 +02:00
reds.h server: add public spice_server_get_num_clients 2011-08-23 18:29:21 +03:00
smartcard.c server: registering RedChannel in reds, instead of Channel 2011-08-23 18:27:46 +03:00
smartcard.h remove unused function 2011-07-19 13:31:10 +02:00
snd_worker.c server/snd_worker.c: add reference counting to SndChannel 2011-08-23 18:30:26 +03:00
snd_worker.h use foo(void) instead of foo() in prototypes 2011-05-02 11:24:44 +02:00
spice-experimental.h move chardevs out of experimental 2010-12-16 09:16:10 +01:00
spice-server.syms server: add public spice_server_get_num_clients 2011-08-23 18:29:21 +03:00
spice.h server: add public spice_server_get_num_clients 2011-08-23 18:29:21 +03:00
spicevmc.c Rename usbredir channel code to spicevmc 2011-08-25 14:04:27 +02:00
stat.h Relicense everything from GPL to LGPL 2.1+ 2010-04-13 22:22:15 +02:00
zlib_encoder.c add #include <config.h> to all source files 2011-05-03 14:44:10 +02:00
zlib_encoder.h applying zlib compression over glz on WAN connection 2010-06-21 15:05:37 +02:00