struct usbd_ep_pipe_state_t * usb_init_ep(struct usbd_function_ctx_header *ctx, int ep, enum usb_ep_dir dir, size_t size) { struct usbd_ep_pipe_state_t *s; if (dir == USB_EP_RX) s = &usb.ep_state[ctx->ep_rx_offset + ep].rx; else s = &usb.ep_state[ctx->ep_tx_offset + ep].tx; memset(s, 0, sizeof(*s)); s->ep_maxsize = size; s->ep_num = ep; s->ep_dir = dir; usb_pipe_enable(s); return (s); }
struct usbd_ep_pipe_state_t * usb_init_ep(struct usbd_function_ctx_header *ctx, int ep, enum usb_ep_dir dir, size_t size) { struct usbd_ep_pipe_state_t *s; s = &usbd_pipe_state[usb.rx_pipe_count + usb.tx_pipe_count]; memset(s, 0, sizeof(*s)); if (dir == USB_EP_RX) { s->ep_num = usb.rx_pipe_count; usb.rx_pipe_count += 1; } else { s->ep_num = usb.tx_pipe_count; usb.tx_pipe_count += 1; } s->ep_dir = dir; s->ep_maxsize = size; usb_pipe_enable(s); return (s); }