zephyr/subsys
Loic Poulain 16921b0698 usb: Add transfer management API
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>
2018-03-16 14:45:24 -07:00
..
bluetooth Bluetooth: Remove rand driver and use entropy instead 2018-03-14 16:47:50 +01:00
console
cpp
debug arch: x86: Unwind the stack on fatal errors 2018-03-16 14:12:15 -07:00
dfu
disk
fs subsys: fs: Fix fs_file_t and fs_dir_t usage 2018-03-13 09:47:58 -05:00
logging syslog: Add networking backend 2018-03-15 15:19:46 +02:00
mgmt
net ieee802154: Make AR flag check generic and not tight to L2 2018-03-16 13:57:55 -07:00
random
shell net: websocket: Add console support 2018-03-15 15:17:36 +02:00
storage
usb usb: Add transfer management API 2018-03-16 14:45:24 -07:00
CMakeLists.txt
Kconfig