Upgrade doxygen configuration files to the latest version.
[pub/lufa.git] / Demos / Device / LowLevel / RNDISEthernet / RNDISEthernet.c
index 3c5344e..ec6c089 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2016.
+     Copyright (C) Dean Camera, 2021.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2016  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2021  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
 #include "RNDISEthernet.h"
 
+/** Global to store the incoming frame from the host before it is processed by the device. */
+static Ethernet_Frame_Info_t FrameIN;
+
+/** Global to store the outgoing frame created in the device before it is sent to the host. */
+static Ethernet_Frame_Info_t FrameOUT;
+
 /** Main program entry point. This routine configures the hardware required by the application, then
  *  enters a loop to run the application tasks in sequence.
  */
@@ -43,17 +49,12 @@ int main(void)
 {
        SetupHardware();
 
-       /* Webserver Initialization */
-       TCP_Init();
-       Webserver_Init();
-
        LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
        GlobalInterruptEnable();
 
        for (;;)
        {
                Ethernet_Task();
-               TCP_Task();
                RNDIS_Task();
                USB_USBTask();
        }
@@ -130,6 +131,9 @@ void EVENT_USB_Device_ConfigurationChanged(void)
  */
 void EVENT_USB_Device_ControlRequest(void)
 {
+       /* Send MS OS Compatibility descriptor if requested by the host. */
+       CheckIfMSCompatibilityDescriptorRequest();
+
        /* Process RNDIS class commands */
        switch (USB_ControlRequest.bRequest)
        {
@@ -284,8 +288,7 @@ void Ethernet_Task(void)
                /* Indicate packet processing started */
                LEDs_SetAllLEDs(LEDMASK_USB_BUSY);
 
-               /* Process the ethernet frame - replace this with your own Ethernet handler code as desired */
-               Ethernet_ProcessPacket();
+               // TODO: Process FrameIN here, and optionally fill FrameOUT.
 
                /* Indicate packet processing complete */
                LEDs_SetAllLEDs(LEDMASK_USB_READY);