RTEMS CPU Kit with SuperCore
4.11.3
|
Private Inlined Routines for POSIX Semaphores. More...
#include <rtems/posix/semaphore.h>
#include <rtems/posix/posixapi.h>
#include <rtems/score/coresemimpl.h>
#include <errno.h>
Go to the source code of this file.
Functions | |
void | _POSIX_Semaphore_Manager_initialization (void) |
POSIX Semaphore Manager Initialization. More... | |
RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control * | _POSIX_Semaphore_Allocate_unprotected (void) |
RTEMS_INLINE_ROUTINE void | _POSIX_Semaphore_Free (POSIX_Semaphore_Control *the_semaphore) |
POSIX Semaphore Free. More... | |
RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control * | _POSIX_Semaphore_Get (sem_t *id, Objects_Locations *location) |
POSIX Semaphore Get. More... | |
RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control * | _POSIX_Semaphore_Get_interrupt_disable (sem_t *id, Objects_Locations *location, ISR_lock_Context *lock_context) |
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. More... | |
void | _POSIX_Semaphore_Delete (POSIX_Semaphore_Control *the_semaphore) |
POSIX Semaphore Delete. More... | |
int | _POSIX_Semaphore_Wait_support (sem_t *sem, bool blocking, Watchdog_Interval timeout) |
POSIX semaphore wait support. More... | |
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. More... | |
RTEMS_INLINE_ROUTINE void | _POSIX_Semaphore_Namespace_remove (POSIX_Semaphore_Control *the_semaphore) |
POSIX Semaphore Namespace Remove. | |
RTEMS_INLINE_ROUTINE int | _POSIX_Semaphore_Name_to_id (const char *name, Objects_Id *id, size_t *len) |
Variables | |
POSIX_EXTERN Objects_Information | _POSIX_Semaphore_Information |
This defines the information control block used to manage this class of objects. | |
const int | _POSIX_Semaphore_Return_codes [CORE_SEMAPHORE_STATUS_LAST+1] |
This defines the mapping from Score status codes to POSIX return codes. | |
Private Inlined Routines for POSIX Semaphores.
This include file contains the static inline implementation of the private inlined routines for POSIX Semaphores.
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.
This routine supports the sem_init and sem_open routines.
void _POSIX_Semaphore_Delete | ( | POSIX_Semaphore_Control * | the_semaphore | ) |
POSIX Semaphore Delete.
This routine supports the sem_close and sem_unlink routines.
References _CORE_semaphore_Flush(), _Objects_Close(), _POSIX_Semaphore_Free(), and _POSIX_Semaphore_Information.
RTEMS_INLINE_ROUTINE void _POSIX_Semaphore_Free | ( | POSIX_Semaphore_Control * | the_semaphore | ) |
POSIX Semaphore Free.
This routine frees a semaphore control block to the inactive chain of free semaphore control blocks.
Referenced by _POSIX_Semaphore_Delete().
RTEMS_INLINE_ROUTINE POSIX_Semaphore_Control* _POSIX_Semaphore_Get | ( | sem_t * | id, |
Objects_Locations * | location | ||
) |
POSIX Semaphore Get.
This function maps semaphore IDs to semaphore control blocks. If ID corresponds to a local semaphore, then it returns the_semaphore control pointer which maps to ID and location is set to OBJECTS_LOCAL. if the semaphore ID is global and resides on a remote node, then location is set to OBJECTS_REMOTE, and the_semaphore is undefined. Otherwise, location is set to OBJECTS_ERROR and the_semaphore is undefined.
References _Objects_Get(), and RTEMS_INLINE_ROUTINE.
void _POSIX_Semaphore_Manager_initialization | ( | void | ) |
POSIX Semaphore Manager Initialization.
This routine performs the initialization necessary for this manager.
References _Objects_Initialize_information(), and _POSIX_Semaphore_Information.
RTEMS_INLINE_ROUTINE int _POSIX_Semaphore_Name_to_id | ( | const char * | name, |
Objects_Id * | id, | ||
size_t * | len | ||
) |
References _POSIX_Name_to_id().
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.
A support routine which converts core semaphore status codes into the appropriate POSIX status values.
References CORE_SEMAPHORE_STATUS_LAST.
int _POSIX_Semaphore_Wait_support | ( | sem_t * | sem, |
bool | blocking, | ||
Watchdog_Interval | timeout | ||
) |
POSIX semaphore wait support.
This routine supports the sem_wait, sem_trywait, and sem_timedwait services.