Eventually the FreeRTOS ERRNO defines should be placed in projdefs.h only. But in order to avoid missing declarations, a copy is also placed in FreeRTOS_errno_TCP.h.
ERRNO_EINTR was one of the latest ERRNO’s to be added, and it might be that it is not found in the projdefs.h of 8.2.3. and earlier.
You can simply add it:
#define pdFREERTOS_ERRNO_NONE 0 /* No errors */
#define pdFREERTOS_ERRNO_ENOENT 2 /* No such file or directory */
+#define pdFREERTOS_ERRNO_EINTR 4 /* Interrupted system call */
#define pdFREERTOS_ERRNO_EIO 5 /* I/O error */
ERRNO_EINTR was introduced to support the interruption of blocking API’s recvfrom(), recv(), and select().
#if( ipconfigSUPPORT_SIGNALS != 0 )
/* Send a signal to the task which reads from this socket. */
BaseType_t FreeRTOS_SignalSocket( Socket_t xSocket )
{
}
#endif /* ipconfigSUPPORT_SIGNALS */
In case an API was interrupted from outside, it will return -pdFREERTOS_ERRNO_EINTR.