Sync FreeRTOS-Plus/Source/FreeRTOS-Plus-TCP with the version in GitHub at (23665258cabe49d5d68ba23968b6845a7c80eb34).
Notes: - header has version 2.2.0. - This sync did not bring in ./test directory, though we should. - New NetworkInterfaces are introduced by this merge. - Keil compiler support. - FreeRTOS_IP.h new API xApplicationGetRandomNumber(). - FreeRTOS_IP_Private.h new eIPEvent_t eNetworkTxEvent. - FreeRTOS_Stream_Buffer.h removing static xStreamBufferIsEmpty() and xStreamBufferIsFull(). - FreeRTOSConfigDefaults.h provides default ipconfigDNS_RECEIVE_BLOCK_TIME_TICKS. - other type changes.
This commit is contained in:
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
@ -169,6 +169,14 @@ from the FreeRTOSIPConfig.h configuration header file. */
|
||||
#define ipconfigSOCK_DEFAULT_SEND_BLOCK_TIME portMAX_DELAY
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef ipconfigDNS_RECEIVE_BLOCK_TIME_TICKS
|
||||
#define ipconfigDNS_RECEIVE_BLOCK_TIME_TICKS pdMS_TO_TICKS( 500u )
|
||||
#endif
|
||||
|
||||
#ifndef ipconfigDNS_SEND_BLOCK_TIME_TICKS
|
||||
#define ipconfigDNS_SEND_BLOCK_TIME_TICKS pdMS_TO_TICKS( 500u )
|
||||
#endif
|
||||
/*
|
||||
* FreeRTOS debug logging routine (proposal)
|
||||
* The macro will be called in the printf() style. Users can define
|
||||
@ -375,6 +383,14 @@ from the FreeRTOSIPConfig.h configuration header file. */
|
||||
#endif /* _WINDOWS_ */
|
||||
#endif /* ipconfigMAXIMUM_DISCOVER_TX_PERIOD */
|
||||
|
||||
#if( ipconfigUSE_DNS == 0 )
|
||||
/* The DNS module will not be included. */
|
||||
#if( ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) )
|
||||
/* LLMNR and NBNS depend on DNS because those protocols share a lot of code. */
|
||||
#error When either LLMNR or NBNS is used, ipconfigUSE_DNS must be defined
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef ipconfigUSE_DNS
|
||||
#define ipconfigUSE_DNS 1
|
||||
#endif
|
||||
@ -408,13 +424,6 @@ from the FreeRTOSIPConfig.h configuration header file. */
|
||||
#define ipconfigUSE_LLMNR ( 0 )
|
||||
#endif
|
||||
|
||||
#if( !defined( ipconfigUSE_DNS ) )
|
||||
#if( ( ipconfigUSE_LLMNR != 0 ) || ( ipconfigUSE_NBNS != 0 ) )
|
||||
/* LLMNR and NBNS depend on DNS because those protocols share a lot of code. */
|
||||
#error When either LLMNR or NBNS is used, ipconfigUSE_DNS must be defined
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef ipconfigREPLY_TO_INCOMING_PINGS
|
||||
#define ipconfigREPLY_TO_INCOMING_PINGS 1
|
||||
#endif
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
@ -42,9 +42,9 @@ extern "C" {
|
||||
typedef struct xARP_CACHE_TABLE_ROW
|
||||
{
|
||||
uint32_t ulIPAddress; /* The IP address of an ARP cache entry. */
|
||||
MACAddress_t xMACAddress; /* The MAC address of an ARP cache entry. */
|
||||
MACAddress_t xMACAddress; /* The MAC address of an ARP cache entry. */
|
||||
uint8_t ucAge; /* A value that is periodically decremented but can also be refreshed by active communication. The ARP cache entry is removed if the value reaches zero. */
|
||||
uint8_t ucValid; /* pdTRUE: xMACAddress is valid, pdFALSE: waiting for ARP reply */
|
||||
uint8_t ucValid; /* pdTRUE: xMACAddress is valid, pdFALSE: waiting for ARP reply */
|
||||
} ARPCacheRow_t;
|
||||
|
||||
typedef enum
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
@ -84,12 +84,12 @@ uint32_t ulDNSHandlePacket( NetworkBufferDescriptor_t *pxNetworkBuffer );
|
||||
|
||||
#if( ipconfigUSE_DNS_CACHE != 0 )
|
||||
|
||||
/* Look for the indicated host name in the DNS cache. Returns the IPv4
|
||||
address if present, or 0x0 otherwise. */
|
||||
/* Look for the indicated host name in the DNS cache. Returns the IPv4
|
||||
address if present, or 0x0 otherwise. */
|
||||
uint32_t FreeRTOS_dnslookup( const char *pcHostName );
|
||||
|
||||
/* Remove all entries from the DNS cache. */
|
||||
void FreeRTOS_dnsclear();
|
||||
/* Remove all entries from the DNS cache. */
|
||||
void FreeRTOS_dnsclear();
|
||||
#endif /* ipconfigUSE_DNS_CACHE != 0 */
|
||||
|
||||
#if( ipconfigDNS_USE_CALLBACKS != 0 )
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
@ -275,6 +275,15 @@ void FreeRTOS_ClearARP( void );
|
||||
#endif /* ipconfigDHCP_REGISTER_HOSTNAME */
|
||||
|
||||
|
||||
/* This xApplicationGetRandomNumber() will set *pulNumber to a random number,
|
||||
and return pdTRUE. When the random number generator is broken, it shall return
|
||||
pdFALSE.
|
||||
The function is defined in 'iot_secure_sockets.c'.
|
||||
If that module is not included in the project, the application must provide an
|
||||
implementation of it.
|
||||
The macro's ipconfigRAND32() and configRAND32() are not in use anymore. */
|
||||
BaseType_t xApplicationGetRandomNumber( uint32_t *pulNumber );
|
||||
|
||||
/* For backward compatibility define old structure names to the newer equivalent
|
||||
structure name. */
|
||||
#ifndef ipconfigENABLE_BACKWARD_COMPATIBILITY
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
@ -41,10 +41,6 @@ extern "C" {
|
||||
#include "FreeRTOS_TCP_IP.h"
|
||||
#endif
|
||||
|
||||
#if( ipconfigSOCKET_HAS_USER_SEMAPHORE == 1 )
|
||||
#include "semphr.h"
|
||||
#endif
|
||||
|
||||
#include "event_groups.h"
|
||||
|
||||
typedef struct xNetworkAddressingParameters
|
||||
@ -248,16 +244,17 @@ typedef enum
|
||||
eNoEvent = -1,
|
||||
eNetworkDownEvent, /* 0: The network interface has been lost and/or needs [re]connecting. */
|
||||
eNetworkRxEvent, /* 1: The network interface has queued a received Ethernet frame. */
|
||||
eARPTimerEvent, /* 2: The ARP timer expired. */
|
||||
eStackTxEvent, /* 3: The software stack has queued a packet to transmit. */
|
||||
eDHCPEvent, /* 4: Process the DHCP state machine. */
|
||||
eTCPTimerEvent, /* 5: See if any TCP socket needs attention. */
|
||||
eTCPAcceptEvent, /* 6: Client API FreeRTOS_accept() waiting for client connections. */
|
||||
eTCPNetStat, /* 7: IP-task is asked to produce a netstat listing. */
|
||||
eSocketBindEvent, /* 8: Send a message to the IP-task to bind a socket to a port. */
|
||||
eSocketCloseEvent, /* 9: Send a message to the IP-task to close a socket. */
|
||||
eSocketSelectEvent, /*10: Send a message to the IP-task for select(). */
|
||||
eSocketSignalEvent, /*11: A socket must be signalled. */
|
||||
eNetworkTxEvent, /* 2: Let the IP-task send a network packet. */
|
||||
eARPTimerEvent, /* 3: The ARP timer expired. */
|
||||
eStackTxEvent, /* 4: The software stack has queued a packet to transmit. */
|
||||
eDHCPEvent, /* 5: Process the DHCP state machine. */
|
||||
eTCPTimerEvent, /* 6: See if any TCP socket needs attention. */
|
||||
eTCPAcceptEvent, /* 7: Client API FreeRTOS_accept() waiting for client connections. */
|
||||
eTCPNetStat, /* 8: IP-task is asked to produce a netstat listing. */
|
||||
eSocketBindEvent, /* 9: Send a message to the IP-task to bind a socket to a port. */
|
||||
eSocketCloseEvent, /*10: Send a message to the IP-task to close a socket. */
|
||||
eSocketSelectEvent, /*11: Send a message to the IP-task for select(). */
|
||||
eSocketSignalEvent, /*12: A socket must be signalled. */
|
||||
} eIPEvent_t;
|
||||
|
||||
typedef struct IP_TASK_COMMANDS
|
||||
@ -460,8 +457,8 @@ BaseType_t vNetworkSocketsInit( void );
|
||||
BaseType_t xIPIsNetworkTaskReady( void );
|
||||
|
||||
#if( ipconfigSOCKET_HAS_USER_WAKE_CALLBACK == 1 )
|
||||
struct XSOCKET;
|
||||
typedef void (*SocketWakeupCallback_t)( struct XSOCKET * pxSocket );
|
||||
struct xSOCKET;
|
||||
typedef void (*SocketWakeupCallback_t)( struct xSOCKET * pxSocket );
|
||||
#endif
|
||||
|
||||
#if( ipconfigUSE_TCP == 1 )
|
||||
@ -548,7 +545,7 @@ BaseType_t xIPIsNetworkTaskReady( void );
|
||||
* This counter is separate from the xmitCount in the
|
||||
* TCP win segments */
|
||||
uint8_t ucTCPState; /* TCP state: see eTCP_STATE */
|
||||
struct XSOCKET *pxPeerSocket; /* for server socket: child, for child socket: parent */
|
||||
struct xSOCKET *pxPeerSocket; /* for server socket: child, for child socket: parent */
|
||||
#if( ipconfigTCP_KEEP_ALIVE == 1 )
|
||||
uint8_t ucKeepRepCount;
|
||||
TickType_t xLastAliveTime;
|
||||
@ -615,7 +612,7 @@ typedef enum eSOCKET_EVENT {
|
||||
eSOCKET_ALL = 0x007F,
|
||||
} eSocketEvent_t;
|
||||
|
||||
typedef struct XSOCKET
|
||||
typedef struct xSOCKET
|
||||
{
|
||||
EventBits_t xEventBits;
|
||||
EventGroupHandle_t xEventGroup;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
@ -55,7 +55,7 @@ extern "C" {
|
||||
|
||||
/* Assigned to an Socket_t variable when the socket is not valid, probably
|
||||
because it could not be created. */
|
||||
#define FREERTOS_INVALID_SOCKET ( ( void * ) ~0U )
|
||||
#define FREERTOS_INVALID_SOCKET ( ( Socket_t ) ~0U )
|
||||
|
||||
/* API function error values. As errno is supported, the FreeRTOS sockets
|
||||
functions return error codes rather than just a pass or fail indication. */
|
||||
@ -213,11 +213,13 @@ struct freertos_sockaddr
|
||||
#endif /* ipconfigBYTE_ORDER */
|
||||
|
||||
/* The socket type itself. */
|
||||
typedef void *Socket_t;
|
||||
struct xSOCKET;
|
||||
typedef struct xSOCKET *Socket_t;
|
||||
|
||||
/* The SocketSet_t type is the equivalent to the fd_set type used by the
|
||||
Berkeley API. */
|
||||
typedef void *SocketSet_t;
|
||||
struct xSOCKET_SET;
|
||||
typedef struct xSOCKET_SET *SocketSet_t;
|
||||
|
||||
/**
|
||||
* FULL, UP-TO-DATE AND MAINTAINED REFERENCE DOCUMENTATION FOR ALL THESE
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
@ -157,31 +157,6 @@ size_t uxSize = uxStreamBufferMidSpace( pxBuffer );
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
static portINLINE BaseType_t xStreamBufferIsEmpty( const StreamBuffer_t *pxBuffer );
|
||||
static portINLINE BaseType_t xStreamBufferIsEmpty( const StreamBuffer_t *pxBuffer )
|
||||
{
|
||||
BaseType_t xReturn;
|
||||
|
||||
/* True if no item is available */
|
||||
if( pxBuffer->uxHead == pxBuffer->uxTail )
|
||||
{
|
||||
xReturn = pdTRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
xReturn = pdFALSE;
|
||||
}
|
||||
return xReturn;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static portINLINE BaseType_t xStreamBufferIsFull( const StreamBuffer_t *pxBuffer );
|
||||
static portINLINE BaseType_t xStreamBufferIsFull( const StreamBuffer_t *pxBuffer )
|
||||
{
|
||||
/* True if the available space equals zero. */
|
||||
return ( BaseType_t ) ( uxStreamBufferGetSpace( pxBuffer ) == 0u );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static portINLINE BaseType_t xStreamBufferLessThenEqual( const StreamBuffer_t *pxBuffer, const size_t uxLeft, const size_t uxRight );
|
||||
static portINLINE BaseType_t xStreamBufferLessThenEqual( const StreamBuffer_t *pxBuffer, const size_t uxLeft, const size_t uxRight )
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
@ -47,7 +47,7 @@ UBaseType_t uxGetMinimumFreeNetworkBuffers( void );
|
||||
|
||||
/* Copy a network buffer into a bigger buffer. */
|
||||
NetworkBufferDescriptor_t *pxDuplicateNetworkBufferWithDescriptor( NetworkBufferDescriptor_t * const pxNetworkBuffer,
|
||||
BaseType_t xNewLength);
|
||||
size_t uxNewLength);
|
||||
|
||||
/* Increase the size of a Network Buffer.
|
||||
In case BufferAllocation_2.c is used, the new space must be allocated. */
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* FreeRTOS+TCP V2.0.11
|
||||
* FreeRTOS+TCP V2.2.0
|
||||
* Copyright (C) 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
|
Reference in New Issue
Block a user