mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-12 06:35:19 -05:00
VeriFast cannot handle casts of side-effectful expressions.
This commit is contained in:
parent
5a7916bff0
commit
80134a65ed
2 changed files with 118 additions and 94 deletions
12
tasks.c
12
tasks.c
|
|
@ -1445,7 +1445,19 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
|||
#if ( tskSET_NEW_STACKS_TO_KNOWN_VALUE == 1 )
|
||||
{
|
||||
/* Fill the stack with a known value to assist debugging. */
|
||||
#ifdef VERIFAST
|
||||
/* Reason for rewrite:
|
||||
* - VeriFast does not support casts involving side-effectful
|
||||
* expressions.
|
||||
*
|
||||
*
|
||||
* Note: The only affect of void casts is to surpress compiler
|
||||
* warnings.
|
||||
*/
|
||||
memset( pxNewTCB->pxStack, ( int ) tskSTACK_FILL_BYTE, ( size_t ) ulStackDepth * sizeof( StackType_t ) );
|
||||
#else
|
||||
( void ) memset( pxNewTCB->pxStack, ( int ) tskSTACK_FILL_BYTE, ( size_t ) ulStackDepth * sizeof( StackType_t ) );
|
||||
#endif
|
||||
}
|
||||
#endif /* tskSET_NEW_STACKS_TO_KNOWN_VALUE */
|
||||
|
||||
|
|
|
|||
|
|
@ -10778,7 +10778,19 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
|||
|
||||
{
|
||||
/* Fill the stack with a known value to assist debugging. */
|
||||
( void ) memset( pxNewTCB->pxStack, ( int ) ( 0xa5U ), ( size_t ) ulStackDepth * sizeof( StackType_t ) );
|
||||
|
||||
/* Reason for rewrite:
|
||||
* - VeriFast does not support casts involving side-effectful
|
||||
* expressions.
|
||||
*
|
||||
*
|
||||
* Note: The only affect of void casts is to surpress compiler
|
||||
* warnings.
|
||||
*/
|
||||
memset( pxNewTCB->pxStack, ( int ) ( 0xa5U ), ( size_t ) ulStackDepth * sizeof( StackType_t ) );
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -10792,10 +10804,10 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
|||
pxTopOfStack = ( StackType_t * ) ( ( ( uint32_t ) pxTopOfStack ) & ( ~( ( uint32_t ) ( 0x0007 ) ) ) ); /*lint !e923 !e9033 !e9078 MISRA exception. Avoiding casts between pointers and integers is not practical. Size differences accounted for using portPOINTER_SIZE_TYPE type. Checked by assert(). */
|
||||
|
||||
/* Check the alignment of the calculated top of stack is correct. */
|
||||
(__builtin_expect(!(( ( ( uint32_t ) pxTopOfStack & ( uint32_t ) ( 0x0007 ) ) == 0UL )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1462, "( ( ( uint32_t ) pxTopOfStack & ( uint32_t ) ( 0x0007 ) ) == 0UL )") : (void)0);
|
||||
// # 1471 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
(__builtin_expect(!(( ( ( uint32_t ) pxTopOfStack & ( uint32_t ) ( 0x0007 ) ) == 0UL )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1474, "( ( ( uint32_t ) pxTopOfStack & ( uint32_t ) ( 0x0007 ) ) == 0UL )") : (void)0);
|
||||
// # 1483 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
// # 1485 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1497 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Store the task name in the TCB. */
|
||||
if( pcName != 0 )
|
||||
{
|
||||
|
|
@ -10861,7 +10873,7 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
|||
{
|
||||
pxNewTCB->uxCriticalNesting = ( UBaseType_t ) 0U;
|
||||
}
|
||||
// # 1569 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1581 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
/* Avoid compiler warning about unreferenced parameter. */
|
||||
( void ) xRegions;
|
||||
|
|
@ -10879,21 +10891,21 @@ static void prvInitialiseNewTask( TaskFunction_t pxTaskCode,
|
|||
memset( ( void * ) &( pxNewTCB->ulNotifiedValue[ 0 ] ), 0x00, sizeof( pxNewTCB->ulNotifiedValue ) );
|
||||
memset( ( void * ) &( pxNewTCB->ucNotifyState[ 0 ] ), 0x00, sizeof( pxNewTCB->ucNotifyState ) );
|
||||
}
|
||||
// # 1598 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1610 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
pxNewTCB->ucDelayAborted = ( ( BaseType_t ) 0 );
|
||||
}
|
||||
// # 1616 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1628 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Initialize the TCB stack to look as if the task was already running,
|
||||
* but had been interrupted by the scheduler. The return address is set
|
||||
* to the start of the task function. Once the stack has been initialised
|
||||
* the top of stack variable is updated. */
|
||||
// # 1644 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1656 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
/* If the port has capability to detect stack overflow,
|
||||
* pass the stack end address to the stack initialization
|
||||
* function as well. */
|
||||
// # 1661 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 1673 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters );
|
||||
}
|
||||
|
|
@ -11102,7 +11114,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
|
||||
if( xTaskRunningOnCore == xCoreID )
|
||||
{
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1869, "uxSchedulerSuspended == 0") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1881, "uxSchedulerSuspended == 0") : (void)0);
|
||||
vTaskYieldWithinAPI();
|
||||
}
|
||||
else
|
||||
|
|
@ -11125,12 +11137,12 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
TickType_t xTimeToWake;
|
||||
BaseType_t xAlreadyYielded, xShouldDelay = ( ( BaseType_t ) 0 );
|
||||
|
||||
(__builtin_expect(!(pxPreviousWakeTime), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1892, "pxPreviousWakeTime") : (void)0);
|
||||
(__builtin_expect(!(( xTimeIncrement > 0U )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1893, "( xTimeIncrement > 0U )") : (void)0);
|
||||
(__builtin_expect(!(pxPreviousWakeTime), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1904, "pxPreviousWakeTime") : (void)0);
|
||||
(__builtin_expect(!(( xTimeIncrement > 0U )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1905, "( xTimeIncrement > 0U )") : (void)0);
|
||||
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1897, "uxSchedulerSuspended == 1") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1909, "uxSchedulerSuspended == 1") : (void)0);
|
||||
|
||||
/* Minor optimisation. The tick count cannot change in this
|
||||
* block. */
|
||||
|
|
@ -11216,7 +11228,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
{
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1983, "uxSchedulerSuspended == 1") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 1995, "uxSchedulerSuspended == 1") : (void)0);
|
||||
;
|
||||
|
||||
/* A task that is removed from the event list while the
|
||||
|
|
@ -11270,7 +11282,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
|
||||
const TCB_t * const pxTCB = xTask;
|
||||
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2037, "pxTCB") : (void)0);
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2049, "pxTCB") : (void)0);
|
||||
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
|
|
@ -11446,7 +11458,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
BaseType_t xYieldForTask = ( ( BaseType_t ) 0 );
|
||||
BaseType_t xCoreID;
|
||||
|
||||
(__builtin_expect(!(( uxNewPriority < 32 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2213, "( uxNewPriority < 32 )") : (void)0);
|
||||
(__builtin_expect(!(( uxNewPriority < 32 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2225, "( uxNewPriority < 32 )") : (void)0);
|
||||
|
||||
/* Ensure the new priority is valid. */
|
||||
if( uxNewPriority >= ( UBaseType_t ) 32 )
|
||||
|
|
@ -11600,13 +11612,13 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 2401 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2413 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 2424 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2436 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 2442 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2454 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 2470 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2482 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
|
|
@ -11683,7 +11695,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
if( xTaskRunningOnCore == 0 )
|
||||
{
|
||||
/* The current task has just been suspended. */
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2546, "uxSchedulerSuspended == 0") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2558, "uxSchedulerSuspended == 0") : (void)0);
|
||||
vTaskYieldWithinAPI();
|
||||
}
|
||||
else
|
||||
|
|
@ -11697,7 +11709,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
{
|
||||
vTaskExitCritical();
|
||||
|
||||
(__builtin_expect(!(pxTCB == pxCurrentTCBs[ xTaskRunningOnCore ]), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2560, "pxTCB == pxCurrentTCBs[ xTaskRunningOnCore ]") : (void)0);
|
||||
(__builtin_expect(!(pxTCB == pxCurrentTCBs[ xTaskRunningOnCore ]), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2572, "pxTCB == pxCurrentTCBs[ xTaskRunningOnCore ]") : (void)0);
|
||||
|
||||
/* The scheduler is not running, but the task that was pointed
|
||||
* to by pxCurrentTCB has just been suspended and pxCurrentTCB
|
||||
|
|
@ -11744,7 +11756,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
/* Accesses xPendingReadyList so must be called from a critical section. */
|
||||
|
||||
/* It does not make sense to check if the calling task is suspended. */
|
||||
(__builtin_expect(!(xTask), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2607, "xTask") : (void)0);
|
||||
(__builtin_expect(!(xTask), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2619, "xTask") : (void)0);
|
||||
|
||||
/* Is the task being resumed actually in the suspended list? */
|
||||
if( ( ( ( &( pxTCB->xStateListItem ) )->pxContainer == ( &xSuspendedTaskList ) ) ? ( ( ( BaseType_t ) 1 ) ) : ( ( ( BaseType_t ) 0 ) ) ) != ( ( BaseType_t ) 0 ) )
|
||||
|
|
@ -11793,7 +11805,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
|
||||
|
||||
/* It does not make sense to resume the calling task. */
|
||||
(__builtin_expect(!(xTaskToResume), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2656, "xTaskToResume") : (void)0);
|
||||
(__builtin_expect(!(xTaskToResume), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2668, "xTaskToResume") : (void)0);
|
||||
|
||||
/* The parameter cannot be NULL as it is impossible to resume the
|
||||
* currently executing task. It is also impossible to resume a task
|
||||
|
|
@ -11852,7 +11864,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
|
|||
|
||||
UBaseType_t uxSavedInterruptStatus;
|
||||
|
||||
(__builtin_expect(!(xTaskToResume), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2715, "xTaskToResume") : (void)0);
|
||||
(__builtin_expect(!(xTaskToResume), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2727, "xTaskToResume") : (void)0);
|
||||
|
||||
/* RTOS ports that support interrupt nesting have the concept of a
|
||||
* maximum system call (or maximum API call) interrupt priority.
|
||||
|
|
@ -11973,7 +11985,7 @@ static BaseType_t prvCreateIdleTasks( void )
|
|||
{
|
||||
;
|
||||
}
|
||||
// # 2883 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2895 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
if( xCoreID == 0 )
|
||||
{
|
||||
|
|
@ -11985,7 +11997,7 @@ static BaseType_t prvCreateIdleTasks( void )
|
|||
( ( UBaseType_t ) 0x00 ), /* In effect ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), but tskIDLE_PRIORITY is zero. */
|
||||
&xIdleTaskHandle[ xCoreID ] ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */
|
||||
}
|
||||
// # 2906 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2918 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -12022,7 +12034,7 @@ void vTaskStartScheduler( void )
|
|||
* so interrupts will automatically get re-enabled when the first task
|
||||
* starts to run. */
|
||||
assert_fct(false);
|
||||
// # 2956 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 2968 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
xNextTaskUnblockTime = ( TickType_t ) 0xffffffffUL;
|
||||
xSchedulerRunning = ( ( BaseType_t ) 1 );
|
||||
xTickCount = ( TickType_t ) 0;
|
||||
|
|
@ -12054,7 +12066,7 @@ void vTaskStartScheduler( void )
|
|||
/* This line will only be reached if the kernel could not be started,
|
||||
* because there was not enough FreeRTOS heap to create the idle task
|
||||
* or the timer task. */
|
||||
(__builtin_expect(!(xReturn != ( -1 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2987, "xReturn != ( -1 )") : (void)0);
|
||||
(__builtin_expect(!(xReturn != ( -1 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 2999, "xReturn != ( -1 )") : (void)0);
|
||||
}
|
||||
|
||||
/* Prevent compiler warnings if INCLUDE_xTaskGetIdleTaskHandle is set to 0,
|
||||
|
|
@ -12119,7 +12131,7 @@ void vTaskSuspendAll( void )
|
|||
}
|
||||
}
|
||||
/*----------------------------------------------------------*/
|
||||
// # 3114 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3126 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*----------------------------------------------------------*/
|
||||
|
||||
BaseType_t xTaskResumeAll( void )
|
||||
|
|
@ -12142,7 +12154,7 @@ BaseType_t xTaskResumeAll( void )
|
|||
|
||||
/* If uxSchedulerSuspended is zero then this function does not match a
|
||||
* previous call to vTaskSuspendAll(). */
|
||||
(__builtin_expect(!(uxSchedulerSuspended), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3136, "uxSchedulerSuspended") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3148, "uxSchedulerSuspended") : (void)0);
|
||||
|
||||
--uxSchedulerSuspended;
|
||||
vPortRecursiveLock(1, spin_lock_instance(15), ( ( BaseType_t ) 0 ));
|
||||
|
|
@ -12300,7 +12312,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
/* If null is passed in here then the name of the calling task is being
|
||||
* queried. */
|
||||
pxTCB = ( ( ( xTaskToQuery ) == 0 ) ? xTaskGetCurrentTaskHandle() : ( xTaskToQuery ) );
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3294, "pxTCB") : (void)0);
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3306, "pxTCB") : (void)0);
|
||||
return &( pxTCB->pcTaskName[ 0 ] );
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
|
|
@ -12393,7 +12405,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
TCB_t * pxTCB;
|
||||
|
||||
/* Task names will be truncated to configMAX_TASK_NAME_LEN - 1 bytes. */
|
||||
(__builtin_expect(!(strlen( pcNameToQuery ) < 16), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3387, "strlen( pcNameToQuery ) < 16") : (void)0);
|
||||
(__builtin_expect(!(strlen( pcNameToQuery ) < 16), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3399, "strlen( pcNameToQuery ) < 16") : (void)0);
|
||||
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
|
|
@ -12489,7 +12501,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
* each task in the Suspended state. */
|
||||
uxTask += prvListTasksWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &xSuspendedTaskList, eSuspended );
|
||||
}
|
||||
// # 3497 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3509 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
if( pulTotalRunTime != 0 )
|
||||
{
|
||||
|
|
@ -12517,7 +12529,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
{
|
||||
/* If xTaskGetIdleTaskHandle() is called before the scheduler has been
|
||||
* started, then xIdleTaskHandle will be NULL. */
|
||||
(__builtin_expect(!(( xIdleTaskHandle != 0 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3524, "( xIdleTaskHandle != 0 )") : (void)0);
|
||||
(__builtin_expect(!(( xIdleTaskHandle != 0 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3536, "( xIdleTaskHandle != 0 )") : (void)0);
|
||||
return &( xIdleTaskHandle[ 0 ] );
|
||||
}
|
||||
|
||||
|
|
@ -12528,7 +12540,7 @@ char * pcTaskGetName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char
|
|||
* This is to ensure vTaskStepTick() is available when user defined low power mode
|
||||
* implementations require configUSE_TICKLESS_IDLE to be set to a value other than
|
||||
* 1. */
|
||||
// # 3548 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3560 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*----------------------------------------------------------*/
|
||||
|
||||
BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp )
|
||||
|
|
@ -12537,7 +12549,7 @@ BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp )
|
|||
|
||||
/* Must not be called with the scheduler suspended as the implementation
|
||||
* relies on xPendedTicks being wound down to 0 in xTaskResumeAll(). */
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3556, "uxSchedulerSuspended == 0") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3568, "uxSchedulerSuspended == 0") : (void)0);
|
||||
|
||||
/* Use xPendedTicks to mimic xTicksToCatchUp number of ticks occurring when
|
||||
* the scheduler is suspended so the ticks are executed in xTaskResumeAll(). */
|
||||
|
|
@ -12556,7 +12568,7 @@ BaseType_t xTaskCatchUpTicks( TickType_t xTicksToCatchUp )
|
|||
TCB_t * pxTCB = xTask;
|
||||
BaseType_t xReturn;
|
||||
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3575, "pxTCB") : (void)0);
|
||||
(__builtin_expect(!(pxTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3587, "pxTCB") : (void)0);
|
||||
|
||||
vTaskSuspendAll();
|
||||
{
|
||||
|
|
@ -12655,7 +12667,7 @@ BaseType_t xTaskIncrementTick( void )
|
|||
|
||||
if( xConstTickCount == ( TickType_t ) 0U ) /*lint !e774 'if' does not always evaluate to false as it is looking for an overflow. */
|
||||
{
|
||||
{ List_t * pxTemp; (__builtin_expect(!(( ( ( ( pxDelayedTaskList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? ( ( BaseType_t ) 1 ) : ( ( BaseType_t ) 0 ) ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3674, "( ( ( ( pxDelayedTaskList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? ( ( BaseType_t ) 1 ) : ( ( BaseType_t ) 0 ) ) )") : (void)0); pxTemp = pxDelayedTaskList; pxDelayedTaskList = pxOverflowDelayedTaskList; pxOverflowDelayedTaskList = pxTemp; xNumOfOverflows++; prvResetNextTaskUnblockTime(); };
|
||||
{ List_t * pxTemp; (__builtin_expect(!(( ( ( ( pxDelayedTaskList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? ( ( BaseType_t ) 1 ) : ( ( BaseType_t ) 0 ) ) )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3686, "( ( ( ( pxDelayedTaskList )->uxNumberOfItems == ( UBaseType_t ) 0 ) ? ( ( BaseType_t ) 1 ) : ( ( BaseType_t ) 0 ) ) )") : (void)0); pxTemp = pxDelayedTaskList; pxDelayedTaskList = pxOverflowDelayedTaskList; pxOverflowDelayedTaskList = pxTemp; xNumOfOverflows++; prvResetNextTaskUnblockTime(); };
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -12838,13 +12850,13 @@ BaseType_t xTaskIncrementTick( void )
|
|||
return xSwitchRequired;
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 3886 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3898 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 3910 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3922 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 3935 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3947 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 3968 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 3980 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
void vTaskSwitchContext( BaseType_t xCoreID )
|
||||
|
|
@ -12862,7 +12874,7 @@ void vTaskSwitchContext( BaseType_t xCoreID )
|
|||
{
|
||||
/* vTaskSwitchContext() must never be called from within a critical section.
|
||||
* This is not necessarily true for vanilla FreeRTOS, but it is for this SMP port. */
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3985, "xTaskGetCurrentTaskHandle()->uxCriticalNesting == 0") : (void)0);
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 3997, "xTaskGetCurrentTaskHandle()->uxCriticalNesting == 0") : (void)0);
|
||||
|
||||
if( uxSchedulerSuspended != ( UBaseType_t ) ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
|
|
@ -12874,7 +12886,7 @@ void vTaskSwitchContext( BaseType_t xCoreID )
|
|||
{
|
||||
xYieldPendings[ xCoreID ] = ( ( BaseType_t ) 0 );
|
||||
;
|
||||
// # 4026 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4038 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Check for stack overflow, if configured. */
|
||||
{ const uint32_t * const pulStack = ( uint32_t * ) xTaskGetCurrentTaskHandle()->pxStack; const uint32_t ulCheckValue = ( uint32_t ) 0xa5a5a5a5; if( ( pulStack[ 0 ] != ulCheckValue ) || ( pulStack[ 1 ] != ulCheckValue ) || ( pulStack[ 2 ] != ulCheckValue ) || ( pulStack[ 3 ] != ulCheckValue ) ) { vApplicationStackOverflowHook( ( TaskHandle_t ) xTaskGetCurrentTaskHandle(), xTaskGetCurrentTaskHandle()->pcTaskName ); } };
|
||||
|
||||
|
|
@ -12891,7 +12903,7 @@ void vTaskSwitchContext( BaseType_t xCoreID )
|
|||
;
|
||||
|
||||
/* After the new task is switched in, update the global errno. */
|
||||
// # 4060 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4072 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
}
|
||||
vPortRecursiveLock(0, spin_lock_instance(14), ( ( BaseType_t ) 0 ));
|
||||
|
|
@ -12902,7 +12914,7 @@ void vTaskSwitchContext( BaseType_t xCoreID )
|
|||
void vTaskPlaceOnEventList( List_t * const pxEventList,
|
||||
const TickType_t xTicksToWait )
|
||||
{
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4070, "pxEventList") : (void)0);
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4082, "pxEventList") : (void)0);
|
||||
|
||||
/* THIS FUNCTION MUST BE CALLED WITH EITHER INTERRUPTS DISABLED OR THE
|
||||
* SCHEDULER SUSPENDED AND THE QUEUE BEING ACCESSED LOCKED. */
|
||||
|
|
@ -12921,11 +12933,11 @@ void vTaskPlaceOnUnorderedEventList( List_t * pxEventList,
|
|||
const TickType_t xItemValue,
|
||||
const TickType_t xTicksToWait )
|
||||
{
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4089, "pxEventList") : (void)0);
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4101, "pxEventList") : (void)0);
|
||||
|
||||
/* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. It is used by
|
||||
* the event groups implementation. */
|
||||
(__builtin_expect(!(uxSchedulerSuspended != 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4093, "uxSchedulerSuspended != 0") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended != 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4105, "uxSchedulerSuspended != 0") : (void)0);
|
||||
|
||||
/* Store the item value in the event list item. It is safe to access the
|
||||
* event list item here as interrupts won't access the event list item of a
|
||||
|
|
@ -12949,7 +12961,7 @@ void vTaskPlaceOnUnorderedEventList( List_t * pxEventList,
|
|||
TickType_t xTicksToWait,
|
||||
const BaseType_t xWaitIndefinitely )
|
||||
{
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4117, "pxEventList") : (void)0);
|
||||
(__builtin_expect(!(pxEventList), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4129, "pxEventList") : (void)0);
|
||||
|
||||
/* This function should not be called by application code hence the
|
||||
* 'Restricted' in its name. It is not part of the public API. It is
|
||||
|
|
@ -12997,14 +13009,14 @@ BaseType_t xTaskRemoveFromEventList( const List_t * const pxEventList )
|
|||
* This function assumes that a check has already been made to ensure that
|
||||
* pxEventList is not empty. */
|
||||
pxUnblockedTCB = ( ( &( ( pxEventList )->xListEnd ) )->pxNext->pvOwner ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */
|
||||
(__builtin_expect(!(pxUnblockedTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4165, "pxUnblockedTCB") : (void)0);
|
||||
(__builtin_expect(!(pxUnblockedTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4177, "pxUnblockedTCB") : (void)0);
|
||||
( void ) uxListRemove( &( pxUnblockedTCB->xEventListItem ) );
|
||||
|
||||
if( uxSchedulerSuspended == ( UBaseType_t ) ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
( void ) uxListRemove( &( pxUnblockedTCB->xStateListItem ) );
|
||||
; { if( ( ( pxUnblockedTCB )->uxPriority ) > uxTopReadyPriority ) { uxTopReadyPriority = ( ( pxUnblockedTCB )->uxPriority ); } }; vListInsertEnd( &( pxReadyTasksLists[ ( pxUnblockedTCB )->uxPriority ] ), &( ( pxUnblockedTCB )->xStateListItem ) ); ;
|
||||
// # 4186 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4198 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
@ -13034,7 +13046,7 @@ void vTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem,
|
|||
|
||||
/* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. It is used by
|
||||
* the event flags implementation. */
|
||||
(__builtin_expect(!(uxSchedulerSuspended != ( ( BaseType_t ) 0 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4215, "uxSchedulerSuspended != ( ( BaseType_t ) 0 )") : (void)0);
|
||||
(__builtin_expect(!(uxSchedulerSuspended != ( ( BaseType_t ) 0 )), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4227, "uxSchedulerSuspended != ( ( BaseType_t ) 0 )") : (void)0);
|
||||
|
||||
/* Store the new item value in the event list. */
|
||||
( ( pxEventListItem )->xItemValue = ( xItemValue | 0x80000000UL ) );
|
||||
|
|
@ -13042,9 +13054,9 @@ void vTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem,
|
|||
/* Remove the event list form the event flag. Interrupts do not access
|
||||
* event flags. */
|
||||
pxUnblockedTCB = ( ( pxEventListItem )->pvOwner ); /*lint !e9079 void * is used as this macro is used with timers and co-routines too. Alignment is known to be fine as the type of the pointer stored and retrieved is the same. */
|
||||
(__builtin_expect(!(pxUnblockedTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4223, "pxUnblockedTCB") : (void)0);
|
||||
(__builtin_expect(!(pxUnblockedTCB), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4235, "pxUnblockedTCB") : (void)0);
|
||||
( void ) uxListRemove( pxEventListItem );
|
||||
// # 4240 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4252 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* Remove the task from the delayed list and add it to the ready list. The
|
||||
* scheduler is suspended so interrupts will not be accessing the ready
|
||||
* lists. */
|
||||
|
|
@ -13063,7 +13075,7 @@ void vTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem,
|
|||
|
||||
void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut )
|
||||
{
|
||||
(__builtin_expect(!(pxTimeOut), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4258, "pxTimeOut") : (void)0);
|
||||
(__builtin_expect(!(pxTimeOut), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4270, "pxTimeOut") : (void)0);
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
pxTimeOut->xOverflowCount = xNumOfOverflows;
|
||||
|
|
@ -13086,8 +13098,8 @@ BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut,
|
|||
{
|
||||
BaseType_t xReturn;
|
||||
|
||||
(__builtin_expect(!(pxTimeOut), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4281, "pxTimeOut") : (void)0);
|
||||
(__builtin_expect(!(pxTicksToWait), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4282, "pxTicksToWait") : (void)0);
|
||||
(__builtin_expect(!(pxTimeOut), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4293, "pxTimeOut") : (void)0);
|
||||
(__builtin_expect(!(pxTicksToWait), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4294, "pxTicksToWait") : (void)0);
|
||||
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
|
|
@ -13209,7 +13221,7 @@ void vTaskMissedYield( void )
|
|||
*
|
||||
* @todo additional conditional compiles to remove this function.
|
||||
*/
|
||||
// # 4464 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4476 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*
|
||||
* -----------------------------------------------------------
|
||||
* The Idle task.
|
||||
|
|
@ -13239,7 +13251,7 @@ static void prvIdleTask( void * pvParameters )
|
|||
/* See if any tasks have deleted themselves - if so then the idle task
|
||||
* is responsible for freeing the deleted task's TCB and stack. */
|
||||
prvCheckTasksWaitingTermination();
|
||||
// # 4505 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4517 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
/* When using preemption tasks of equal priority will be
|
||||
* timesliced. If a task that is sharing the idle priority is ready
|
||||
|
|
@ -13260,16 +13272,16 @@ static void prvIdleTask( void * pvParameters )
|
|||
;
|
||||
}
|
||||
}
|
||||
// # 4541 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4553 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/* This conditional compilation should use inequality to 0, not equality
|
||||
* to 1. This is to ensure portSUPPRESS_TICKS_AND_SLEEP() is called when
|
||||
* user defined low power mode implementations require
|
||||
* configUSE_TICKLESS_IDLE to be set to a value other than 1. */
|
||||
// # 4606 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4618 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
}
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 4656 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4668 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
|
|
@ -13283,7 +13295,7 @@ static void prvIdleTask( void * pvParameters )
|
|||
if( xIndex < 5 )
|
||||
{
|
||||
pxTCB = ( ( ( xTaskToSet ) == 0 ) ? xTaskGetCurrentTaskHandle() : ( xTaskToSet ) );
|
||||
(__builtin_expect(!(pxTCB != 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4669, "pxTCB != 0") : (void)0);
|
||||
(__builtin_expect(!(pxTCB != 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 4681, "pxTCB != 0") : (void)0);
|
||||
pxTCB->pvThreadLocalStoragePointers[ xIndex ] = pvValue;
|
||||
}
|
||||
}
|
||||
|
|
@ -13314,7 +13326,7 @@ static void prvIdleTask( void * pvParameters )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 4716 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4728 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvInitialiseTaskLists( void )
|
||||
|
|
@ -13416,7 +13428,7 @@ static void prvCheckTasksWaitingTermination( void )
|
|||
{
|
||||
pxTaskStatus->uxBasePriority = pxTCB->uxBasePriority;
|
||||
}
|
||||
// # 4828 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 4840 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
pxTaskStatus->ulRunTimeCounter = 0;
|
||||
}
|
||||
|
|
@ -13547,7 +13559,7 @@ static void prvCheckTasksWaitingTermination( void )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 4997 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 5009 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
|
||||
|
|
@ -13604,7 +13616,7 @@ static void prvCheckTasksWaitingTermination( void )
|
|||
free( (void*) pxTCB->pxStack);
|
||||
free( (void*) pxTCB);
|
||||
}
|
||||
// # 5080 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 5092 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -13809,8 +13821,8 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
* If the mutex is held by a task then it cannot be given from an
|
||||
* interrupt, and if a mutex is given by the holding task then it must
|
||||
* be the running state task. */
|
||||
(__builtin_expect(!(pxTCB == xTaskGetCurrentTaskHandle()), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5284, "pxTCB == xTaskGetCurrentTaskHandle()") : (void)0);
|
||||
(__builtin_expect(!(pxTCB->uxMutexesHeld), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5285, "pxTCB->uxMutexesHeld") : (void)0);
|
||||
(__builtin_expect(!(pxTCB == xTaskGetCurrentTaskHandle()), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5296, "pxTCB == xTaskGetCurrentTaskHandle()") : (void)0);
|
||||
(__builtin_expect(!(pxTCB->uxMutexesHeld), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5297, "pxTCB->uxMutexesHeld") : (void)0);
|
||||
( pxTCB->uxMutexesHeld )--;
|
||||
|
||||
/* Has the holder of the mutex inherited the priority of another
|
||||
|
|
@ -13896,7 +13908,7 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
{
|
||||
/* If pxMutexHolder is not NULL then the holder must hold at least
|
||||
* one mutex. */
|
||||
(__builtin_expect(!(pxTCB->uxMutexesHeld), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5371, "pxTCB->uxMutexesHeld") : (void)0);
|
||||
(__builtin_expect(!(pxTCB->uxMutexesHeld), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5383, "pxTCB->uxMutexesHeld") : (void)0);
|
||||
|
||||
/* Determine the priority to which the priority of the task that
|
||||
* holds the mutex should be set. This will be the greater of the
|
||||
|
|
@ -13923,7 +13935,7 @@ static void prvResetNextTaskUnblockTime( void )
|
|||
/* If a task has timed out because it already holds the
|
||||
* mutex it was trying to obtain then it cannot of inherited
|
||||
* its own priority. */
|
||||
(__builtin_expect(!(pxTCB != xTaskGetCurrentTaskHandle()), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5398, "pxTCB != xTaskGetCurrentTaskHandle()") : (void)0);
|
||||
(__builtin_expect(!(pxTCB != xTaskGetCurrentTaskHandle()), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5410, "pxTCB != xTaskGetCurrentTaskHandle()") : (void)0);
|
||||
|
||||
/* Disinherit the priority, remembering the previous
|
||||
* priority to facilitate determining the subject task's
|
||||
|
|
@ -14054,7 +14066,7 @@ void vTaskYieldWithinAPI( void )
|
|||
{
|
||||
/* If pxCurrentTCB->uxCriticalNesting is zero then this function
|
||||
* does not match a previous call to vTaskEnterCritical(). */
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5529, "xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U") : (void)0);
|
||||
(__builtin_expect(!(xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5541, "xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U") : (void)0);
|
||||
|
||||
if( xTaskGetCurrentTaskHandle()->uxCriticalNesting > 0U )
|
||||
{
|
||||
|
|
@ -14104,11 +14116,11 @@ void vTaskYieldWithinAPI( void )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 5605 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 5617 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 5711 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 5723 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*----------------------------------------------------------*/
|
||||
// # 5838 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 5850 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
TickType_t uxTaskResetEventItemValue( void )
|
||||
|
|
@ -14150,7 +14162,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
{
|
||||
uint32_t ulReturn;
|
||||
|
||||
(__builtin_expect(!(uxIndexToWait < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5879, "uxIndexToWait < 1") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToWait < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5891, "uxIndexToWait < 1") : (void)0);
|
||||
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
|
|
@ -14224,7 +14236,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
{
|
||||
BaseType_t xReturn;
|
||||
|
||||
(__builtin_expect(!(uxIndexToWait < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5953, "uxIndexToWait < 1") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToWait < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 5965, "uxIndexToWait < 1") : (void)0);
|
||||
|
||||
vTaskEnterCritical();
|
||||
{
|
||||
|
|
@ -14312,8 +14324,8 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
BaseType_t xReturn = ( ( ( BaseType_t ) 1 ) );
|
||||
uint8_t ucOriginalNotifyState;
|
||||
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6041, "uxIndexToNotify < 1") : (void)0);
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6042, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6053, "uxIndexToNotify < 1") : (void)0);
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6054, "xTaskToNotify") : (void)0);
|
||||
pxTCB = xTaskToNotify;
|
||||
|
||||
vTaskEnterCritical();
|
||||
|
|
@ -14366,7 +14378,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
/* Should not get here if all enums are handled.
|
||||
* Artificially force an assert by testing a value the
|
||||
* compiler can't assume is const. */
|
||||
(__builtin_expect(!(xTickCount == ( TickType_t ) 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6095, "xTickCount == ( TickType_t ) 0") : (void)0);
|
||||
(__builtin_expect(!(xTickCount == ( TickType_t ) 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6107, "xTickCount == ( TickType_t ) 0") : (void)0);
|
||||
|
||||
break;
|
||||
}
|
||||
|
|
@ -14381,8 +14393,8 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
; { if( ( ( pxTCB )->uxPriority ) > uxTopReadyPriority ) { uxTopReadyPriority = ( ( pxTCB )->uxPriority ); } }; vListInsertEnd( &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xStateListItem ) ); ;
|
||||
|
||||
/* The task should not have been on an event list. */
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6110, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
// # 6129 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6122, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
// # 6141 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
{
|
||||
prvYieldForTask( pxTCB, ( ( BaseType_t ) 0 ) );
|
||||
}
|
||||
|
|
@ -14415,8 +14427,8 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
BaseType_t xReturn = ( ( ( BaseType_t ) 1 ) );
|
||||
UBaseType_t uxSavedInterruptStatus;
|
||||
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6161, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6162, "uxIndexToNotify < 1") : (void)0);
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6173, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6174, "uxIndexToNotify < 1") : (void)0);
|
||||
|
||||
/* RTOS ports that support interrupt nesting have the concept of a
|
||||
* maximum system call (or maximum API call) interrupt priority.
|
||||
|
|
@ -14487,7 +14499,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
/* Should not get here if all enums are handled.
|
||||
* Artificially force an assert by testing a value the
|
||||
* compiler can't assume is const. */
|
||||
(__builtin_expect(!(xTickCount == ( TickType_t ) 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6233, "xTickCount == ( TickType_t ) 0") : (void)0);
|
||||
(__builtin_expect(!(xTickCount == ( TickType_t ) 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6245, "xTickCount == ( TickType_t ) 0") : (void)0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
@ -14498,7 +14510,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
if( ucOriginalNotifyState == ( ( uint8_t ) 1 ) )
|
||||
{
|
||||
/* The task should not have been on an event list. */
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6244, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6256, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
|
||||
if( uxSchedulerSuspended == ( UBaseType_t ) ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
|
|
@ -14543,8 +14555,8 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
uint8_t ucOriginalNotifyState;
|
||||
UBaseType_t uxSavedInterruptStatus;
|
||||
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6289, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6290, "uxIndexToNotify < 1") : (void)0);
|
||||
(__builtin_expect(!(xTaskToNotify), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6301, "xTaskToNotify") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToNotify < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6302, "uxIndexToNotify < 1") : (void)0);
|
||||
|
||||
/* RTOS ports that support interrupt nesting have the concept of a
|
||||
* maximum system call (or maximum API call) interrupt priority.
|
||||
|
|
@ -14582,7 +14594,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
if( ucOriginalNotifyState == ( ( uint8_t ) 1 ) )
|
||||
{
|
||||
/* The task should not have been on an event list. */
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6328, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
(__builtin_expect(!(( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6340, "( ( &( pxTCB->xEventListItem ) )->pxContainer ) == 0") : (void)0);
|
||||
|
||||
if( uxSchedulerSuspended == ( UBaseType_t ) ( ( BaseType_t ) 0 ) )
|
||||
{
|
||||
|
|
@ -14623,7 +14635,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
TCB_t * pxTCB;
|
||||
BaseType_t xReturn;
|
||||
|
||||
(__builtin_expect(!(uxIndexToClear < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6369, "uxIndexToClear < 1") : (void)0);
|
||||
(__builtin_expect(!(uxIndexToClear < 1), 0) ? __assert_rtn ((const char *)-1L, "tasks.c", 6381, "uxIndexToClear < 1") : (void)0);
|
||||
|
||||
/* If null is passed in here then it is the calling task that is having
|
||||
* its notification state cleared. */
|
||||
|
|
@ -14676,7 +14688,7 @@ TickType_t uxTaskResetEventItemValue( void )
|
|||
|
||||
|
||||
/*-----------------------------------------------------------*/
|
||||
// # 6438 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 6450 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
/*-----------------------------------------------------------*/
|
||||
|
||||
static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait,
|
||||
|
|
@ -14752,7 +14764,7 @@ static void prvAddCurrentTaskToDelayedList( TickType_t xTicksToWait,
|
|||
}
|
||||
}
|
||||
}
|
||||
// # 6550 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
// # 6562 "/Users/reitobia/repos2/FreeRTOS-Kernel/tasks.c"
|
||||
}
|
||||
|
||||
/* Code below here allows additional code to be inserted into this source file,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue