1 /* 2 * Copyright (c) 2022, sakumisu 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef USBD_CDC_ECM_H 7 #define USBD_CDC_ECM_H 8 9 #include "usb_cdc.h" 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 /* Init cdc ecm interface driver */ 16 struct usbd_interface *usbd_cdc_ecm_init_intf(struct usbd_interface *intf, const uint8_t int_ep, const uint8_t out_ep, const uint8_t in_ep); 17 18 int usbd_cdc_ecm_set_connect(bool connect, uint32_t speed[2]); 19 20 void usbd_cdc_ecm_data_recv_done(uint32_t len); 21 void usbd_cdc_ecm_data_send_done(uint32_t len); 22 int usbd_cdc_ecm_start_write(uint8_t *buf, uint32_t len); 23 int usbd_cdc_ecm_start_read(uint8_t *buf, uint32_t len); 24 25 #ifdef CONFIG_USBDEV_CDC_ECM_USING_LWIP 26 #include "lwip/netif.h" 27 #include "lwip/pbuf.h" 28 struct pbuf *usbd_cdc_ecm_eth_rx(void); 29 int usbd_cdc_ecm_eth_tx(struct pbuf *p); 30 #endif 31 32 #ifdef __cplusplus 33 } 34 #endif 35 36 #endif /* USBD_CDC_ECM_H */ 37