19 #ifndef _RTEMS_POSIX_SEMAPHOREIMPL_H 20 #define _RTEMS_POSIX_SEMAPHOREIMPL_H 52 _POSIX_Semaphore_Allocate_unprotected(
void )
68 _CORE_semaphore_Destroy( &the_semaphore->Semaphore );
69 _Objects_Free( &_POSIX_Semaphore_Information, &the_semaphore->Object );
93 _POSIX_Semaphore_Get_interrupt_disable(
100 &_POSIX_Semaphore_Information,
156 #if defined(RTEMS_DEBUG) 160 return _POSIX_Semaphore_Return_codes[the_semaphore_status];
171 &_POSIX_Semaphore_Information, &the_semaphore->Object );
int _POSIX_Semaphore_Wait_support(sem_t *sem, bool blocking, Watchdog_Interval timeout)
POSIX semaphore wait support.
Definition: semaphorewaitsupp.c:34
void _POSIX_Semaphore_Manager_initialization(void)
POSIX Semaphore Manager Initialization.
Definition: semaphore.c:45
void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectfree.c:25
Objects_Control * _Objects_Allocate_unprotected(Objects_Information *information)
Allocates an object without locking the allocator mutex.
Definition: objectallocate.c:39
RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control * _POSIX_Semaphore_Get(sem_t *id, Objects_Locations *location)
POSIX Semaphore Get.
Definition: semaphoreimpl.h:83
POSIX API Implementation.
RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Free(POSIX_Semaphore_Control *the_semaphore)
POSIX Semaphore Free.
Definition: semaphoreimpl.h:64
#define RTEMS_INLINE_ROUTINE
The following (in conjunction with compiler arguments) are used to choose between the use of static i...
Definition: basedefs.h:135
Definition: semaphore.h:43
#define CORE_SEMAPHORE_STATUS_LAST
Core semaphore last status value.
Definition: coresemimpl.h:68
CORE_semaphore_Status
Core Semaphore handler return statuses.
Definition: coresemimpl.h:40
Objects_Control * _Objects_Get(Objects_Information *information, Objects_Id id, Objects_Locations *location)
Maps object ids to object control blocks.
Definition: objectget.c:23
void _POSIX_Semaphore_Delete(POSIX_Semaphore_Control *the_semaphore)
POSIX Semaphore Delete.
Definition: semaphoredeletesupp.c:34
int _POSIX_Semaphore_Create_support(const char *name, size_t name_len, int pshared, unsigned int value, POSIX_Semaphore_Control **the_sem)
POSIX Semaphore Create Support.
Definition: semaphorecreatesupp.c:43
int _POSIX_Name_to_id(Objects_Information *information, const char *name, Objects_Id *id, size_t *len)
Queries the object identifier id for a name.
Definition: psxnametoid.c:30
RTEMS_INLINE_ROUTINE int _POSIX_Semaphore_Name_to_id(const char *name, Objects_Id *id, size_t *len)
Definition: semaphoreimpl.h:177
Private Support Information for POSIX Semaphores.
uint32_t Watchdog_Interval
Type is used to specify the length of intervals.
Definition: watchdog.h:47
RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Namespace_remove(POSIX_Semaphore_Control *the_semaphore)
POSIX Semaphore Namespace Remove.
Definition: semaphoreimpl.h:166
POSIX_EXTERN Objects_Information _POSIX_Semaphore_Information
This defines the information control block used to manage this class of objects.
Definition: semaphoreimpl.h:36
Objects_Locations
This enumerated type lists the locations which may be returned by _Objects_Get.
Definition: objectimpl.h:117
RTEMS_INLINE_ROUTINE int _POSIX_Semaphore_Translate_core_semaphore_return_code(CORE_semaphore_Status the_semaphore_status)
POSIX Semaphore Translate Score to POSIX Return Codes.
Definition: semaphoreimpl.h:149
Inlined Routines Associated with the SuperCore Semaphore.
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:65
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
Objects_Control * _Objects_Get_isr_disable(Objects_Information *information, Objects_Id id, Objects_Locations *location, ISR_lock_Context *lock_context)
Maps object ids to object control blocks.
Definition: objectgetisr.c:23
#define POSIX_EXTERN
The following ensures that all data is declared in the space of the initialization routine for either...
Definition: basedefs.h:123
void _Objects_Namespace_remove(Objects_Information *information, Objects_Control *the_object)
Removes object from namespace.
Definition: objectnamespaceremove.c:25