summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>2014-04-24 12:29:40 +0000
committerrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>2014-04-24 12:29:40 +0000
commit1a8d3278de245c723b7d4706395b0d98a5319d43 (patch)
tree6652fea0d915325152338701c2c77cc44576c8d4
parent1ced21a43779d36d8c3a7d68fdd91c976f476071 (diff)
downloadfreertos-1a8d3278de245c723b7d4706395b0d98a5319d43.tar.gz
Add xQueueGetMutexHolder() to MPU functions.
git-svn-id: http://svn.code.sf.net/p/freertos/code/trunk@2239 1d2547de-c912-0410-9cb9-b8ca96c0e9e2
-rw-r--r--FreeRTOS/Source/include/mpu_wrappers.h1
-rw-r--r--FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/port.c12
2 files changed, 13 insertions, 0 deletions
diff --git a/FreeRTOS/Source/include/mpu_wrappers.h b/FreeRTOS/Source/include/mpu_wrappers.h
index 360b4f92b..0472c46c0 100644
--- a/FreeRTOS/Source/include/mpu_wrappers.h
+++ b/FreeRTOS/Source/include/mpu_wrappers.h
@@ -117,6 +117,7 @@ only for ports that are using the MPU. */
#define xQueueAddToSet MPU_xQueueAddToSet
#define xQueueRemoveFromSet MPU_xQueueRemoveFromSet
#define xQueuePeekFromISR MPU_xQueuePeekFromISR
+ #define xQueueGetMutexHolder MPU_xQueueGetMutexHolder
#define pvPortMalloc MPU_pvPortMalloc
#define vPortFree MPU_vPortFree
diff --git a/FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/port.c b/FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/port.c
index 116f1ba38..9465aa141 100644
--- a/FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/port.c
+++ b/FreeRTOS/Source/portable/GCC/ARM_CM3_MPU/port.c
@@ -216,6 +216,7 @@ QueueSetMemberHandle_t MPU_xQueueSelectFromSet( QueueSetHandle_t xQueueSet, Tick
BaseType_t MPU_xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet );
BaseType_t MPU_xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet );
BaseType_t MPU_xQueuePeekFromISR( QueueHandle_t xQueue, void * const pvBuffer );
+void* MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore );
/*-----------------------------------------------------------*/
@@ -1016,6 +1017,17 @@ BaseType_t xReturn;
}
/*-----------------------------------------------------------*/
+void* MPU_xQueueGetMutexHolder( QueueHandle_t xSemaphore )
+{
+BaseType_t xRunningPrivileged = prvRaisePrivilege();
+void * xReturn;
+
+ xReturn = ( void * ) xQueueGetMutexHolder( xSemaphore );
+ portRESET_PRIVILEGE( xRunningPrivileged );
+ return xReturn;
+}
+/*-----------------------------------------------------------*/
+
#if ( configUSE_MUTEXES == 1 )
QueueHandle_t MPU_xQueueCreateMutex( void )
{