Add FatFS library to the Webserver project, extend the HTTP server so that it now...
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / RNDIS.h
index 157fff3..ef98ccd 100644 (file)
@@ -1,21 +1,21 @@
 /*\r
              LUFA Library\r
-     Copyright (C) Dean Camera, 2009.\r
+     Copyright (C) Dean Camera, 2010.\r
               \r
   dean [at] fourwalledcubicle [dot] com\r
       www.fourwalledcubicle.com\r
 */\r
 \r
 /*\r
-  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, and distribute this software\r
-  and its documentation for any purpose and without fee is hereby\r
-  granted, provided that the above copyright notice appear in all\r
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
+  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+\r
+  Permission to use, copy, modify, distribute, and sell this \r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in \r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting \r
+  documentation, and that the name of the author not be used in \r
+  advertising or publicity pertaining to distribution of the \r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
 */\r
 \r
 /** \ingroup Group_USBClassRNDIS\r
+ *  @defgroup Group_USBClassRNDISCommon  Common Class Definitions\r
+ *\r
+ *  \section Module Description\r
+ *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB\r
+ *  RNDIS Class.\r
+ *\r
  *  @{\r
  */\r
 \r
@@ -37,6 +43,8 @@
 \r
        /* Includes: */\r
                #include "../../USB.h"\r
+               #include "CDC.h"\r
+               #include "RNDISConstants.h"\r
                \r
                #include <string.h>\r
        \r
@@ -61,7 +69,7 @@
                /** Maximum size in bytes of a RNDIS control message which can be sent or received */\r
                #define RNDIS_MESSAGE_BUFFER_SIZE             128\r
 \r
-               /** Maximum size in bytes of an Ethernet frame which can be sent or received */\r
+               /** Maximum size in bytes of an Ethernet frame according to the Ethernet standard */\r
                #define ETHERNET_FRAME_SIZE_MAX               1500\r
                \r
                /** Notification request value for a RNDIS Response Available notification */\r
                        uint8_t       Octets[6]; /**< Individual bytes of a MAC address */\r
                } MAC_Address_t;\r
 \r
-               /** Type define for a RNDIS message header, sent before RNDIS messages */\r
-               typedef struct\r
-               {\r
-                       uint32_t MessageType; /**< RNDIS message type, a REMOTE_NDIS_*_MSG constant */\r
-                       uint32_t MessageLength; /**< Total length of the RNDIS message, in bytes */\r
-               } RNDIS_Message_Header_t;\r
-\r
                /** Type define for an Ethernet frame buffer. */\r
                typedef struct\r
                {\r
                        bool          FrameInBuffer; /**< Indicates if a frame is currently stored in the buffer */\r
                } Ethernet_Frame_Info_t;\r
 \r
+               /** Type define for a RNDIS message header, sent before RNDIS messages */\r
+               typedef struct\r
+               {\r
+                       uint32_t MessageType; /**< RNDIS message type, a REMOTE_NDIS_*_MSG constant */\r
+                       uint32_t MessageLength; /**< Total length of the RNDIS message, in bytes */\r
+               } RNDIS_Message_Header_t;\r
+\r
                /** Type define for a RNDIS packet message, used to encapsulate Ethernet packets sent to and from the adapter */\r
                typedef struct\r
                {\r
                        uint32_t PerPacketInfoLength;\r
                        uint32_t VcHandle;\r
                        uint32_t Reserved;\r
-               } RNDIS_PACKET_MSG_t;\r
+               } RNDIS_Packet_Message_t;\r
 \r
                /** Type define for a RNDIS Initialize command message */\r
                typedef struct\r
                        uint32_t MajorVersion;\r
                        uint32_t MinorVersion;\r
                        uint32_t MaxTransferSize;\r
-               } RNDIS_INITIALIZE_MSG_t;\r
+               } RNDIS_Initialize_Message_t;\r
                \r
                /** Type define for a RNDIS Initialize complete response message */\r
                typedef struct\r
                        uint32_t PacketAlignmentFactor;\r
                        uint32_t AFListOffset;\r
                        uint32_t AFListSize;\r
-               } RNDIS_INITIALIZE_CMPLT_t;\r
+               } RNDIS_Initialize_Complete_t;\r
                \r
                /** Type define for a RNDIS Keepalive command message */\r
                typedef struct\r
                        uint32_t MessageType;\r
                        uint32_t MessageLength;\r
                        uint32_t RequestId;\r
-               } RNDIS_KEEPALIVE_MSG_t;\r
+               } RNDIS_KeepAlive_Message_t;\r
 \r
                /** Type define for a RNDIS Keepalive complete message */\r
                typedef struct\r
                        uint32_t MessageLength;\r
                        uint32_t RequestId;\r
                        uint32_t Status;\r
-               } RNDIS_KEEPALIVE_CMPLT_t;\r
+               } RNDIS_KeepAlive_Complete_t;\r
 \r
                /** Type define for a RNDIS Reset complete message */\r
                typedef struct\r
                        uint32_t Status;\r
 \r
                        uint32_t AddressingReset;\r
-               } RNDIS_RESET_CMPLT_t;\r
+               } RNDIS_Reset_Complete_t;\r
                \r
                /** Type define for a RNDIS Set command message */\r
                typedef struct\r
                        uint32_t InformationBufferLength;\r
                        uint32_t InformationBufferOffset;\r
                        uint32_t DeviceVcHandle;\r
-               } RNDIS_SET_MSG_t;\r
+               } RNDIS_Set_Message_t;\r
 \r
                /** Type define for a RNDIS Set complete response message */\r
                typedef struct\r
                        uint32_t MessageLength;\r
                        uint32_t RequestId;\r
                        uint32_t Status;\r
-               } RNDIS_SET_CMPLT_t;\r
+               } RNDIS_Set_Complete_t;\r
                \r
                /** Type define for a RNDIS Query command message */\r
                typedef struct\r
                        uint32_t InformationBufferLength;\r
                        uint32_t InformationBufferOffset;\r
                        uint32_t DeviceVcHandle;\r
-               } RNDIS_QUERY_MSG_t;\r
+               } RNDIS_Query_Message_t;\r
                \r
                /** Type define for a RNDIS Query complete response message */\r
                typedef struct\r
                        \r
                        uint32_t InformationBufferLength;\r
                        uint32_t InformationBufferOffset;\r
-               } RNDIS_QUERY_CMPLT_t;\r
+               } RNDIS_Query_Complete_t;\r
                                \r
        /* Disable C linkage for C++ Compilers: */\r
                #if defined(__cplusplus)\r