summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems/posix/semaphoreimpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/posix/include/rtems/posix/semaphoreimpl.h')
-rw-r--r--cpukit/posix/include/rtems/posix/semaphoreimpl.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/cpukit/posix/include/rtems/posix/semaphoreimpl.h b/cpukit/posix/include/rtems/posix/semaphoreimpl.h
index df5e5238de..eeea51c488 100644
--- a/cpukit/posix/include/rtems/posix/semaphoreimpl.h
+++ b/cpukit/posix/include/rtems/posix/semaphoreimpl.h
@@ -65,6 +65,7 @@ RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Free (
POSIX_Semaphore_Control *the_semaphore
)
{
+ _CORE_semaphore_Destroy( &the_semaphore->Semaphore );
_Objects_Free( &_POSIX_Semaphore_Information, &the_semaphore->Object );
}
@@ -88,6 +89,20 @@ RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *_POSIX_Semaphore_Get (
_Objects_Get( &_POSIX_Semaphore_Information, (Objects_Id)*id, location );
}
+RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control *
+_POSIX_Semaphore_Get_interrupt_disable(
+ sem_t *id,
+ Objects_Locations *location,
+ ISR_lock_Context *lock_context
+)
+{
+ return (POSIX_Semaphore_Control *) _Objects_Get_isr_disable(
+ &_POSIX_Semaphore_Information,
+ (Objects_Id)*id,
+ location,
+ lock_context
+ );
+}
/**
* @brief POSIX Semaphore Create Support