Added const modifiers to device mode class drivers.
Added parameter directions to function parameter documentation. Added new experimental FAST_STREAM_FUNCTIONS compile time option to speed up stream transfers at the expense of a higher FLASH consumption (needs testing to verify improved throughput).
This commit is contained in:
parent
3cbdcd3686
commit
f1076ac4d6
115 changed files with 1031 additions and 633 deletions
|
@ -41,8 +41,8 @@
|
|||
* to the output Ethernet frame if the host is requesting the IP or MAC address of the
|
||||
* virtual server device on the network.
|
||||
*
|
||||
* \param InDataStart Pointer to the start of the incoming packet's ARP header
|
||||
* \param OutDataStart Pointer to the start of the outgoing packet's ARP header
|
||||
* \param[in] InDataStart Pointer to the start of the incoming packet's ARP header
|
||||
* \param[out] OutDataStart Pointer to the start of the outgoing packet's ARP header
|
||||
*
|
||||
* \return The number of bytes written to the out Ethernet frame if any, NO_RESPONSE otherwise
|
||||
*/
|
||||
|
|
|
@ -40,9 +40,9 @@
|
|||
/** Processes a DHCP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if the host is requesting or accepting an IP address.
|
||||
*
|
||||
* \param IPHeaderInStart Pointer to the start of the incoming packet's IP header
|
||||
* \param DHCPHeaderInStart Pointer to the start of the incoming packet's DHCP header
|
||||
* \param DHCPHeaderOutStart Pointer to the start of the outgoing packet's DHCP header
|
||||
* \param[in] IPHeaderInStart Pointer to the start of the incoming packet's IP header
|
||||
* \param[in] DHCPHeaderInStart Pointer to the start of the incoming packet's DHCP header
|
||||
* \param[out] DHCPHeaderOutStart Pointer to the start of the outgoing packet's DHCP header
|
||||
*
|
||||
* \return The number of bytes written to the out Ethernet frame if any, NO_RESPONSE otherwise
|
||||
*/
|
||||
|
|
|
@ -110,8 +110,8 @@ void Ethernet_ProcessPacket(Ethernet_Frame_Info_t* FrameIN, Ethernet_Frame_Info_
|
|||
/** Calculates the appropriate ethernet checksum, consisting of the addition of the one's
|
||||
* compliment of each word, complimented.
|
||||
*
|
||||
* \param Data Pointer to the packet buffer data whose checksum must be calculated
|
||||
* \param Bytes Number of bytes in the data buffer to process
|
||||
* \param[in] Data Pointer to the packet buffer data whose checksum must be calculated
|
||||
* \param[in] Bytes Number of bytes in the data buffer to process
|
||||
*
|
||||
* \return A 16-bit Ethernet checksum value
|
||||
*/
|
||||
|
|
|
@ -63,8 +63,8 @@
|
|||
|
||||
/** Performs a comparison between two MAC addresses, indicating if they are identical.
|
||||
*
|
||||
* \param MAC1 First MAC address
|
||||
* \param MAC2 Second MAC address
|
||||
* \param[in] MAC1 First MAC address
|
||||
* \param[in] MAC2 Second MAC address
|
||||
*
|
||||
* \return True if the addresses match, false otherwise
|
||||
*/
|
||||
|
|
|
@ -40,9 +40,9 @@
|
|||
/** Processes an ICMP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if the host is issuing a ICMP ECHO request.
|
||||
*
|
||||
* \param FrameIN Pointer to the incomming Ethernet frame information structure
|
||||
* \param InDataStart Pointer to the start of the incoming packet's ICMP header
|
||||
* \param OutDataStart Pointer to the start of the outgoing packet's ICMP header
|
||||
* \param[in] FrameIN Pointer to the incomming Ethernet frame information structure
|
||||
* \param[in] InDataStart Pointer to the start of the incoming packet's ICMP header
|
||||
* \param[out] OutDataStart Pointer to the start of the outgoing packet's ICMP header
|
||||
*
|
||||
* \return The number of bytes written to the out Ethernet frame if any, NO_RESPONSE otherwise
|
||||
*/
|
||||
|
|
|
@ -39,9 +39,9 @@
|
|||
/** Processes an IP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if one is created by a subprotocol handler.
|
||||
*
|
||||
* \param FrameIN Pointer to the incomming Ethernet frame information structure
|
||||
* \param InDataStart Pointer to the start of the incoming packet's IP header
|
||||
* \param OutDataStart Pointer to the start of the outgoing packet's IP header
|
||||
* \param[in] FrameIN Pointer to the incomming Ethernet frame information structure
|
||||
* \param[in] InDataStart Pointer to the start of the incoming packet's IP header
|
||||
* \param[out] OutDataStart Pointer to the start of the outgoing packet's IP header
|
||||
*
|
||||
* \return The number of bytes written to the out Ethernet frame if any, NO_RESPONSE if no
|
||||
* response was generated, NO_PROCESS if the packet processing was deferred until the
|
||||
|
|
|
@ -59,8 +59,8 @@
|
|||
|
||||
/** Performs a comparison between two IP addresses, indicating if they are identical.
|
||||
*
|
||||
* \param IP1 First IP address
|
||||
* \param IP2 Second IP address
|
||||
* \param[in] IP1 First IP address
|
||||
* \param[in] IP2 Second IP address
|
||||
*
|
||||
* \return True if the addresses match, false otherwise
|
||||
*/
|
||||
|
|
|
@ -51,7 +51,7 @@
|
|||
|
||||
/** Decodes an Ethernet frame header and prints its contents to through the USART in a human readable format.
|
||||
*
|
||||
* \param InDataStart Pointer to the start of an Ethernet frame header
|
||||
* \param[in] InDataStart Pointer to the start of an Ethernet frame header
|
||||
*/
|
||||
void DecodeEthernetFrameHeader(void* InDataStart)
|
||||
{
|
||||
|
@ -93,7 +93,7 @@ void DecodeEthernetFrameHeader(void* InDataStart)
|
|||
|
||||
/** Decodes an ARP header and prints its contents to through the USART in a human readable format.
|
||||
*
|
||||
* \param InDataStart Pointer to the start of an ARP packet header
|
||||
* \param[in] InDataStart Pointer to the start of an ARP packet header
|
||||
*/
|
||||
void DecodeARPHeader(void* InDataStart)
|
||||
{
|
||||
|
@ -143,7 +143,7 @@ void DecodeARPHeader(void* InDataStart)
|
|||
|
||||
/** Decodes an IP header and prints its contents to through the USART in a human readable format.
|
||||
*
|
||||
* \param InDataStart Pointer to the start of an IP packet header
|
||||
* \param[in] InDataStart Pointer to the start of an IP packet header
|
||||
*/
|
||||
void DecodeIPHeader(void* InDataStart)
|
||||
{
|
||||
|
@ -181,7 +181,7 @@ void DecodeIPHeader(void* InDataStart)
|
|||
|
||||
/** Decodes an ICMP header and prints its contents to through the USART in a human readable format.
|
||||
*
|
||||
* \param InDataStart Pointer to the start of an ICMP packet header
|
||||
* \param[in] InDataStart Pointer to the start of an ICMP packet header
|
||||
*/
|
||||
void DecodeICMPHeader(void* InDataStart)
|
||||
{
|
||||
|
@ -197,7 +197,7 @@ void DecodeICMPHeader(void* InDataStart)
|
|||
|
||||
/** Decodes a TCP header and prints its contents to through the USART in a human readable format.
|
||||
*
|
||||
* \param InDataStart Pointer to the start of a TCP packet header
|
||||
* \param[in] InDataStart Pointer to the start of a TCP packet header
|
||||
*/
|
||||
void DecodeTCPHeader(void* InDataStart)
|
||||
{
|
||||
|
@ -225,7 +225,7 @@ void DecodeTCPHeader(void* InDataStart)
|
|||
|
||||
/** Decodes an UDP header and prints its contents to through the USART in a human readable format.
|
||||
*
|
||||
* \param InDataStart Pointer to the start of a UDP packet header
|
||||
* \param[in] InDataStart Pointer to the start of a UDP packet header
|
||||
*/
|
||||
void DecodeUDPHeader(void* InDataStart)
|
||||
{
|
||||
|
@ -243,7 +243,7 @@ void DecodeUDPHeader(void* InDataStart)
|
|||
|
||||
/** Decodes an DHCP header and prints its contents to through the USART in a human readable format.
|
||||
*
|
||||
* \param InDataStart Pointer to the start of a DHCP packet header
|
||||
* \param[in] InDataStart Pointer to the start of a DHCP packet header
|
||||
*/
|
||||
void DecodeDHCPHeader(void* InDataStart)
|
||||
{
|
||||
|
|
|
@ -171,9 +171,9 @@ void TCP_Init(void)
|
|||
|
||||
/** Sets the state and callback handler of the given port, specified in big endian to the given state.
|
||||
*
|
||||
* \param Port Port whose state and callback function to set, specified in big endian
|
||||
* \param State New state of the port, a value from the TCP_PortStates_t enum
|
||||
* \param Handler Application callback handler for the port
|
||||
* \param[in] Port Port whose state and callback function to set, specified in big endian
|
||||
* \param[in] State New state of the port, a value from the TCP_PortStates_t enum
|
||||
* \param[in] Handler Application callback handler for the port
|
||||
*
|
||||
* \return Boolean true if the port state was set, false otherwise (no more space in the port state table)
|
||||
*/
|
||||
|
@ -220,7 +220,7 @@ bool TCP_SetPortState(uint16_t Port, uint8_t State, void (*Handler)(TCP_Connecti
|
|||
|
||||
/** Retrieves the current state of a given TCP port, specified in big endian.
|
||||
*
|
||||
* \param Port TCP port whose state is to be retrieved, given in big-endian
|
||||
* \param[in] Port TCP port whose state is to be retrieved, given in big-endian
|
||||
*
|
||||
* \return A value from the TCP_PortStates_t enum
|
||||
*/
|
||||
|
@ -242,10 +242,10 @@ uint8_t TCP_GetPortState(uint16_t Port)
|
|||
/** Sets the connection state of the given port, remote address and remote port to the given TCP connection state. If the
|
||||
* connection exists in the connection state table it is updated, otherwise it is created if possible.
|
||||
*
|
||||
* \param Port TCP port of the connection on the device, specified in big endian
|
||||
* \param RemoteAddress Remote protocol IP address of the connected device
|
||||
* \param RemotePort TCP port of the remote device in the connection, specified in big endian
|
||||
* \param State TCP connection state, a value from the TCP_ConnectionStates_t enum
|
||||
* \param[in] Port TCP port of the connection on the device, specified in big endian
|
||||
* \param[in] RemoteAddress Remote protocol IP address of the connected device
|
||||
* \param[in] RemotePort TCP port of the remote device in the connection, specified in big endian
|
||||
* \param[in] State TCP connection state, a value from the TCP_ConnectionStates_t enum
|
||||
*
|
||||
* \return Boolean true if the connection was updated or created, false otherwise (no more space in the connection state table)
|
||||
*/
|
||||
|
@ -283,9 +283,9 @@ bool TCP_SetConnectionState(uint16_t Port, IP_Address_t RemoteAddress, uint16_t
|
|||
|
||||
/** Retrieves the current state of a given TCP connection to a host.
|
||||
*
|
||||
* \param Port TCP port on the device in the connection, specified in big endian
|
||||
* \param RemoteAddress Remote protocol IP address of the connected host
|
||||
* \param RemotePort Remote TCP port of the connected host, specified in big endian
|
||||
* \param[in] Port TCP port on the device in the connection, specified in big endian
|
||||
* \param[in] RemoteAddress Remote protocol IP address of the connected host
|
||||
* \param[in] RemotePort Remote TCP port of the connected host, specified in big endian
|
||||
*
|
||||
* \return A value from the TCP_ConnectionStates_t enum
|
||||
*/
|
||||
|
@ -310,9 +310,9 @@ uint8_t TCP_GetConnectionState(uint16_t Port, IP_Address_t RemoteAddress, uint16
|
|||
|
||||
/** Retrieves the connection info structure of a given connection to a host.
|
||||
*
|
||||
* \param Port TCP port on the device in the connection, specified in big endian
|
||||
* \param RemoteAddress Remote protocol IP address of the connected host
|
||||
* \param RemotePort Remote TCP port of the connected host, specified in big endian
|
||||
* \param[in] Port TCP port on the device in the connection, specified in big endian
|
||||
* \param[in] RemoteAddress Remote protocol IP address of the connected host
|
||||
* \param[in] RemotePort Remote TCP port of the connected host, specified in big endian
|
||||
*
|
||||
* \return ConnectionInfo structure of the connection if found, NULL otherwise
|
||||
*/
|
||||
|
@ -337,9 +337,9 @@ TCP_ConnectionInfo_t* TCP_GetConnectionInfo(uint16_t Port, IP_Address_t RemoteAd
|
|||
/** Processes a TCP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if one is created by a application handler.
|
||||
*
|
||||
* \param IPHeaderInStart Pointer to the start of the incoming packet's IP header
|
||||
* \param TCPHeaderInStart Pointer to the start of the incoming packet's TCP header
|
||||
* \param TCPHeaderOutStart Pointer to the start of the outgoing packet's TCP header
|
||||
* \param[in] IPHeaderInStart Pointer to the start of the incoming packet's IP header
|
||||
* \param[in] TCPHeaderInStart Pointer to the start of the incoming packet's TCP header
|
||||
* \param[out] TCPHeaderOutStart Pointer to the start of the outgoing packet's TCP header
|
||||
*
|
||||
* \return The number of bytes written to the out Ethernet frame if any, NO_RESPONSE if no
|
||||
* response was generated, NO_PROCESS if the packet processing was deferred until the
|
||||
|
@ -579,10 +579,10 @@ int16_t TCP_ProcessTCPPacket(void* IPHeaderInStart, void* TCPHeaderInStart, void
|
|||
/** Calculates the appropriate TCP checksum, consisting of the addition of the one's compliment of each word,
|
||||
* complimented.
|
||||
*
|
||||
* \param TCPHeaderOutStart Pointer to the start of the packet's outgoing TCP header
|
||||
* \param SourceAddress Source protocol IP address of the outgoing IP header
|
||||
* \param DestinationAddress Destination protocol IP address of the outgoing IP header
|
||||
* \param TCPOutSize Size in bytes of the TCP data header and payload
|
||||
* \param[in] TCPHeaderOutStart Pointer to the start of the packet's outgoing TCP header
|
||||
* \param[in] SourceAddress Source protocol IP address of the outgoing IP header
|
||||
* \param[in] DestinationAddress Destination protocol IP address of the outgoing IP header
|
||||
* \param[in] TCPOutSize Size in bytes of the TCP data header and payload
|
||||
*
|
||||
* \return A 16-bit TCP checksum value
|
||||
*/
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
|
||||
/** Application macro: Determines if the given application buffer contains a packet received from the host
|
||||
*
|
||||
* \param Buffer Application buffer to check
|
||||
* \param[in] Buffer Application buffer to check
|
||||
*
|
||||
* \return Boolean true if the buffer contains a packet from the host, false otherwise
|
||||
*/
|
||||
|
@ -97,7 +97,7 @@
|
|||
|
||||
/** Application macro: Indicates if the application buffer is currently locked by the application for device-to-host transfers.
|
||||
*
|
||||
* \param Buffer Application buffer to check
|
||||
* \param[in] Buffer Application buffer to check
|
||||
*
|
||||
* \return Boolean true if the buffer has been captured by the application for device-to-host transmissions, false otherwise
|
||||
*/
|
||||
|
@ -106,7 +106,7 @@
|
|||
|
||||
/** Application macro: Indicates if the application can lock the buffer for multiple continued device-to-host transmissions.
|
||||
*
|
||||
* \param Buffer Application buffer to check
|
||||
* \param[in] Buffer Application buffer to check
|
||||
*
|
||||
* \return Boolean true if the buffer may be captured by the application for device-to-host transmissions, false otherwise
|
||||
*/
|
||||
|
@ -117,32 +117,32 @@
|
|||
*
|
||||
* \note The application must check that the buffer can be locked first using TCP_APP_CAN_CAPTURE_BUFFER().
|
||||
*
|
||||
* \param Buffer Application buffer to lock
|
||||
* \param[in] Buffer Application buffer to lock
|
||||
*/
|
||||
#define TCP_APP_CAPTURE_BUFFER(Buffer) MACROS{ Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->InUse = true; }MACROE
|
||||
|
||||
/** Application macro: Releases a captured application buffer, allowing for host-to-device packets to be received.
|
||||
*
|
||||
* \param Buffer Application buffer to release
|
||||
* \param[in] Buffer Application buffer to release
|
||||
*/
|
||||
#define TCP_APP_RELEASE_BUFFER(Buffer) MACROS{ Buffer->InUse = false; }MACROE
|
||||
|
||||
/** Application macro: Sends the contents of the given application buffer to the host.
|
||||
*
|
||||
* \param Buffer Application buffer to send
|
||||
* \param Len Length of data contained in the buffer
|
||||
* \param[in] Buffer Application buffer to send
|
||||
* \param[in] Len Length of data contained in the buffer
|
||||
*/
|
||||
#define TCP_APP_SEND_BUFFER(Buffer, Len) MACROS{ Buffer->Direction = TCP_PACKETDIR_OUT; Buffer->Length = Len; Buffer->Ready = true; }MACROE
|
||||
|
||||
/** Application macro: Clears the application buffer, ready for a packet to be written to it.
|
||||
*
|
||||
* \param Buffer Application buffer to clear
|
||||
* \param[in] Buffer Application buffer to clear
|
||||
*/
|
||||
#define TCP_APP_CLEAR_BUFFER(Buffer) MACROS{ Buffer->Ready = false; Buffer->Length = 0; }MACROE
|
||||
|
||||
/** Application macro: Closes an open connection to a host.
|
||||
*
|
||||
* \param Connection Open TCP connection to close
|
||||
* \param[in] Connection Open TCP connection to close
|
||||
*/
|
||||
#define TCP_APP_CLOSECONNECTION(Connection) MACROS{ Connection->State = TCP_Connection_Closing; }MACROE
|
||||
|
||||
|
|
|
@ -40,9 +40,9 @@
|
|||
/** Processes a UDP packet inside an Ethernet frame, and writes the appropriate response
|
||||
* to the output Ethernet frame if a subprotocol handler has created a response packet.
|
||||
*
|
||||
* \param IPHeaderInStart Pointer to the start of the incoming packet's IP header
|
||||
* \param UDPHeaderInStart Pointer to the start of the incoming packet's UDP header
|
||||
* \param UDPHeaderOutStart Pointer to the start of the outgoing packet's UDP header
|
||||
* \param[in] IPHeaderInStart Pointer to the start of the incoming packet's IP header
|
||||
* \param[in] UDPHeaderInStart Pointer to the start of the incoming packet's UDP header
|
||||
* \param[out] UDPHeaderOutStart Pointer to the start of the outgoing packet's UDP header
|
||||
*
|
||||
* \return The number of bytes written to the out Ethernet frame if any, NO_RESPONSE otherwise
|
||||
*/
|
||||
|
|
|
@ -78,8 +78,8 @@ void Webserver_Init(void)
|
|||
|
||||
/** Indicates if a given request equals the given HTTP command.
|
||||
*
|
||||
* \param RequestHeader HTTP request made by the host
|
||||
* \param Command HTTP command to compare the request to
|
||||
* \param[in] RequestHeader HTTP request made by the host
|
||||
* \param[in] Command HTTP command to compare the request to
|
||||
*
|
||||
* \return Boolean true if the command matches the request, false otherwise
|
||||
*/
|
||||
|
@ -92,8 +92,8 @@ static bool IsHTTPCommand(uint8_t* RequestHeader, char* Command)
|
|||
/** Application callback routine, executed each time the TCP processing task runs. This callback determines what request
|
||||
* has been made (if any), and serves up appropriate responses.
|
||||
*
|
||||
* \param ConnectionState Pointer to a TCP Connection State structure giving connection information
|
||||
* \param Buffer Pointer to the application's send/receive packet buffer
|
||||
* \param[in] ConnectionState Pointer to a TCP Connection State structure giving connection information
|
||||
* \param[in,out] Buffer Pointer to the application's send/receive packet buffer
|
||||
*/
|
||||
void Webserver_ApplicationCallback(TCP_ConnectionState_t* ConnectionState, TCP_ConnectionBuffer_t* Buffer)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue