17 #ifndef _RTEMS_RTEMS_SEMIMPL_H 18 #define _RTEMS_RTEMS_SEMIMPL_H 40 #ifndef RTEMS_SEM_EXTERN 41 #define RTEMS_SEM_EXTERN extern 51 _Semaphore_Translate_core_mutex_return_code_[];
54 _Semaphore_Translate_core_semaphore_return_code_[];
81 #if defined(RTEMS_MULTIPROCESSING) 89 #if defined(RTEMS_DEBUG) 93 return _Semaphore_Translate_core_mutex_return_code_[status];
96 #if defined(RTEMS_SMP) 98 _Semaphore_Translate_MRSP_status_code( MRSP_Status mrsp_status )
119 #if defined(RTEMS_MULTIPROCESSING) 126 #if defined(RTEMS_DEBUG) 130 return _Semaphore_Translate_core_semaphore_return_code_[status];
197 &_Semaphore_Information,
208 #ifdef RTEMS_MULTIPROCESSING RTEMS_INLINE_ROUTINE rtems_status_code _Semaphore_Translate_core_mutex_return_code(uint32_t status)
Semaphore Translate Core Mutex Return Code.
Definition: semimpl.h:74
void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectfree.c:25
CORE Mutex Implementation.
RTEMS_INLINE_ROUTINE bool _Thread_Is_proxy_blocking(uint32_t code)
Is proxy blocking.
Definition: threadimpl.h:713
RTEMS_INLINE_ROUTINE Semaphore_Control * _Semaphore_Get_interrupt_disable(Objects_Id id, Objects_Locations *location, ISR_lock_Context *lock_context)
Maps semaphore IDs to semaphore control blocks.
Definition: semimpl.h:190
RTEMS_INLINE_ROUTINE void _Semaphore_Free(Semaphore_Control *the_semaphore)
Frees a semaphore control block to the inactive chain of free semaphore control blocks.
Definition: semimpl.h:152
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:101
#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
RTEMS_INLINE_ROUTINE rtems_status_code _Semaphore_Translate_core_semaphore_return_code(uint32_t status)
Semaphore Translate Core Semaphore Return Code.
Definition: semimpl.h:115
RTEMS_SEM_EXTERN Objects_Information _Semaphore_Information
The following defines the information control block used to manage this class of objects.
Definition: semimpl.h:48
#define CORE_SEMAPHORE_STATUS_LAST
Core semaphore last status value.
Definition: coresemimpl.h:68
Objects_Control Object
This field is the object management portion of a Semaphore instance.
Definition: sem.h:65
Objects_Control * _Objects_Get(Objects_Information *information, Objects_Id id, Objects_Locations *location)
Maps object ids to object control blocks.
Definition: objectget.c:23
#define RTEMS_SEM_EXTERN
Instantiate Semaphore Data.
Definition: semimpl.h:41
rtems_status_code
Classic API Status.
Definition: status.h:46
This is the status is used internally to RTEMS when performing operations on behalf of remote tasks...
Definition: status.h:180
void _Semaphore_Manager_initialization(void)
Semaphore Manager Initialization.
Definition: sem.c:35
This is the status to indicate that an internal RTEMS inconsistency was detected. ...
Definition: status.h:162
The following defines the control block used to manage each semaphore.
Definition: sem.h:63
Objects_Locations
This enumerated type lists the locations which may be returned by _Objects_Get.
Definition: objectimpl.h:117
Inlined Routines Associated with the SuperCore Semaphore.
RTEMS_INLINE_ROUTINE Semaphore_Control * _Semaphore_Allocate(void)
Allocates a semaphore control block from the inactive chain of free semaphore control blocks...
Definition: semimpl.h:140
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
#define CORE_MUTEX_STATUS_LAST
The last status value.
Definition: coremuteximpl.h:99
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
RTEMS_INLINE_ROUTINE Semaphore_Control * _Semaphore_Get(Objects_Id id, Objects_Locations *location)
Maps semaphore IDs to semaphore control blocks.
Definition: semimpl.h:170