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