1 /* 2 * Copyright (c) 2022, sakumisu 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef USBD_RNDIS_H 7 #define USBD_RNDIS_H 8 9 #include "usb_cdc.h" 10 11 #ifdef __cplusplus 12 extern "C" { 13 #endif 14 15 /* Init rndis interface driver */ 16 struct usbd_interface *usbd_rndis_init_intf(struct usbd_interface *intf, 17 const uint8_t out_ep, 18 const uint8_t in_ep, 19 const uint8_t int_ep, uint8_t mac[6]); 20 21 int usbd_rndis_set_connect(bool connect); 22 23 void usbd_rndis_data_recv_done(uint32_t len); 24 void usbd_rndis_data_send_done(uint32_t len); 25 int usbd_rndis_start_write(uint8_t *buf, uint32_t len); 26 int usbd_rndis_start_read(uint8_t *buf, uint32_t len); 27 28 #ifdef CONFIG_USBDEV_RNDIS_USING_LWIP 29 struct pbuf *usbd_rndis_eth_rx(void); 30 int usbd_rndis_eth_tx(struct pbuf *p); 31 #endif 32 33 #ifdef __cplusplus 34 } 35 #endif 36 37 #endif /* USBD_RNDIS_H */ 38