diff options
| author | hathach <[email protected]> | 2025-11-27 19:14:23 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2025-11-27 19:14:23 +0700 |
| commit | 1465a9b5bc64e39d9051b281ffc1f13b5cb6ad9e (patch) | |
| tree | 3f01e2c063cefd10162c68f78f39e88aeaeececd /src | |
| parent | 9a9bf0fd7b5a005fd4701ab6cb5b1728ecc0baa2 (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.c | 4 | ||||
| -rw-r--r-- | src/class/vendor/vendor_device.h | 11 | ||||
| -rw-r--r-- | src/common/tusb_fifo.c | 2 | ||||
| -rw-r--r-- | src/tusb.c | 9 |
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; } |
