mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-04-20 05:21:59 -04:00
Add in the portSET_INTERRUPT_MASK_FROM_ISR() and portCLEAR_INTERRUPT_MASK_FROM_ISR() macros.
This commit is contained in:
parent
676139e920
commit
5d27f3ccf7
|
@ -808,6 +808,8 @@ signed portBASE_TYPE xReturn;
|
||||||
queue read, instead we return a flag to say whether a context switch is
|
queue read, instead we return a flag to say whether a context switch is
|
||||||
required or not (i.e. has a task with a higher priority than us been woken
|
required or not (i.e. has a task with a higher priority than us been woken
|
||||||
by this post). */
|
by this post). */
|
||||||
|
portSET_INTERRUPT_MASK_FROM_ISR();
|
||||||
|
{
|
||||||
if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )
|
if( pxQueue->uxMessagesWaiting < pxQueue->uxLength )
|
||||||
{
|
{
|
||||||
traceQUEUE_SEND_FROM_ISR( pxQueue );
|
traceQUEUE_SEND_FROM_ISR( pxQueue );
|
||||||
|
@ -842,6 +844,8 @@ signed portBASE_TYPE xReturn;
|
||||||
traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue );
|
traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue );
|
||||||
xReturn = errQUEUE_FULL;
|
xReturn = errQUEUE_FULL;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
portCLEAR_INTERRUPT_MASK_FROM_ISR();
|
||||||
|
|
||||||
return xReturn;
|
return xReturn;
|
||||||
}
|
}
|
||||||
|
@ -1004,6 +1008,8 @@ signed portBASE_TYPE xQueueReceiveFromISR( xQueueHandle pxQueue, void * const pv
|
||||||
{
|
{
|
||||||
signed portBASE_TYPE xReturn;
|
signed portBASE_TYPE xReturn;
|
||||||
|
|
||||||
|
portSET_INTERRUPT_MASK_FROM_ISR();
|
||||||
|
{
|
||||||
/* We cannot block from an ISR, so check there is data available. */
|
/* We cannot block from an ISR, so check there is data available. */
|
||||||
if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )
|
if( pxQueue->uxMessagesWaiting > ( unsigned portBASE_TYPE ) 0 )
|
||||||
{
|
{
|
||||||
|
@ -1041,6 +1047,8 @@ signed portBASE_TYPE xReturn;
|
||||||
xReturn = pdFAIL;
|
xReturn = pdFAIL;
|
||||||
traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue );
|
traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
portCLEAR_INTERRUPT_MASK_FROM_ISR();
|
||||||
|
|
||||||
return xReturn;
|
return xReturn;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue