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_t data_size, uint8_t endpoint, size_t parent_req_size, Lambda callback)

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, Lambda callback)

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