\r
***************************************************************************\r
\r
- Please ensure to read the configuration and relevant port sections of the \r
+ Please ensure to read the configuration and relevant port sections of the\r
online documentation.\r
\r
+++ http://www.FreeRTOS.org +++\r
- Documentation, latest information, license and contact details. \r
+ Documentation, latest information, license and contact details.\r
\r
+++ http://www.SafeRTOS.com +++\r
A version that is certified for use in safety critical systems.\r
signed portBASE_TYPE xQueueAltGenericReceive( xQueueHandle pxQueue, const void * const pvBuffer, portTickType xTicksToWait, portBASE_TYPE xJustPeeking );\r
portBASE_TYPE xQueueIsQueueEmptyFromISR( const xQueueHandle pxQueue );\r
portBASE_TYPE xQueueIsQueueFullFromISR( const xQueueHandle pxQueue );\r
-portBASE_TYPE xQueueMessagesWaitingFromISR( const xQueueHandle pxQueue );\r
+unsigned portBASE_TYPE uxQueueMessagesWaitingFromISR( const xQueueHandle pxQueue );\r
\r
\r
#if configUSE_CO_ROUTINES == 1\r
{\r
portBASE_TYPE xReturn;\r
\r
- /* If this is the task that holds the mutex then pxMutexHolder will not \r
+ /* If this is the task that holds the mutex then pxMutexHolder will not\r
change outside of this task. If this task does not hold the mutex then\r
pxMutexHolder can never coincidentally equal the tasks handle, and as\r
this is the only condition we are interested in it does not matter if\r
if( pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle() )\r
{\r
/* uxRecursiveCallCount cannot be zero if pxMutexHolder is equal to\r
- the task handle, therefore no underflow check is required. Also, \r
+ the task handle, therefore no underflow check is required. Also,\r
uxRecursiveCallCount is only modified by the mutex holder, and as\r
there can only be one, no mutual exclusion is required to modify the\r
uxRecursiveCallCount member. */\r
{\r
portBASE_TYPE xReturn;\r
\r
- /* Comments regarding mutual exclusion as per those within \r
+ /* Comments regarding mutual exclusion as per those within\r
xQueueGiveMutexRecursive(). */\r
\r
if( pxMutex->pxMutexHolder == xTaskGetCurrentTaskHandle() )\r
if( xReturn == pdTRUE )\r
{\r
/* This is the first time through - we need to capture the\r
- time while the scheduler is locked to ensure we attempt to \r
+ time while the scheduler is locked to ensure we attempt to\r
block at least once. */\r
vTaskSetTimeOutState( &xTimeOut );\r
}\r
vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait );\r
\r
/* Unlocking the queue means queue events can effect the\r
- event list. It is possible that interrupts occurring now \r
+ event list. It is possible that interrupts occurring now\r
remove this task from the event list again - but as the\r
scheduler is suspended the task will go onto the pending\r
- ready last instead of the actual ready list. */ \r
+ ready last instead of the actual ready list. */\r
prvUnlockQueue( pxQueue );\r
\r
/* Resuming the scheduler will move tasks from the pending\r
}\r
}\r
\r
- /* Higher priority tasks and interrupts can execute during \r
+ /* Higher priority tasks and interrupts can execute during\r
this time and could possible refill the queue - even if we\r
unblocked because space became available. */\r
\r
\r
/* The source code that implements the alternative (Alt) API is\r
simpler because it makes more use of critical sections. This is \r
- the approach taken by many other RTOSes, but FreeRTOS.org has the \r
- preferred fully featured API too. The fully featured API has more \r
- complex code that takes longer to execute, but makes less use of \r
+ the approach taken by many other RTOSes, but FreeRTOS.org has the\r
+ preferred fully featured API too. The fully featured API has more\r
+ complex code that takes longer to execute, but makes less use of\r
critical sections. */\r
\r
do\r
if( xReturn == pdPASS )\r
{\r
/* This is the first time through - capture the time\r
- inside the critical section to ensure we attempt to \r
+ inside the critical section to ensure we attempt to\r
block at least once. */\r
vTaskSetTimeOutState( &xTimeOut );\r
}\r
portEXIT_CRITICAL();\r
}\r
\r
- /* Higher priority tasks and interrupts can execute during \r
+ /* Higher priority tasks and interrupts can execute during\r
this time and could possible refill the queue - even if we\r
unblocked because space became available. */\r
\r
\r
/* The source code that implements the alternative (Alt) API is\r
simpler because it makes more use of critical sections. This is \r
- the approach taken by many other RTOSes, but FreeRTOS.org has the \r
- preferred fully featured API too. The fully featured API has more \r
- complex code that takes longer to execute, but makes less use of \r
+ the approach taken by many other RTOSes, but FreeRTOS.org has the\r
+ preferred fully featured API too. The fully featured API has more\r
+ complex code that takes longer to execute, but makes less use of\r
critical sections. */\r
\r
do\r
if( xReturn == pdPASS )\r
{\r
/* This is the first time through - capture the time\r
- inside the critical section to ensure we attempt to \r
+ inside the critical section to ensure we attempt to\r
block at least once. */\r
vTaskSetTimeOutState( &xTimeOut );\r
}\r
if( xReturn == pdTRUE )\r
{\r
/* This is the first time through - we need to capture the\r
- time while the scheduler is locked to ensure we attempt to \r
+ time while the scheduler is locked to ensure we attempt to\r
block at least once. */\r
vTaskSetTimeOutState( &xTimeOut );\r
}\r