summaryrefslogtreecommitdiffstats
path: root/server/reds.h
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2011-02-27 09:46:14 +0100
committerAlon Levy <alevy@redhat.com>2011-07-21 15:09:25 +0300
commiteeb95c5b84e81a2ba6745fbeb1689d0ef5dc49d0 (patch)
tree2c4fd90aa21382e93bb400ca7bb2bcd6117ecb77 /server/reds.h
parent881971fbcab7c1eaf47a9edcf517aeaa09945dae (diff)
downloadspice-eeb95c5b84e81a2ba6745fbeb1689d0ef5dc49d0.tar.gz
spice-eeb95c5b84e81a2ba6745fbeb1689d0ef5dc49d0.tar.xz
spice-eeb95c5b84e81a2ba6745fbeb1689d0ef5dc49d0.zip
server: add reds_stream_{read,write,free,remove_watch}()
https://bugs.freedesktop.org/show_bug.cgi?id=34795
Diffstat (limited to 'server/reds.h')
-rw-r--r--server/reds.h16
1 files changed, 14 insertions, 2 deletions
diff --git a/server/reds.h b/server/reds.h
index 2c977296..3ed097cc 100644
--- a/server/reds.h
+++ b/server/reds.h
@@ -24,7 +24,9 @@
#define __visible__ __attribute__ ((visibility ("default")))
-typedef struct RedsStream {
+typedef struct RedsStream RedsStream;
+
+struct RedsStream {
void *ctx;
int socket;
@@ -42,7 +44,12 @@ typedef struct RedsStream {
int (*cb_writev)(void *, const struct iovec *vector, int count);
int (*cb_free)(struct RedsStream *);
-} RedsStream;
+
+ /* private */
+ ssize_t (*read)(RedsStream *s, void *buf, size_t nbyte);
+ ssize_t (*write)(RedsStream *s, const void *buf, size_t nbyte);
+ ssize_t (*writev)(RedsStream *s, const struct iovec *iov, int iovcnt);
+};
typedef struct Channel {
struct Channel *next;
@@ -81,6 +88,11 @@ struct SpiceNetWireState {
struct TunnelWorker *worker;
};
+ssize_t reds_stream_read(RedsStream *s, void *buf, size_t nbyte);
+ssize_t reds_stream_write(RedsStream *s, const void *buf, size_t nbyte);
+ssize_t reds_stream_writev(RedsStream *s, const struct iovec *iov, int iovcnt);
+void reds_stream_free(RedsStream *s);
+
void reds_desable_mm_timer();
void reds_enable_mm_timer();
void reds_update_mm_timer(uint32_t mm_time);