# usb_request Struct Reference

A USB request. More...

`#include <request.h>`

Collaboration diagram for usb_request:

[legend]

## Data Fields
struct slist | buf_list
struct slist_node | node
unsigned long | flags
void(* | req_done )(struct udc *udc, struct usb_request *req)
void * | context
int | status
size_t | bytes_xfered

## Detailed Description

A USB request.

This structure keeps track of the data associated with a USB request for use in asynchronous transfers.

Definition at line 75 of file request.h.

## Field Documentation

struct slist usb_request::buf_list`[read]`

List of buffers associated with this request

Definition at line 77 of file request.h.

Referenced by msc_submit_write_data_req(), udc_ep0_submit_in_req(), udc_ep0_submit_out_req(), udc_ep_submit_in_req(), udc_ep_submit_out_req(), usb_req_add_buffer(), usb_req_get_first_buffer(), usb_req_init(), usbb_udc_dma_interrupt(), usbb_udc_submit_in_queue(), and usbb_udc_submit_out_queue().

size_t usb_request::bytes_xfered

The number of bytes actually transfered. May be less than len if an error occurred, or if the UDC received a short packet.

Definition at line 106 of file request.h.

Referenced by usb_req_init(), and usbb_udc_dma_interrupt().

void* usb_request::context

Arbitrary data pointer associated with this request, for use by the submitter.

Definition at line 95 of file request.h.

Referenced by msc_submit_write_data_req().

unsigned long usb_request::flags

A bitwise combination of the bits defined by enum usb_request_flag.

Definition at line 84 of file request.h.

Referenced by usb_func_get_descriptor(), usb_req_init(), and usbb_udc_submit_in_queue().

struct slist_node usb_request::node`[read]`

List node on the controller queue

Definition at line 79 of file request.h.

Referenced by udc_ep0_submit_in_req(), udc_ep0_submit_out_req(), udc_ep_submit_in_req(), udc_ep_submit_out_req(), usbb_udc_dma_interrupt(), usbb_udc_submit_in_queue(), and usbb_udc_submit_out_queue().

void(* usb_request::req_done)(struct udc *udc, struct usb_request *req)

Function to be called when this request is completed.

Parameters:

  | udc | The USB Device Controller that did the request
  | req | The request that was completed.

Referenced by msc_submit_write_data_req(), usb_func_get_descriptor(), usbb_udc_submit_in_queue(), and usbb_udc_submit_out_queue().

int usb_request::status

Status code set by the UDC driver upon completion of this request.

Definition at line 100 of file request.h.

The documentation for this struct was generated from the following file:

- include/usb/request.h