19 #ifndef _RTEMS_POSIX_SEMAPHOREIMPL_H 20 #define _RTEMS_POSIX_SEMAPHOREIMPL_H 35 #define POSIX_SEMAPHORE_MAGIC 0x5d367fe7UL 38 _POSIX_Semaphore_Allocate_unprotected(
void )
66 return sem->_Semaphore._Queue._name !=
NULL;
71 return sem->_Semaphore._Queue._heads !=
NULL;
81 _Semaphore_Initialize_named( &sem->_Semaphore, name, value );
87 _Semaphore_Destroy( &sem->_Semaphore );
106 &the_semaphore->Object
112 size_t *name_length_p,
113 Objects_Get_by_name_error *error
124 #define POSIX_SEMAPHORE_VALIDATE_OBJECT( sem ) \ 128 || ( (uintptr_t) ( sem ) ^ POSIX_SEMAPHORE_MAGIC ) != ( sem )->_flags \ 130 rtems_set_errno_and_return_minus_one( EINVAL ); \ Semaphore Implementation.
RTEMS_INLINE_ROUTINE Objects_Control * _Objects_Allocate_unprotected(Objects_Information *information)
Allocates an object without locking the allocator mutex.
Definition: objectimpl.h:874
Data which Ease the Burden of Consistently Setting Errno.
POSIX API Implementation.
Definition: semaphore.h:44
#define RTEMS_CONTAINER_OF(_m, _type, _member_name)
Returns a pointer to the container of a specified member pointer.
Definition: basedefs.h:430
Objects_Control * _Objects_Get_by_name(const Objects_Information *information, const char *name, size_t *name_length_p, Objects_Get_by_name_error *error)
Gets an object control block identified by its name.
Definition: objectnametoidstring.c:26
#define POSIX_SEMAPHORE_MAGIC
This is a random number used to check if a semaphore object is properly initialized.
Definition: semaphoreimpl.h:35
RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Namespace_remove(POSIX_Semaphore_Control *the_semaphore)
POSIX Semaphore Namespace Remove.
Definition: semaphoreimpl.h:100
RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Free(POSIX_Semaphore_Control *the_semaphore)
POSIX Semaphore Free.
Definition: semaphoreimpl.h:50
Objects_Information _POSIX_Semaphore_Information
The POSIX Semaphore objects information.
RTEMS_INLINE_ROUTINE void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectimpl.h:930
Private Support Information for POSIX Semaphores.
void _Objects_Namespace_remove_string(const Objects_Information *information, Objects_Control *the_object)
Removes object with a string name from its namespace.
Definition: objectnamespaceremove.c:25
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
void _POSIX_Semaphore_Delete(POSIX_Semaphore_Control *the_semaphore)
POSIX Semaphore Delete.
Definition: semaphoredeletesupp.c:23
#define NULL
Requests a GPIO pin group configuration.
Definition: bestcomm_api.h:77