Fix accidental struct copies on the stack in the old RNDISEthernet demo TCP code.
[pub/USBasp.git] / Demos / Device / ClassDriver / RNDISEthernet / Lib / TCP.h
index 4f2cdae..d812270 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2010.
+     Copyright (C) Dean Camera, 2012.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2012  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
                        uint16_t               RemotePort; /**< Connection port number on the host */
                        IP_Address_t           RemoteAddress; /**< Connection protocol IP address of the host */
                        TCP_ConnectionInfo_t   Info; /**< Connection information, including application buffer */
-                       uint8_t                State; /**< Current connection state, a value from the TCP_ConnectionStates_t enum */
+                       uint8_t                State; /**< Current connection state, a value from the \ref TCP_ConnectionStates_t enum */
                } TCP_ConnectionState_t;
 
                /** Type define for a TCP port state. */
                typedef struct
                {
                        uint16_t               Port; /**< TCP port number on the device */
-                       uint8_t                State; /**< Current port state, a value from the TCP_PortStates_t enum */
+                       uint8_t                State; /**< Current port state, a value from the \ref TCP_PortStates_t enum */
                        void                   (*ApplicationHandler) (TCP_ConnectionState_t* ConnectionState,
                                                                      TCP_ConnectionBuffer_t* Buffer); /**< Port application handler */
                } TCP_PortState_t;
                        uint32_t               SequenceNumber; /**< Data sequence number of the packet */
                        uint32_t               AcknowledgmentNumber; /**< Data acknowledgment number of the packet */
 
-                       unsigned char          Reserved : 4; /**< Reserved, must be all 0 */
-                       unsigned char          DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */
+                       unsigned               Reserved : 4; /**< Reserved, must be all 0 */
+                       unsigned               DataOffset : 4; /**< Offset of the data from the start of the header, in 4 byte chunks */
                        uint8_t                Flags; /**< TCP packet flags */
                        uint16_t               WindowSize; /**< Current data window size (bytes remaining in reception buffer) */
 
                } TCP_Header_t;
 
        /* Function Prototypes: */
-               void                  TCP_TCPTask(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo);
+               void                  TCP_TCPTask(USB_ClassInfo_RNDIS_Device_t* const RNDISInterfaceInfo,
+                                                 Ethernet_Frame_Info_t* const FrameOUT);
                void                  TCP_Init(void);
                bool                  TCP_SetPortState(const uint16_t Port,
                                                       const uint8_t State,
                                                       void (*Handler)(TCP_ConnectionState_t*, TCP_ConnectionBuffer_t*));
                uint8_t               TCP_GetPortState(const uint16_t Port);
                bool                  TCP_SetConnectionState(const uint16_t Port,
-                                                            const IP_Address_t RemoteAddress,
+                                                            const IP_Address_t* RemoteAddress,
                                                             const uint16_t RemotePort,
                                                             const uint8_t State);
                uint8_t               TCP_GetConnectionState(const uint16_t Port,
-                                                            const IP_Address_t RemoteAddress,
+                                                            const IP_Address_t* RemoteAddress,
                                                             const uint16_t RemotePort);
                TCP_ConnectionInfo_t* TCP_GetConnectionInfo(const uint16_t Port,
-                                                           const IP_Address_t RemoteAddress,
+                                                           const IP_Address_t* RemoteAddress,
                                                            const uint16_t RemotePort);
                int16_t               TCP_ProcessTCPPacket(void* IPHeaderInStart,
                                                           void* TCPHeaderInStart,
 
                #if defined(INCLUDE_FROM_TCP_C)
                        static uint16_t TCP_Checksum16(void* TCPHeaderOutStart,
-                                                      const IP_Address_t SourceAddress,
-                                                                                  const IP_Address_t DestinationAddress,
+                                                      const IP_Address_t* SourceAddress,
+                                                      const IP_Address_t* DestinationAddress,
                                                       uint16_t TCPOutSize);
                #endif