Skip to content

Commit 24fc172

Browse files
committed
update(demo/usbd_rndis): update send & recv done api, add check for this demo
1 parent 58d552d commit 24fc172

File tree

3 files changed

+22
-6
lines changed

3 files changed

+22
-6
lines changed

class/wireless/usbd_rndis.c

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -478,7 +478,7 @@ void rndis_bulk_out(uint8_t busid, uint8_t ep, uint32_t nbytes)
478478
g_rndis_rx_data_buffer += hdr->DataOffset + sizeof(rndis_generic_msg_t);
479479
g_rndis_rx_data_length = hdr->DataLength;
480480

481-
usbd_rndis_data_recv_done();
481+
usbd_rndis_data_recv_done(g_rndis_rx_data_length);
482482
}
483483

484484
void rndis_bulk_in(uint8_t busid, uint8_t ep, uint32_t nbytes)
@@ -489,6 +489,7 @@ void rndis_bulk_in(uint8_t busid, uint8_t ep, uint32_t nbytes)
489489
/* send zlp */
490490
usbd_ep_start_write(0, ep, NULL, 0);
491491
} else {
492+
usbd_rndis_data_send_done(g_rndis_tx_data_length);
492493
g_rndis_tx_data_length = 0;
493494
}
494495
}
@@ -592,3 +593,13 @@ struct usbd_interface *usbd_rndis_init_intf(struct usbd_interface *intf,
592593

593594
return intf;
594595
}
596+
597+
__WEAK void usbd_rndis_data_recv_done(uint32_t len)
598+
{
599+
(void)len;
600+
}
601+
602+
__WEAK void usbd_rndis_data_send_done(uint32_t len)
603+
{
604+
(void)len;
605+
}

class/wireless/usbd_rndis.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ struct usbd_interface *usbd_rndis_init_intf(struct usbd_interface *intf,
1818
const uint8_t in_ep,
1919
const uint8_t int_ep, uint8_t mac[6]);
2020

21-
void usbd_rndis_data_recv_done(void);
21+
void usbd_rndis_data_recv_done(uint32_t len);
22+
void usbd_rndis_data_send_done(uint32_t len);
2223

2324
#ifdef CONFIG_USBDEV_RNDIS_USING_LWIP
2425
struct pbuf *usbd_rndis_eth_rx(void);

demo/cdc_rndis_template.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
#include "usbd_core.h"
77
#include "usbd_rndis.h"
88

9+
#ifndef CONFIG_USBDEV_RNDIS_USING_LWIP
10+
#error "Please enable CONFIG_USBDEV_RNDIS_USING_LWIP for this demo"
11+
#endif
12+
913
/*!< endpoint address */
1014
#define CDC_IN_EP 0x81
1115
#define CDC_OUT_EP 0x02
@@ -170,7 +174,7 @@ rt_err_t rt_usbd_rndis_eth_tx(rt_device_t dev, struct pbuf *p)
170174
return usbd_rndis_eth_tx(p);
171175
}
172176

173-
void usbd_rndis_data_recv_done(void)
177+
void usbd_rndis_data_recv_done(uint32_t len)
174178
{
175179
eth_device_ready(&rndis_dev);
176180
}
@@ -258,12 +262,12 @@ void rndis_lwip_init(void)
258262
while (!netif_is_up(netif)) {
259263
}
260264

261-
// while (dhserv_init(&dhcp_config)) {}
265+
while (dhserv_init(&dhcp_config)) {}
262266

263-
// while (dnserv_init(&ipaddr, PORT_DNS, dns_query_proc)) {}
267+
while (dnserv_init(&ipaddr, PORT_DNS, dns_query_proc)) {}
264268
}
265269

266-
void usbd_rndis_data_recv_done(void)
270+
void usbd_rndis_data_recv_done(uint32_t len)
267271
{
268272
}
269273

0 commit comments

Comments
 (0)