![]() |
RTEMS
5.0.0
|
ScoreRWLock. More...
Files | |
| file | corerwlock.c |
| file | corerwlockobtainread.c |
| Obtain RWLock for reading. | |
| file | corerwlockobtainwrite.c |
| RWLock Obtain for Writing. | |
| file | corerwlockrelease.c |
| Releases the RWLock. | |
Data Structures | |
| struct | CORE_RWLock_Control |
Macros | |
| #define | CORE_RWLOCK_TQ_OPERATIONS &_Thread_queue_Operations_FIFO |
| #define | CORE_RWLOCK_THREAD_WAITING_FOR_READ 0 |
| #define | CORE_RWLOCK_THREAD_WAITING_FOR_WRITE 1 |
Enumerations | |
| enum | CORE_RWLock_States { CORE_RWLOCK_UNLOCKED, CORE_RWLOCK_LOCKED_FOR_READING, CORE_RWLOCK_LOCKED_FOR_WRITING } |
Functions | |
| void | _CORE_RWLock_Initialize (CORE_RWLock_Control *the_rwlock) |
| Initialize a RWlock. More... | |
| RTEMS_INLINE_ROUTINE void | _CORE_RWLock_Destroy (CORE_RWLock_Control *the_rwlock) |
| RTEMS_INLINE_ROUTINE Thread_Control * | _CORE_RWLock_Acquire (CORE_RWLock_Control *the_rwlock, Thread_queue_Context *queue_context) |
| RTEMS_INLINE_ROUTINE void | _CORE_RWLock_Release (CORE_RWLock_Control *the_rwlock, Thread_queue_Context *queue_context) |
| Status_Control | _CORE_RWLock_Seize_for_reading (CORE_RWLock_Control *the_rwlock, bool wait, Thread_queue_Context *queue_context) |
| Obtain RWLock for reading. More... | |
| Status_Control | _CORE_RWLock_Seize_for_writing (CORE_RWLock_Control *the_rwlock, bool wait, Thread_queue_Context *queue_context) |
| Obtain RWLock for writing. More... | |
| Status_Control | _CORE_RWLock_Surrender (CORE_RWLock_Control *the_rwlock) |
| Release the RWLock. More... | |
ScoreRWLock.
| #define CORE_RWLOCK_THREAD_WAITING_FOR_READ 0 |
This is used to denote that a thread is blocking waiting for read-only access to the RWLock.
| #define CORE_RWLOCK_THREAD_WAITING_FOR_WRITE 1 |
This is used to denote that a thread is blocking waiting for write-exclusive access to the RWLock.
| enum CORE_RWLock_States |
| void _CORE_RWLock_Initialize | ( | CORE_RWLock_Control * | the_rwlock | ) |
Initialize a RWlock.
This routine initializes the RWLock based on the parameters passed.
| [in] | the_rwlock | is the RWLock to initialize |
| Status_Control _CORE_RWLock_Seize_for_reading | ( | CORE_RWLock_Control * | the_rwlock, |
| bool | wait, | ||
| Thread_queue_Context * | queue_context | ||
| ) |
Obtain RWLock for reading.
This routine attempts to obtain the RWLock for read access.
| [in] | the_rwlock | is the RWLock to wait for |
| [in] | wait | is true if the calling thread is willing to wait |
| Status_Control _CORE_RWLock_Seize_for_writing | ( | CORE_RWLock_Control * | the_rwlock, |
| bool | wait, | ||
| Thread_queue_Context * | queue_context | ||
| ) |
Obtain RWLock for writing.
This routine attempts to obtain the RWLock for write exclusive access.
| [in] | the_rwlock | is the RWLock to wait for |
| [in] | wait | is true if the calling thread is willing to wait |
| Status_Control _CORE_RWLock_Surrender | ( | CORE_RWLock_Control * | the_rwlock | ) |
Release the RWLock.
This routine manually releases the_rwlock. All of the threads waiting for the RWLock will be readied.
| [in] | the_rwlock | is the RWLock to surrender |
| Status | is returned to indicate successful or failure. |
1.8.13