summaryrefslogtreecommitdiff
path: root/src/device/usbd.c
diff options
context:
space:
mode:
authorPeter Lawrence <[email protected]>2020-04-12 15:41:18 -0500
committerPeter Lawrence <[email protected]>2020-04-12 15:41:18 -0500
commitbb3bbcc00bfa641d285b28931ceb8bd04c3f7651 (patch)
tree3a6a47cf13ac41d4076ecf97362527e096bd2c6b /src/device/usbd.c
parent13a3081d308828ae6e4b9a40bb8ac7bf5b0e424c (diff)
usbnet: OS-agnostic (Windows/Linux/macOS) network driver
Diffstat (limited to 'src/device/usbd.c')
-rw-r--r--src/device/usbd.c38
1 files changed, 32 insertions, 6 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 2adac429c..9d15ea4a4 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -184,21 +184,47 @@ static usbd_class_driver_t const _usbd_driver[] =
#endif
#if CFG_TUD_NET
+#if CFG_TUD_NET != OPT_NET_EEM
+ /* RNDIS management interface */
{
- .class_code =
-#if CFG_TUD_NET == OPT_NET_RNDIS
- TUD_RNDIS_ITF_CLASS,
-#else
- TUSB_CLASS_CDC,
+ .class_code = TUD_RNDIS_ITF_CLASS,
+ .init = netd_init,
+ .reset = netd_reset,
+ .open = netd_open,
+ .control_request = netd_control_request,
+ .control_complete = netd_control_complete,
+ .xfer_cb = netd_xfer_cb,
+ .sof = NULL,
+ },
#endif
+ /* CDC-ECM management interface; CDC-EEM data interface */
+ {
+ .class_code = TUSB_CLASS_CDC,
.init = netd_init,
.reset = netd_reset,
+#if CFG_TUD_NET == OPT_NET_EEM
+ .open = netd_open_data,
+#else
.open = netd_open,
+#endif
.control_request = netd_control_request,
.control_complete = netd_control_complete,
.xfer_cb = netd_xfer_cb,
- .sof = NULL
+ .sof = NULL,
},
+ /* RNDIS/CDC-ECM data interface */
+#if CFG_TUD_NET != OPT_NET_EEM
+ {
+ .class_code = TUSB_CLASS_CDC_DATA,
+ .init = netd_init_data,
+ .reset = NULL,
+ .open = netd_open_data,
+ .control_request = NULL,
+ .control_complete = NULL,
+ .xfer_cb = netd_xfer_cb,
+ .sof = NULL,
+ },
+#endif
#endif
};