X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/071e02c6b6b4837fa9cf0b6d4c749994e02638d7..bea72a8412f99b294c00341fa16a8308bcc66f15:/Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h diff --git a/Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h b/Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h index 40b1a85e9..838e0134b 100644 --- a/Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h +++ b/Demos/Device/LowLevel/RNDISEthernet/Lib/TCP.h @@ -45,46 +45,46 @@ #include "ProtocolDecoders.h" /* Macros: */ - /** Maximum number of TCP ports which can be open at the one time */ + /** Maximum number of TCP ports which can be open at the one time. */ #define MAX_OPEN_TCP_PORTS 1 - /** Maximum number of TCP connections which can be sustained at the one time */ + /** Maximum number of TCP connections which can be sustained at the one time. */ #define MAX_TCP_CONNECTIONS 3 - /** TCP window size, giving the maximum number of bytes which can be buffered at the one time */ + /** TCP window size, giving the maximum number of bytes which can be buffered at the one time. */ #define TCP_WINDOW_SIZE 512 - /** Port number for HTTP transmissions */ + /** Port number for HTTP transmissions. */ #define TCP_PORT_HTTP SwapEndian_16(80) - /** Data direction indicator for a TCP application buffer, indicating data from host-to-device */ + /** Data direction indicator for a TCP application buffer, indicating data from host-to-device. */ #define TCP_PACKETDIR_IN false - /** Data direction indicator for a TCP application buffer, indicating data from device-to-host */ + /** Data direction indicator for a TCP application buffer, indicating data from device-to-host. */ #define TCP_PACKETDIR_OUT true - /** Congestion Window Reduced TCP flag mask */ + /** Congestion Window Reduced TCP flag mask. */ #define TCP_FLAG_CWR (1 << 7) - /** Explicit Congestion Notification TCP flag mask */ + /** Explicit Congestion Notification TCP flag mask. */ #define TCP_FLAG_ECE (1 << 6) - /** Urgent TCP flag mask */ + /** Urgent TCP flag mask. */ #define TCP_FLAG_URG (1 << 5) - /** Data Acknowledge TCP flag mask */ + /** Data Acknowledge TCP flag mask. */ #define TCP_FLAG_ACK (1 << 4) - /** Data Push TCP flag mask */ + /** Data Push TCP flag mask. */ #define TCP_FLAG_PSH (1 << 3) - /** Reset TCP flag mask */ + /** Reset TCP flag mask. */ #define TCP_FLAG_RST (1 << 2) - /** Synchronize TCP flag mask */ + /** Synchronize TCP flag mask. */ #define TCP_FLAG_SYN (1 << 1) - /** Connection Finalize TCP flag mask */ + /** Connection Finalize TCP flag mask. */ #define TCP_FLAG_FIN (1 << 0) /** Application macro: Determines if the given application buffer contains a packet received from the host @@ -115,7 +115,7 @@ /** Application macro: Captures the application buffer, locking it for device-to-host transmissions only. This should be * performed when the application needs to transmit several packets worth of data in succession with no interruptions from the host. * - * \note The application must check that the buffer can be locked first using TCP_APP_CAN_CAPTURE_BUFFER(). + * \pre The application must check that the buffer can be locked first using TCP_APP_CAN_CAPTURE_BUFFER(). * * \param[in] Buffer Application buffer to lock */ @@ -147,14 +147,14 @@ #define TCP_APP_CLOSECONNECTION(Connection) MACROS{ Connection->State = TCP_Connection_Closing; }MACROE /* Enums: */ - /** Enum for possible TCP port states */ + /** Enum for possible TCP port states. */ enum TCP_PortStates_t { TCP_Port_Closed = 0, /**< TCP port closed, no connections to a host may be made on this port. */ TCP_Port_Open = 1, /**< TCP port open, connections to a host may be made on this port. */ }; - /** Enum for possible TCP connection states */ + /** Enum for possible TCP connection states. */ enum TCP_ConnectionStates_t { TCP_Connection_Listen = 0, /**< Listening for a connection from a host */ @@ -171,7 +171,7 @@ }; /* Type Defines: */ - /** Type define for a TCP connection buffer structure, including size, data and direction */ + /** Type define for a TCP connection buffer structure, including size, data and direction. */ typedef struct { uint16_t Length; /**< Length of data in the TCP application buffer */ @@ -180,10 +180,10 @@ bool Ready; /**< If data from host, indicates buffer ready to be read, otherwise indicates * buffer ready to be sent to the host */ - bool InUse; /** Indicates if the buffer is locked to to the current direction, and cannot be changed */ + bool InUse; /**< Indicates if the buffer is locked to to the current direction, and cannot be changed */ } TCP_ConnectionBuffer_t; - /** Type define for a TCP connection information structure */ + /** Type define for a TCP connection information structure. */ typedef struct { uint32_t SequenceNumberIn; /**< Current TCP sequence number for host-to-device */ @@ -191,7 +191,7 @@ TCP_ConnectionBuffer_t Buffer; /**< Connection application data buffer */ } TCP_ConnectionInfo_t; - /** Type define for a complete TCP connection state */ + /** Type define for a complete TCP connection state. */ typedef struct { uint16_t Port; /**< Connection port number on the device */ @@ -201,7 +201,7 @@ uint8_t State; /**< Current connection state, a value from the TCP_ConnectionStates_t enum */ } TCP_ConnectionState_t; - /** Type define for a TCP port state */ + /** Type define for a TCP port state. */ typedef struct { uint16_t Port; /**< TCP port number on the device */ @@ -210,7 +210,7 @@ TCP_ConnectionBuffer_t* Buffer); /**< Port application handler */ } TCP_PortState_t; - /** Type define for a TCP packet header */ + /** Type define for a TCP packet header. */ typedef struct { uint16_t SourcePort; /**< Source port of the TCP packet */ @@ -219,7 +219,7 @@ 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 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 */ uint8_t Flags; /**< TCP packet flags */ uint16_t WindowSize; /**< Current data window size (bytes remaining in reception buffer) */ @@ -228,22 +228,32 @@ uint16_t UrgentPointer; /**< Urgent data pointer */ } TCP_Header_t; - /* External Variables: */ - TCP_PortState_t PortStateTable[MAX_OPEN_TCP_PORTS]; - /* Function Prototypes: */ void TCP_Init(void); void TCP_Task(void); - bool TCP_SetPortState(uint16_t Port, uint8_t State, void (*Handler)(TCP_ConnectionState_t*, TCP_ConnectionBuffer_t*)); - uint8_t TCP_GetPortState(uint16_t Port); - bool TCP_SetConnectionState(uint16_t Port, IP_Address_t RemoteAddress, uint16_t RemotePort, uint8_t State); - uint8_t TCP_GetConnectionState(uint16_t Port, IP_Address_t RemoteAddress, uint16_t RemotePort); - TCP_ConnectionInfo_t* TCP_GetConnectionInfo(uint16_t Port, IP_Address_t RemoteAddress, uint16_t RemotePort); - int16_t TCP_ProcessTCPPacket(void* IPHeaderInStart, void* TCPHeaderInStart, void* TCPHeaderOutStart); + 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 uint16_t RemotePort, + const uint8_t State); + uint8_t TCP_GetConnectionState(const uint16_t Port, + const IP_Address_t RemoteAddress, + const uint16_t RemotePort); + TCP_ConnectionInfo_t* TCP_GetConnectionInfo(const uint16_t Port, + const IP_Address_t RemoteAddress, + const uint16_t RemotePort); + int16_t TCP_ProcessTCPPacket(void* IPHeaderInStart, + void* TCPHeaderInStart, + void* TCPHeaderOutStart); #if defined(INCLUDE_FROM_TCP_C) - static uint16_t TCP_Checksum16(void* TCPHeaderOutStart, IP_Address_t SourceAddress, - IP_Address_t DestinationAddress, uint16_t TCPOutSize); + static uint16_t TCP_Checksum16(void* TCPHeaderOutStart, + const IP_Address_t SourceAddress, + const IP_Address_t DestinationAddress, + uint16_t TCPOutSize); #endif #endif