]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-rtos/osal.git/commitdiff
[SEMAPHORE] Added semaphore reset API
authorLucas Weaver <l-weaver@ti.com>
Fri, 7 Dec 2018 17:20:19 +0000 (11:20 -0600)
committerSivaraj R <sivaraj@ti.com>
Mon, 10 Dec 2018 06:09:45 +0000 (00:09 -0600)
SemaphoreP.h
src/tirtos/SemaphoreP_tirtos.c

index 914f960be2723d1b13ddb4a9af16d985b746faf3..83a9b72b928b11f4b251a6ce3c0efbe9f190cab3 100644 (file)
@@ -215,6 +215,14 @@ extern SemaphoreP_Status SemaphoreP_postFromISR(SemaphoreP_Handle handle);
  */
 
 extern int32_t SemaphoreP_getCount(SemaphoreP_Handle handle);
+
+/*!
+ *  @brief  Function to clear a semaphore for resuse.
+ *
+ *  @param  handle  A SemaphoreP_Handle returned from ::SemaphoreP_create
+ */
+
+extern SemaphoreP_Status SemaphoreP_reset(SemaphoreP_Handle handle);
 #ifdef __cplusplus
 }
 #endif
index 1a7cc7c13db683254be29d0988c3be45455ffe95..dc5d67e2650f37e42476c6811415b9a5efe54f4e 100644 (file)
@@ -261,4 +261,16 @@ int32_t SemaphoreP_getCount(SemaphoreP_Handle handle)
 
     return (Semaphore_getCount((Semaphore_Handle)&semaphore->sem));
 }
+
+SemaphoreP_Status SemaphoreP_reset(SemaphoreP_Handle handle)
+{
+    SemaphoreP_Status ret_val = SemaphoreP_OK;
+    SemaphoreP_tiRtos *semaphore = (SemaphoreP_tiRtos *)handle;
+
+    SEMOSAL_Assert((handle == NULL));
+
+    Semaphore_reset((Semaphore_Handle)&semaphore->sem, 0);
+
+    return (ret_val);
+}
 /* Nothing past this point */