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
committerMarc-André Lureau <marcandre.lureau@redhat.com>2011-02-27 18:26:15 +0100
commitb79e7320de6b2cd07000b9713ec77f3439eaf80d (patch)
tree945c352db65ecee3f7bf262e4b0ed9b10def62e8 /server/reds.h
parentd47912241f4bc263cf3c19c07ed3907681826277 (diff)
downloadspice-b79e7320de6b2cd07000b9713ec77f3439eaf80d.tar.gz
spice-b79e7320de6b2cd07000b9713ec77f3439eaf80d.tar.xz
spice-b79e7320de6b2cd07000b9713ec77f3439eaf80d.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 b974edad..235e532e 100644
--- a/server/reds.h
+++ b/server/reds.h
@@ -28,7 +28,9 @@
#define __visible__ __attribute__ ((visibility ("default")))
-typedef struct RedsStream {
+typedef struct RedsStream RedsStream;
+
+struct RedsStream {
void *ctx;
int socket;
@@ -46,7 +48,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;
@@ -73,6 +80,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);