STRUCT DWC3_EP(9)
π NAME π
okay bestie, welcome to the struct dwc3_ep(9) page from the Kernel API Manual β¨ This is the device side endpoint representation β literally the struct vibe for a DWC3 endpoint, no cap π«Ά
β¨ SYNOPSIS β¨
Here's the whole struct, copied exactly because we do not mess with code, periodt:
struct dwc3_ep {
struct usb_ep endpoint;
struct delayed_work nostream_work;
struct list_head cancelled_list;
struct list_head pending_list;
struct list_head started_list;
struct dwc3_trb *trb_pool;
dma_addr_t trb_pool_dma;
struct dwc3 *dwc;
u32 saved_state;
unsigned int flags;
#define DWC3_EP_ENABLED BIT(0);
#define DWC3_EP_STALL BIT(1);
#define DWC3_EP_WEDGE BIT(2);
#define DWC3_EP_TRANSFER_STARTED BIT(3);
#define DWC3_EP_END_TRANSFER_PENDING BIT(4);
#define DWC3_EP_PENDING_REQUEST BIT(5);
#define DWC3_EP_DELAY_START BIT(6);
#define DWC3_EP_WAIT_TRANSFER_COMPLETE BIT(7);
#define DWC3_EP_IGNORE_NEXT_NOSTREAM BIT(8);
#define DWC3_EP_FORCE_RESTART_STREAM BIT(9);
#define DWC3_EP_STREAM_PRIMED BIT(10);
#define DWC3_EP_PENDING_CLEAR_STALL BIT(11);
#define DWC3_EP_TXFIFO_RESIZED BIT(12);
#define DWC3_EP_DELAY_STOP BIT(13);
#define DWC3_EP_RESOURCE_ALLOCATED BIT(14);
#define DWC3_EP0_DIR_IN BIT(31);
u8 trb_enqueue;
u8 trb_dequeue;
u8 number;
u8 type;
u8 resource_index;
u32 frame_number;
u32 interval;
char name[20];
unsigned direction:1;
unsigned stream_capable:1;
u8 combo_num;
int start_cmd_status;
};
π Members π
endpointβ usb endpoint πnostream_workβ work for handling bulkNoStreamcancelled_listβ list of cancelled requests for this endpointpending_listβ list of pending requests for this endpointstarted_listβ list of started requests on this endpointtrb_poolβ array of transaction bufferstrb_pool_dmaβ dma address oftrb_pooldwcβ pointer to DWC controllersaved_stateβ ep state saved during hibernationflagsβ endpoint flags (wedged,stalled, ...)trb_enqueueβ enqueue'pointer'into TRB array π¦trb_dequeueβ dequeue'pointer'into TRB array π¦numberβ endpoint number (1 - 15)typeβ set tobmAttributes & USB_ENDPOINT_XFERTYPE_MASKβresource_indexβ Resource transfer indexframe_numberβ set to the frame number we want this transfer to start (ISOC) πΈintervalβ the interval on which the ISOC transfer is started πΈnameβ a human readable name e.g.ep1out-bulkπdirectionβ true for TX, false for RXstream_capableβ true when streams are enabledcombo_numβ the test combinationBIT[15:14]of the frame number to test isochronousSTART TRANSFERcommand failure workaround πstart_cmd_statusβ the status of testingSTART TRANSFERcommand withcombo_num = 'b00π
π₯ SEE ALSO π₯
Kernel file ./drivers/usb/dwc3/core.h is the plug, and these are the adjacent icons you might wanna peek at, iykyk:
struct dwc3_event_buffer(9)struct dwc3_trb(9)struct dwc3_hwparams(9)struct dwc3_request(9)struct dwc3_glue_ops(9)struct dwc3(9)struct dwc3_event_depevt(9)struct dwc3_event_devt(9)struct dwc3_event_gevt(9)union dwc3_event(9)struct dwc3_gadget_ep_cmd_params(9)dwc3_mdwidth(9)
and that's the whole page, bestie π«Ά this struct dwc3_ep(9) manual comes from ./drivers/usb/dwc3, dated October 2026 β slay, bye π
β¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms