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