RTEMS  5.1
Files | Data Structures | Macros | Enumerations | Functions | Variables
Semaphore Manager Implementation

Files

file  semdata.h
 Classic Semaphore Manager Data Structures.
 
file  semimpl.h
 Classic Semaphore Manager Implementation.
 

Data Structures

struct  Semaphore_Control
 

Macros

#define SEMAPHORE_INFORMATION_DEFINE(max, scheduler_count)
 Macro to define the objects information for the Classic Semaphore objects. More...
 

Enumerations

enum  Semaphore_Variant {
  SEMAPHORE_VARIANT_MUTEX_INHERIT_PRIORITY, SEMAPHORE_VARIANT_MUTEX_PRIORITY_CEILING, SEMAPHORE_VARIANT_MUTEX_NO_PROTOCOL, SEMAPHORE_VARIANT_SIMPLE_BINARY,
  SEMAPHORE_VARIANT_COUNTING
}
 Classic semaphore variants. More...
 
enum  Semaphore_Discipline { SEMAPHORE_DISCIPLINE_PRIORITY, SEMAPHORE_DISCIPLINE_FIFO }
 

Functions

RTEMS_INLINE_ROUTINE uintptr_t _Semaphore_Get_flags (const Semaphore_Control *the_semaphore)
 
RTEMS_INLINE_ROUTINE void _Semaphore_Set_flags (Semaphore_Control *the_semaphore, uintptr_t flags)
 
RTEMS_INLINE_ROUTINE Semaphore_Variant _Semaphore_Get_variant (uintptr_t flags)
 
RTEMS_INLINE_ROUTINE uintptr_t _Semaphore_Set_variant (uintptr_t flags, Semaphore_Variant variant)
 
RTEMS_INLINE_ROUTINE Semaphore_Discipline _Semaphore_Get_discipline (uintptr_t flags)
 
RTEMS_INLINE_ROUTINE uintptr_t _Semaphore_Set_discipline (uintptr_t flags, Semaphore_Discipline discipline)
 
RTEMS_INLINE_ROUTINE const Thread_queue_Operations_Semaphore_Get_operations (uintptr_t flags)
 
RTEMS_INLINE_ROUTINE Semaphore_Control_Semaphore_Allocate (void)
 Allocates a semaphore control block from the inactive chain of free semaphore control blocks. More...
 
RTEMS_INLINE_ROUTINE void _Semaphore_Free (Semaphore_Control *the_semaphore)
 Frees a semaphore control block to the inactive chain of free semaphore control blocks. More...
 
RTEMS_INLINE_ROUTINE Semaphore_Control_Semaphore_Get (Objects_Id id, Thread_queue_Context *queue_context)
 

Variables

Objects_Information _Semaphore_Information
 The Classic Semaphore objects information.
 

Detailed Description

Macro Definition Documentation

◆ SEMAPHORE_INFORMATION_DEFINE

#define SEMAPHORE_INFORMATION_DEFINE (   max,
  scheduler_count 
)
Value:
_Semaphore, \
OBJECTS_CLASSIC_API, \
OBJECTS_RTEMS_SEMAPHORES, \
max, \
_Semaphore_MP_Send_extract_proxy \
)
#define OBJECTS_NO_STRING_NAME
Constant for the object information string name length to indicate that this object class has no stri...
Definition: objectdata.h:101
Definition: semdata.h:40
#define OBJECTS_INFORMATION_DEFINE(name, api, cls, type, max, nl, ex)
Statically initializes an objects information.
Definition: objectdata.h:427

Macro to define the objects information for the Classic Semaphore objects.

This macro should only be used by <rtems/confdefs.h>.

Parameters
maxThe configured object maximum (the OBJECTS_UNLIMITED_OBJECTS flag may be set).
scheduler_countThe configured scheduler count (only used in SMP configurations).

Enumeration Type Documentation

◆ Semaphore_Variant

Classic semaphore variants.

Must be in synchronization with Semaphore_Control::variant.

Function Documentation

◆ _Semaphore_Allocate()

RTEMS_INLINE_ROUTINE Semaphore_Control* _Semaphore_Allocate ( void  )

Allocates a semaphore control block from the inactive chain of free semaphore control blocks.

This function allocates a semaphore control block from the inactive chain of free semaphore control blocks.

◆ _Semaphore_Free()

RTEMS_INLINE_ROUTINE void _Semaphore_Free ( Semaphore_Control the_semaphore)

Frees a semaphore control block to the inactive chain of free semaphore control blocks.

This routine frees a semaphore control block to the inactive chain of free semaphore control blocks.