RM Blocking functionality when no callback provided is working
[keystone-rtos/rm-lld.git] / test / rm_osal.c
index 1216bcf9759ebb48852cf2a549d54a4668a8fca7..99bcc0f32f40b28a1fb1fb91ce94f91bb835c423 100644 (file)
@@ -48,8 +48,8 @@
 #include <xdc/runtime/Error.h>
 #include <xdc/runtime/System.h>
 
-/* IPC Includes */
-#include <ti/ipc/GateMP.h>
+/* BIOS Includes */
+#include <ti/sysbios/gates/GateMutex.h>
 
 /**********************************************************************
  ****************************** Defines *******************************
@@ -62,7 +62,7 @@
 uint32_t rmMallocCounter = 0;
 uint32_t rmFreeCounter   = 0;
 
-GateMP_Handle rmInternalGateHandle;
+GateMutex_Handle rmInternalGateHandle;
 
 /**********************************************************************
  *************************** OSAL Functions **************************
@@ -98,26 +98,24 @@ void Osal_rmFree (void *ptr, uint32_t size)
 
 void Osal_rmLocalGateInit (void)
 {
-    GateMP_Params gateParams;
-
-    /* Create a GateMP object to be use as a resource lock */
-    GateMP_Params_init(&gateParams);
-    gateParams.name = RM_INTERNAL_GATE_NAME;    
-    /* Local protection for multiple threads, uses a BIOS GateMutexPri */
-    gateParams.localProtect = GateMP_LocalProtect_THREAD;
-    /* No remote protection because we're not going between cores */
-    gateParams.remoteProtect = GateMP_RemoteProtect_NONE;
-    rmInternalGateHandle = GateMP_create(&gateParams);
+    Error_Block eb;
+    GateMutex_Params gateParams;
+
+    /* Create a GateMutex object to be use as a resource lock */
+    GateMutex_Params_init(&gateParams);  
+    rmInternalGateHandle = GateMutex_create(&gateParams, &eb);
+    /* Immediately take the gate so that calls from within RM will block */
+    GateMutex_enter(rmInternalGateHandle);
 }
 
 uint32_t Osal_rmLocalGateEnter (void)
 {
-    return ((uint32_t)GateMP_enter(rmInternalGateHandle));
+    return ((uint32_t)GateMutex_enter(rmInternalGateHandle));
 }
 
 void Osal_rmLocalGateLeave (uint32_t localGateKey)
 {
-    GateMP_leave(rmInternalGateHandle, (IArg)localGateKey);
+    GateMutex_leave(rmInternalGateHandle, (IArg)localGateKey);
 }
 
 /* FUNCTION PURPOSE: Prints a variable list