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
|
||||
#endif /* configENABLE_BACKWARD_COMPATIBILITY */
|
||||
|
||||
#ifndef configESP32_PER_TASK_DATA
|
||||
#define configESP32_PER_TASK_DATA 1
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@@ -84,6 +84,7 @@ task.h is included from an application file. */
|
||||
#include "timers.h"
|
||||
#include "StackMacros.h"
|
||||
#include "portmacro.h"
|
||||
#include "semphr.h"
|
||||
|
||||
/* 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
|
||||
@@ -205,6 +206,10 @@ typedef struct tskTaskControlBlock
|
||||
volatile eNotifyValue eNotifyState;
|
||||
#endif
|
||||
|
||||
#if (configESP32_PER_TASK_DATA == 1)
|
||||
void *data;
|
||||
#endif
|
||||
|
||||
} tskTCB;
|
||||
|
||||
/* 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 (configESP32_PER_TASK_DATA == 1)
|
||||
pxNewTCB->data = NULL;
|
||||
#endif
|
||||
#if( portUSING_MPU_WRAPPERS == 1 )
|
||||
/* Should the task be created in privileged mode? */
|
||||
BaseType_t xRunPrivileged;
|
||||
@@ -791,6 +799,11 @@ BaseType_t i;
|
||||
being deleted. */
|
||||
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.
|
||||
This will stop the task from be scheduled. The idle task will check
|
||||
the termination list and free up any memory allocated by the
|
||||
@@ -4580,7 +4593,21 @@ TickType_t uxReturn;
|
||||
#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
|
||||
#include "tasks_test_access_functions.h"
|
||||
|
@@ -405,7 +405,7 @@ do{\
|
||||
|
||||
/** The global array of available sockets */
|
||||
static struct lwip_sock sockets[NUM_SOCKETS];
|
||||
#ifdef LWIP_THREAD_SAFE
|
||||
#if LWIP_THREAD_SAFE
|
||||
static bool sockets_init_flag = false;
|
||||
#endif
|
||||
/** 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);
|
||||
sys_sem_t* sys_thread_sem(void);
|
||||
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)
|
||||
{
|
||||
extern void* xTaskGetLwipSem(void);
|
||||
return (sys_sem_t*)(xTaskGetLwipSem());
|
||||
sys_sem_t *sem = (sys_sem_t*)xTaskGetPerTaskData();
|
||||
return sem;
|
||||
}
|
||||
|
||||
void sys_delay_ms(uint32_t ms)
|
||||
|
Reference in New Issue
Block a user