summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2022-12-21 17:46:11 +0700
committerhathach <[email protected]>2022-12-21 17:49:50 +0700
commit9e8ea44925e80abd7189ed7a673762527ee3adfd (patch)
tree45a54d24a0bd72541da229e44e6ca4164e05e38a /src
parentcd9008e5a9c8da81d9736f7e0bf72c5ba409a7f1 (diff)
add tuh_cdc_write_clear, rename read_flush() to read_clear()
Diffstat (limited to 'src')
-rw-r--r--src/class/cdc/cdc_host.c24
-rw-r--r--src/class/cdc/cdc_host.h5
2 files changed, 23 insertions, 6 deletions
diff --git a/src/class/cdc/cdc_host.c b/src/class/cdc/cdc_host.c
index ce0efe6e3..2f3406378 100644
--- a/src/class/cdc/cdc_host.c
+++ b/src/class/cdc/cdc_host.c
@@ -190,10 +190,16 @@ uint32_t tu_edpt_stream_write_available(tu_edpt_stream_t* s)
return (uint32_t) tu_fifo_remaining(&s->ff);
}
-void tu_edpt_stream_read_clear(uint8_t daddr, tu_edpt_stream_t* s)
+bool tu_edpt_stream_read_clear(uint8_t daddr, tu_edpt_stream_t* s)
{
- tu_fifo_clear(&s->ff);
+ bool ret = tu_fifo_clear(&s->ff);
tu_edpt_stream_read_xfer(daddr, s);
+ return ret;
+}
+
+bool tu_edpt_stream_write_clear(tu_edpt_stream_t* s)
+{
+ return tu_fifo_clear(&s->ff);
}
typedef struct {
@@ -331,6 +337,14 @@ uint32_t tuh_cdc_write_flush(uint8_t idx)
return tu_edpt_stream_write_xfer(p_cdc->daddr, &p_cdc->stream.tx);
}
+bool tuh_cdc_write_clear(uint8_t idx)
+{
+ cdch_interface_t* p_cdc = get_itf(idx);
+ TU_VERIFY(p_cdc);
+
+ return tu_edpt_stream_write_clear(&p_cdc->stream.tx);
+}
+
uint32_t tuh_cdc_write_available(uint8_t idx)
{
cdch_interface_t* p_cdc = get_itf(idx);
@@ -355,12 +369,12 @@ uint32_t tuh_cdc_read_available(uint8_t idx)
return tu_edpt_stream_read_available(&p_cdc->stream.rx);
}
-void tuh_cdc_read_flush (uint8_t idx)
+bool tuh_cdc_read_clear (uint8_t idx)
{
cdch_interface_t* p_cdc = get_itf(idx);
- TU_VERIFY(p_cdc, );
+ TU_VERIFY(p_cdc);
- tu_edpt_stream_read_clear(p_cdc->daddr, &p_cdc->stream.rx);
+ return tu_edpt_stream_read_clear(p_cdc->daddr, &p_cdc->stream.rx);
}
//--------------------------------------------------------------------+
diff --git a/src/class/cdc/cdc_host.h b/src/class/cdc/cdc_host.h
index 476431cc5..02ae69111 100644
--- a/src/class/cdc/cdc_host.h
+++ b/src/class/cdc/cdc_host.h
@@ -110,6 +110,9 @@ uint32_t tuh_cdc_write(uint8_t idx, void const* buffer, uint32_t bufsize);
// Force sending data if possible, return number of forced bytes
uint32_t tuh_cdc_write_flush(uint8_t idx);
+// Clear the transmit FIFO
+bool tuh_cdc_write_clear(uint8_t idx);
+
//--------------------------------------------------------------------+
// Read API
//--------------------------------------------------------------------+
@@ -121,7 +124,7 @@ uint32_t tuh_cdc_read_available(uint8_t idx);
uint32_t tuh_cdc_read (uint8_t idx, void* buffer, uint32_t bufsize);
// Clear the received FIFO
-void tuh_cdc_read_flush (uint8_t idx);
+bool tuh_cdc_read_clear (uint8_t idx);
//--------------------------------------------------------------------+
// Control Endpoint (Request) API