mirror of
https://github.com/zephyrproject-rtos/zephyr
synced 2025-08-31 08:05:49 +00:00
The transfer API provides 'high' level functions to manage sending and reception of USB data. A USB (class) driver has to register the generic usb_transfer_ep_callback as endpoint status callback in order to use the API. With this API, the class driver does not need to take care of low-level usb transfer management (packet splitting, ZLP, synchronization...). The usb_transfer methods will split transfer into multiple transactions depending endpoint max size and controller capabilities. Once the transfer is completed, class driver is notified by a callback. The usb_transfer method can be executed in IRQ/atomic context. A usb_transfer synchronous helper exists which block-waits until transfer completion. In write case, a transfer is complete when all data has been sent. In read case, a transfer is complete when the exact amount of data requested has been received or if a short-pkt (including ZLP) is received. transfer methods are thread-safe. A transfer can be cancelled at any time. Signed-off-by: Loic Poulain <loic.poulain@linaro.org> |
||
---|---|---|
.. | ||
bluetooth | ||
console | ||
cpp | ||
debug | ||
dfu | ||
disk | ||
fs | ||
logging | ||
mgmt | ||
net | ||
random | ||
shell | ||
storage | ||
usb | ||
CMakeLists.txt | ||
Kconfig |