aboutsummaryrefslogtreecommitdiff
path: root/example-cdc/stream.h
diff options
context:
space:
mode:
Diffstat (limited to 'example-cdc/stream.h')
-rw-r--r--example-cdc/stream.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/example-cdc/stream.h b/example-cdc/stream.h
new file mode 100644
index 0000000..15cbe63
--- /dev/null
+++ b/example-cdc/stream.h
@@ -0,0 +1,24 @@
+#define BUFSIZE 128
+#define FLAG_CONNECTED (1 << 0)
+#define FLAG_SEND_AVAIL (1 << 1)
+#define FLAG_RECV_AVAIL (1 << 2)
+
+/*
+ * Current implementation is synchronous and buffers are not yet used.
+ */
+struct stream {
+ chopstx_mutex_t mtx;
+ chopstx_cond_t cnd;
+ uint8_t buf_send[BUFSIZE]; /* Not yet used. */
+ uint8_t buf_recv[BUFSIZE]; /* Not yet used. */
+ uint8_t cnt_send_head; /* Not yet used. */
+ uint8_t cnt_send_tail; /* Not yet used. */
+ uint8_t cnt_recv_head; /* Not yet used. */
+ uint8_t cnt_recv_tail; /* Not yet used. */
+ uint32_t flags;
+};
+
+struct stream *stream_open (void);
+int stream_wait_connection (struct stream *st);
+int stream_send (struct stream *st, uint8_t *buf, uint8_t count);
+int stream_recv (struct stream *st, uint8_t *buf);