forked from espressif/esp-idf
fix socket compile error
This commit is contained in:
@@ -783,6 +783,10 @@ V8 if desired. */
|
|||||||
#define xList List_t
|
#define xList List_t
|
||||||
#endif /* configENABLE_BACKWARD_COMPATIBILITY */
|
#endif /* configENABLE_BACKWARD_COMPATIBILITY */
|
||||||
|
|
||||||
|
#ifndef configESP32_PER_TASK_DATA
|
||||||
|
#define configESP32_PER_TASK_DATA 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -84,6 +84,7 @@ task.h is included from an application file. */
|
|||||||
#include "timers.h"
|
#include "timers.h"
|
||||||
#include "StackMacros.h"
|
#include "StackMacros.h"
|
||||||
#include "portmacro.h"
|
#include "portmacro.h"
|
||||||
|
#include "semphr.h"
|
||||||
|
|
||||||
/* Lint e961 and e750 are suppressed as a MISRA exception justified because the
|
/* Lint e961 and e750 are suppressed as a MISRA exception justified because the
|
||||||
MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the
|
MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the
|
||||||
@@ -205,6 +206,10 @@ typedef struct tskTaskControlBlock
|
|||||||
volatile eNotifyValue eNotifyState;
|
volatile eNotifyValue eNotifyState;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if (configESP32_PER_TASK_DATA == 1)
|
||||||
|
void *data;
|
||||||
|
#endif
|
||||||
|
|
||||||
} tskTCB;
|
} tskTCB;
|
||||||
|
|
||||||
/* The old tskTCB name is maintained above then typedefed to the new TCB_t name
|
/* The old tskTCB name is maintained above then typedefed to the new TCB_t name
|
||||||
@@ -606,6 +611,9 @@ BaseType_t i;
|
|||||||
|
|
||||||
if( pxNewTCB != NULL )
|
if( pxNewTCB != NULL )
|
||||||
{
|
{
|
||||||
|
#if (configESP32_PER_TASK_DATA == 1)
|
||||||
|
pxNewTCB->data = NULL;
|
||||||
|
#endif
|
||||||
#if( portUSING_MPU_WRAPPERS == 1 )
|
#if( portUSING_MPU_WRAPPERS == 1 )
|
||||||
/* Should the task be created in privileged mode? */
|
/* Should the task be created in privileged mode? */
|
||||||
BaseType_t xRunPrivileged;
|
BaseType_t xRunPrivileged;
|
||||||
@@ -791,6 +799,11 @@ BaseType_t i;
|
|||||||
being deleted. */
|
being deleted. */
|
||||||
pxTCB = prvGetTCBFromHandle( xTaskToDelete );
|
pxTCB = prvGetTCBFromHandle( xTaskToDelete );
|
||||||
|
|
||||||
|
#if (configESP32_PER_TASK_DATA == 1)
|
||||||
|
if (pxTCB->data){
|
||||||
|
vSemaphoreDelete( pxTCB->data );
|
||||||
|
}
|
||||||
|
#endif
|
||||||
/* Remove task from the ready list and place in the termination list.
|
/* Remove task from the ready list and place in the termination list.
|
||||||
This will stop the task from be scheduled. The idle task will check
|
This will stop the task from be scheduled. The idle task will check
|
||||||
the termination list and free up any memory allocated by the
|
the termination list and free up any memory allocated by the
|
||||||
@@ -4580,7 +4593,21 @@ TickType_t uxReturn;
|
|||||||
#endif /* configUSE_TASK_NOTIFICATIONS */
|
#endif /* configUSE_TASK_NOTIFICATIONS */
|
||||||
|
|
||||||
/*-----------------------------------------------------------*/
|
/*-----------------------------------------------------------*/
|
||||||
|
#if (configESP32_PER_TASK_DATA == 1)
|
||||||
|
void* xTaskGetPerTaskData(void)
|
||||||
|
{
|
||||||
|
TCB_t *pxTCB = (TCB_t*)(xTaskGetCurrentTaskHandle());
|
||||||
|
if (pxTCB){
|
||||||
|
if (!pxTCB->data){
|
||||||
|
vSemaphoreCreateBinary(pxTCB->data);
|
||||||
|
}
|
||||||
|
return (void*)(&pxTCB->data);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
#endif /* configESP32_PER_TASK_DATA */
|
||||||
|
/*-----------------------------------------------------------*/
|
||||||
|
|
||||||
#ifdef FREERTOS_MODULE_TEST
|
#ifdef FREERTOS_MODULE_TEST
|
||||||
#include "tasks_test_access_functions.h"
|
#include "tasks_test_access_functions.h"
|
||||||
|
@@ -405,7 +405,7 @@ do{\
|
|||||||
|
|
||||||
/** The global array of available sockets */
|
/** The global array of available sockets */
|
||||||
static struct lwip_sock sockets[NUM_SOCKETS];
|
static struct lwip_sock sockets[NUM_SOCKETS];
|
||||||
#ifdef LWIP_THREAD_SAFE
|
#if LWIP_THREAD_SAFE
|
||||||
static bool sockets_init_flag = false;
|
static bool sockets_init_flag = false;
|
||||||
#endif
|
#endif
|
||||||
/** The global list of tasks waiting for select */
|
/** The global list of tasks waiting for select */
|
||||||
|
@@ -66,6 +66,7 @@ void sys_arch_assert(const char *file, int line);
|
|||||||
uint32_t system_get_time(void);
|
uint32_t system_get_time(void);
|
||||||
sys_sem_t* sys_thread_sem(void);
|
sys_sem_t* sys_thread_sem(void);
|
||||||
void sys_delay_ms(uint32_t ms);
|
void sys_delay_ms(uint32_t ms);
|
||||||
|
void* xTaskGetPerTaskData(void);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@@ -482,8 +482,8 @@ sys_arch_assert(const char *file, int line)
|
|||||||
*/
|
*/
|
||||||
sys_sem_t* sys_thread_sem(void)
|
sys_sem_t* sys_thread_sem(void)
|
||||||
{
|
{
|
||||||
extern void* xTaskGetLwipSem(void);
|
sys_sem_t *sem = (sys_sem_t*)xTaskGetPerTaskData();
|
||||||
return (sys_sem_t*)(xTaskGetLwipSem());
|
return sem;
|
||||||
}
|
}
|
||||||
|
|
||||||
void sys_delay_ms(uint32_t ms)
|
void sys_delay_ms(uint32_t ms)
|
||||||
|
Reference in New Issue
Block a user