RTEMS CPU Kit with SuperCore  4.11.3
Functions | Variables
semaphoreimpl.h File Reference

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>
Include dependency graph for semaphoreimpl.h:
This graph shows which files directly or indirectly include this file:

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.
 

Detailed Description

Private Inlined Routines for POSIX Semaphores.

This include file contains the static inline implementation of the private inlined routines for POSIX Semaphores.

Function Documentation

◆ _POSIX_Semaphore_Create_support()

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.

◆ _POSIX_Semaphore_Delete()

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.

◆ _POSIX_Semaphore_Free()

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().

◆ _POSIX_Semaphore_Get()

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.

◆ _POSIX_Semaphore_Manager_initialization()

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.

◆ _POSIX_Semaphore_Name_to_id()

RTEMS_INLINE_ROUTINE int _POSIX_Semaphore_Name_to_id ( const char *  name,
Objects_Id id,
size_t *  len 
)

◆ _POSIX_Semaphore_Translate_core_semaphore_return_code()

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.

◆ _POSIX_Semaphore_Wait_support()

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.