summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-11-27 19:14:23 +0700
committerhathach <[email protected]>2025-11-27 19:14:23 +0700
commit1465a9b5bc64e39d9051b281ffc1f13b5cb6ad9e (patch)
tree3f01e2c063cefd10162c68f78f39e88aeaeececd /src
parent9a9bf0fd7b5a005fd4701ab6cb5b1728ecc0baa2 (diff)
make vendor_read_* API() is only available when CFG_TUD_VENDOR_RX_BUFSIZE > 0
vendor_write_flush() and write_available() only available when CFG_TUD_VENDOR_TX_BUFSIZE > 0
Diffstat (limited to 'src')
-rw-r--r--src/class/vendor/vendor_device.c4
-rw-r--r--src/class/vendor/vendor_device.h11
-rw-r--r--src/common/tusb_fifo.c2
-rw-r--r--src/tusb.c9
4 files changed, 15 insertions, 11 deletions
diff --git a/src/class/vendor/vendor_device.c b/src/class/vendor/vendor_device.c
index bb736aba8..d468bd0ba 100644
--- a/src/class/vendor/vendor_device.c
+++ b/src/class/vendor/vendor_device.c
@@ -103,6 +103,7 @@ bool tud_vendor_n_mounted(uint8_t idx) {
//--------------------------------------------------------------------+
// Read API
//--------------------------------------------------------------------+
+#if CFG_TUD_VENDOR_RX_BUFSIZE > 0
uint32_t tud_vendor_n_available(uint8_t idx) {
TU_VERIFY(idx < CFG_TUD_VENDOR, 0);
vendord_interface_t *p_itf = &_vendord_itf[idx];
@@ -133,6 +134,7 @@ void tud_vendor_n_read_flush(uint8_t idx) {
tu_edpt_stream_clear(&p_itf->stream.rx);
tu_edpt_stream_read_xfer(p_itf->rhport, &p_itf->stream.rx);
}
+#endif
//--------------------------------------------------------------------+
// Write API
@@ -143,6 +145,7 @@ uint32_t tud_vendor_n_write(uint8_t idx, const void *buffer, uint32_t bufsize) {
return tu_edpt_stream_write(p_itf->rhport, &p_itf->stream.tx, buffer, (uint16_t)bufsize);
}
+#if CFG_TUD_VENDOR_TX_BUFSIZE > 0
uint32_t tud_vendor_n_write_flush(uint8_t idx) {
TU_VERIFY(idx < CFG_TUD_VENDOR, 0);
vendord_interface_t *p_itf = &_vendord_itf[idx];
@@ -154,6 +157,7 @@ uint32_t tud_vendor_n_write_available(uint8_t idx) {
vendord_interface_t *p_itf = &_vendord_itf[idx];
return tu_edpt_stream_write_available(p_itf->rhport, &p_itf->stream.tx);
}
+#endif
//--------------------------------------------------------------------+
// USBD Driver API
diff --git a/src/class/vendor/vendor_device.h b/src/class/vendor/vendor_device.h
index 05de84f20..daf9c19cf 100644
--- a/src/class/vendor/vendor_device.h
+++ b/src/class/vendor/vendor_device.h
@@ -51,16 +51,21 @@ extern "C" {
// Application API (Multiple Interfaces) i.e CFG_TUD_VENDOR > 1
//--------------------------------------------------------------------+
bool tud_vendor_n_mounted(uint8_t idx);
+
+#if CFG_TUD_VENDOR_RX_BUFSIZE > 0
uint32_t tud_vendor_n_available(uint8_t idx);
bool tud_vendor_n_peek(uint8_t idx, uint8_t *ui8);
-
uint32_t tud_vendor_n_read(uint8_t idx, void *buffer, uint32_t bufsize);
uint32_t tud_vendor_n_read_discard(uint8_t idx, uint32_t count);
void tud_vendor_n_read_flush(uint8_t idx);
+#endif
uint32_t tud_vendor_n_write(uint8_t idx, const void *buffer, uint32_t bufsize);
+
+#if CFG_TUD_VENDOR_TX_BUFSIZE > 0
uint32_t tud_vendor_n_write_flush(uint8_t idx);
uint32_t tud_vendor_n_write_available(uint8_t idx);
+#endif
TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_vendor_n_write_str(uint8_t idx, const char *str) {
return tud_vendor_n_write(idx, str, strlen(str));
@@ -76,6 +81,7 @@ TU_ATTR_ALWAYS_INLINE static inline bool tud_vendor_mounted(void) {
return tud_vendor_n_mounted(0);
}
+#if CFG_TUD_VENDOR_RX_BUFSIZE > 0
TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_vendor_available(void) {
return tud_vendor_n_available(0);
}
@@ -95,6 +101,7 @@ TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_vendor_read_discard(uint32_t co
TU_ATTR_ALWAYS_INLINE static inline void tud_vendor_read_flush(void) {
tud_vendor_n_read_flush(0);
}
+#endif
TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_vendor_write(const void *buffer, uint32_t bufsize) {
return tud_vendor_n_write(0, buffer, bufsize);
@@ -104,11 +111,11 @@ TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_vendor_write_str(const char *st
return tud_vendor_n_write_str(0, str);
}
+#if CFG_TUD_VENDOR_TX_BUFSIZE > 0
TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_vendor_write_flush(void) {
return tud_vendor_n_write_flush(0);
}
-#if CFG_TUD_VENDOR_TX_BUFSIZE > 0
TU_ATTR_ALWAYS_INLINE static inline uint32_t tud_vendor_write_available(void) {
return tud_vendor_n_write_available(0);
}
diff --git a/src/common/tusb_fifo.c b/src/common/tusb_fifo.c
index f78167f94..06b0d6a58 100644
--- a/src/common/tusb_fifo.c
+++ b/src/common/tusb_fifo.c
@@ -499,7 +499,7 @@ bool tu_fifo_read(tu_fifo_t *f, void *buffer) {
return ret;
}
-// Read one item without removing it from the FIFO, correct rad index if overflowed
+// Read one item without removing it from the FIFO, correct read index if overflowed
bool tu_fifo_peek(tu_fifo_t *f, void *p_buffer) {
return ff_peek_local(f, p_buffer, f->wr_idx, f->rd_idx);
}
diff --git a/src/tusb.c b/src/tusb.c
index 94121b174..b6cfd1260 100644
--- a/src/tusb.c
+++ b/src/tusb.c
@@ -533,14 +533,7 @@ uint32_t tu_edpt_stream_read_xfer(uint8_t hwid, tu_edpt_stream_t* s) {
}
uint32_t tu_edpt_stream_read(uint8_t hwid, tu_edpt_stream_t* s, void* buffer, uint32_t bufsize) {
- uint32_t num_read;
- if (tu_fifo_depth(&s->ff) > 0) {
- num_read = tu_fifo_read_n(&s->ff, buffer, (uint16_t)bufsize);
- } else {
- // non-fifo mode not support this
- num_read = 0;
- }
-
+ const uint32_t num_read = tu_fifo_read_n(&s->ff, buffer, (uint16_t)bufsize);
tu_edpt_stream_read_xfer(hwid, s);
return num_read;
}