template <size_t callback_size = sizeof(std::max_align_t)>
class CallbackRequest
Defined at line 391 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
A special Request type which can contain a callback lambda to be executed
upon completion of a USB request. The callback_size parameter represents the
size of the callback, and must be at least sizeof(std::max_align_t) bytes.
Public Methods
void CallbackRequest<callback_size> (usb_request_t * request, size_t parent_request_size)
Defined at line 399 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
void take ()
It is NOT safe to call take() on a CallbackRequest.
In order to ensure that each CallbackRequest is only
ever invoked once, we make it an error to call take().
Defined at line 404 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
template <typename Lambda>
zx_status_t Alloc (std::optional<CallbackRequest<callback_size>> *out,uint64_tdata_size,uint8_tendpoint,size_tparent_req_size,Lambdacallback)
Defined at line 406 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
void Queue (CallbackRequest<callback_size> request, const ddk::UsbProtocolClient & client)
Defined at line 416 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
template <typename Lambda>
void Queue (CallbackRequest<callback_size>request,const ddk::UsbProtocolClient &client,Lambdacallback)
Defined at line 420 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
auto private_storage ()
Defined at line 424 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
void Queue (const ddk::UsbProtocolClient & function)
Defined at line 425 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h
template <typename Lambda>
void Queue (const ddk::UsbProtocolClient & function, Lambda callback)
Defined at line 434 of file ../../src/devices/usb/lib/usb/include/usb/request-cpp.h