Add NO_INTERNAL_SERIAL compile time option to bootloaders to prevent them from having...
[pub/USBasp.git] / Demos / Device / LowLevel / RNDISEthernet / RNDISEthernet.c
index e651a1b..d77d25b 100644 (file)
@@ -99,21 +99,30 @@ void EVENT_USB_Disconnect(void)
  */\r
 void EVENT_USB_ConfigurationChanged(void)\r
 {\r
  */\r
 void EVENT_USB_ConfigurationChanged(void)\r
 {\r
-       /* Setup CDC Notification, Rx and Tx Endpoints */\r
-       Endpoint_ConfigureEndpoint(CDC_TX_EPNUM, EP_TYPE_BULK,\r
-                                      ENDPOINT_DIR_IN, CDC_TXRX_EPSIZE,\r
-                                  ENDPOINT_BANK_SINGLE);\r
+       /* Indicate USB connected and ready */\r
+       LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
 \r
 \r
-       Endpoint_ConfigureEndpoint(CDC_RX_EPNUM, EP_TYPE_BULK,\r
-                                      ENDPOINT_DIR_OUT, CDC_TXRX_EPSIZE,\r
-                                  ENDPOINT_BANK_SINGLE);\r
+       /* Setup CDC Notification, Rx and Tx Endpoints */\r
+       if (!(Endpoint_ConfigureEndpoint(CDC_TX_EPNUM, EP_TYPE_BULK,\r
+                                            ENDPOINT_DIR_IN, CDC_TXRX_EPSIZE,\r
+                                        ENDPOINT_BANK_SINGLE)))\r
+       {\r
+               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
+       }                                                          \r
 \r
 \r
-       Endpoint_ConfigureEndpoint(CDC_NOTIFICATION_EPNUM, EP_TYPE_INTERRUPT,\r
-                                      ENDPOINT_DIR_IN, CDC_NOTIFICATION_EPSIZE,\r
-                                  ENDPOINT_BANK_SINGLE);\r
+       if (!(Endpoint_ConfigureEndpoint(CDC_RX_EPNUM, EP_TYPE_BULK,\r
+                                            ENDPOINT_DIR_OUT, CDC_TXRX_EPSIZE,\r
+                                        ENDPOINT_BANK_SINGLE)))\r
+       {\r
+               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
+       }\r
 \r
 \r
-       /* Indicate USB connected and ready */\r
-       LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
+       if (!(Endpoint_ConfigureEndpoint(CDC_NOTIFICATION_EPNUM, EP_TYPE_INTERRUPT,\r
+                                            ENDPOINT_DIR_IN, CDC_NOTIFICATION_EPSIZE,\r
+                                        ENDPOINT_BANK_SINGLE)))\r
+       {\r
+               LEDs_SetAllLEDs(LEDMASK_USB_ERROR);\r
+       }\r
 }\r
 \r
 /** Event handler for the USB_UnhandledControlPacket event. This is used to catch standard and class specific\r
 }\r
 \r
 /** Event handler for the USB_UnhandledControlPacket event. This is used to catch standard and class specific\r
@@ -205,7 +214,7 @@ void RNDIS_Task(void)
        if ((CurrRNDISState == RNDIS_Data_Initialized) && !(MessageHeader->MessageLength))\r
        {\r
                /* Create a new packet header for reading/writing */\r
        if ((CurrRNDISState == RNDIS_Data_Initialized) && !(MessageHeader->MessageLength))\r
        {\r
                /* Create a new packet header for reading/writing */\r
-               RNDIS_PACKET_MSG_t RNDISPacketHeader;\r
+               RNDIS_Packet_Message_t RNDISPacketHeader;\r
 \r
                /* Select the data OUT endpoint */\r
                Endpoint_SelectEndpoint(CDC_RX_EPNUM);\r
 \r
                /* Select the data OUT endpoint */\r
                Endpoint_SelectEndpoint(CDC_RX_EPNUM);\r
@@ -214,7 +223,7 @@ void RNDIS_Task(void)
                if (Endpoint_IsOUTReceived() && !(FrameIN.FrameInBuffer))\r
                {\r
                        /* Read in the packet message header */\r
                if (Endpoint_IsOUTReceived() && !(FrameIN.FrameInBuffer))\r
                {\r
                        /* Read in the packet message header */\r
-                       Endpoint_Read_Stream_LE(&RNDISPacketHeader, sizeof(RNDIS_PACKET_MSG_t));\r
+                       Endpoint_Read_Stream_LE(&RNDISPacketHeader, sizeof(RNDIS_Packet_Message_t));\r
 \r
                        /* Stall the request if the data is too large */\r
                        if (RNDISPacketHeader.DataLength > ETHERNET_FRAME_SIZE_MAX)\r
 \r
                        /* Stall the request if the data is too large */\r
                        if (RNDISPacketHeader.DataLength > ETHERNET_FRAME_SIZE_MAX)\r
@@ -243,16 +252,16 @@ void RNDIS_Task(void)
                if (Endpoint_IsINReady() && FrameOUT.FrameInBuffer)\r
                {\r
                        /* Clear the packet header with all 0s so that the relevant fields can be filled */\r
                if (Endpoint_IsINReady() && FrameOUT.FrameInBuffer)\r
                {\r
                        /* Clear the packet header with all 0s so that the relevant fields can be filled */\r
-                       memset(&RNDISPacketHeader, 0, sizeof(RNDIS_PACKET_MSG_t));\r
+                       memset(&RNDISPacketHeader, 0, sizeof(RNDIS_Packet_Message_t));\r
 \r
                        /* Construct the required packet header fields in the buffer */\r
                        RNDISPacketHeader.MessageType   = REMOTE_NDIS_PACKET_MSG;\r
 \r
                        /* Construct the required packet header fields in the buffer */\r
                        RNDISPacketHeader.MessageType   = REMOTE_NDIS_PACKET_MSG;\r
-                       RNDISPacketHeader.MessageLength = (sizeof(RNDIS_PACKET_MSG_t) + FrameOUT.FrameLength);\r
-                       RNDISPacketHeader.DataOffset    = (sizeof(RNDIS_PACKET_MSG_t) - sizeof(RNDIS_Message_Header_t));\r
+                       RNDISPacketHeader.MessageLength = (sizeof(RNDIS_Packet_Message_t) + FrameOUT.FrameLength);\r
+                       RNDISPacketHeader.DataOffset    = (sizeof(RNDIS_Packet_Message_t) - sizeof(RNDIS_Message_Header_t));\r
                        RNDISPacketHeader.DataLength    = FrameOUT.FrameLength;\r
 \r
                        /* Send the packet header to the host */\r
                        RNDISPacketHeader.DataLength    = FrameOUT.FrameLength;\r
 \r
                        /* Send the packet header to the host */\r
-                       Endpoint_Write_Stream_LE(&RNDISPacketHeader, sizeof(RNDIS_PACKET_MSG_t));\r
+                       Endpoint_Write_Stream_LE(&RNDISPacketHeader, sizeof(RNDIS_Packet_Message_t));\r
 \r
                        /* Send the Ethernet frame data to the host */\r
                        Endpoint_Write_Stream_LE(FrameOUT.FrameData, RNDISPacketHeader.DataLength);\r
 \r
                        /* Send the Ethernet frame data to the host */\r
                        Endpoint_Write_Stream_LE(FrameOUT.FrameData, RNDISPacketHeader.DataLength);\r