Add in the portSET_INTERRUPT_MASK_FROM_ISR() and portCLEAR_INTERRUPT_MASK_FROM_ISR() macros.

pull/4/head
Richard Barry 17 years ago
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…
Cancel
Save