RTEMS
5.1
|
Private Inlined Routines for POSIX Mutex's. More...
#include <errno.h>
#include <pthread.h>
#include <rtems/score/percpu.h>
#include <rtems/score/muteximpl.h>
#include <rtems/score/threadimpl.h>
Go to the source code of this file.
Data Structures | |
struct | POSIX_Mutex_Control |
Enumerations | |
enum | POSIX_Mutex_Protocol { POSIX_MUTEX_NO_PROTOCOL, POSIX_MUTEX_PRIORITY_INHERIT, POSIX_MUTEX_PRIORITY_CEILING } |
Supported POSIX mutex protocols. More... | |
Functions | |
RTEMS_INLINE_ROUTINE Thread_Control * | _POSIX_Mutex_Acquire (POSIX_Mutex_Control *the_mutex, Thread_queue_Context *queue_context) |
RTEMS_INLINE_ROUTINE void | _POSIX_Mutex_Release (POSIX_Mutex_Control *the_mutex, Thread_queue_Context *queue_context) |
RTEMS_INLINE_ROUTINE POSIX_Mutex_Protocol | _POSIX_Mutex_Get_protocol (unsigned long flags) |
RTEMS_INLINE_ROUTINE bool | _POSIX_Mutex_Is_recursive (unsigned long flags) |
RTEMS_INLINE_ROUTINE Thread_Control * | _POSIX_Mutex_Get_owner (const POSIX_Mutex_Control *the_mutex) |
RTEMS_INLINE_ROUTINE bool | _POSIX_Mutex_Is_locked (const POSIX_Mutex_Control *the_mutex) |
Status_Control | _POSIX_Mutex_Seize_slow (POSIX_Mutex_Control *the_mutex, const Thread_queue_Operations *operations, Thread_Control *executing, const struct timespec *abstime, Thread_queue_Context *queue_context) |
RTEMS_INLINE_ROUTINE void | _POSIX_Mutex_Set_owner (POSIX_Mutex_Control *the_mutex, Thread_Control *owner) |
RTEMS_INLINE_ROUTINE bool | _POSIX_Mutex_Is_owner (const POSIX_Mutex_Control *the_mutex, const Thread_Control *the_thread) |
RTEMS_INLINE_ROUTINE Status_Control | _POSIX_Mutex_Seize (POSIX_Mutex_Control *the_mutex, unsigned long flags, const Thread_queue_Operations *operations, Thread_Control *executing, const struct timespec *abstime, Thread_queue_Context *queue_context) |
RTEMS_INLINE_ROUTINE Status_Control | _POSIX_Mutex_Surrender (POSIX_Mutex_Control *the_mutex, const Thread_queue_Operations *operations, Thread_Control *executing, Thread_queue_Context *queue_context) |
RTEMS_INLINE_ROUTINE const Scheduler_Control * | _POSIX_Mutex_Get_scheduler (const POSIX_Mutex_Control *the_mutex) |
RTEMS_INLINE_ROUTINE void | _POSIX_Mutex_Set_priority (POSIX_Mutex_Control *the_mutex, Priority_Control priority_ceiling, Thread_queue_Context *queue_context) |
RTEMS_INLINE_ROUTINE Priority_Control | _POSIX_Mutex_Get_priority (const POSIX_Mutex_Control *the_mutex) |
RTEMS_INLINE_ROUTINE Status_Control | _POSIX_Mutex_Ceiling_set_owner (POSIX_Mutex_Control *the_mutex, Thread_Control *owner, Thread_queue_Context *queue_context) |
RTEMS_INLINE_ROUTINE Status_Control | _POSIX_Mutex_Ceiling_seize (POSIX_Mutex_Control *the_mutex, unsigned long flags, Thread_Control *executing, const struct timespec *abstime, Thread_queue_Context *queue_context) |
RTEMS_INLINE_ROUTINE Status_Control | _POSIX_Mutex_Ceiling_surrender (POSIX_Mutex_Control *the_mutex, Thread_Control *executing, Thread_queue_Context *queue_context) |
int | _POSIX_Mutex_Lock_support (pthread_mutex_t *mutex, const struct timespec *abstime, Thread_queue_Enqueue_callout enqueue_callout) |
bool | _POSIX_Mutex_Auto_initialization (POSIX_Mutex_Control *the_mutex) |
Variables | |
const pthread_mutexattr_t | _POSIX_Mutex_Default_attributes |
Private Inlined Routines for POSIX Mutex's.
This include file contains the static inline implementation of the private inlined routines for POSIX mutex's.
#define POSIX_MUTEX_VALIDATE_OBJECT | ( | the_mutex, | |
flags | |||
) |
enum POSIX_Mutex_Protocol |
Supported POSIX mutex protocols.
Must be in synchronization with POSIX_Mutex_Control::protocol.
const pthread_mutexattr_t _POSIX_Mutex_Default_attributes |
The default mutex attributes structure.