RTEMS CPU Kit with SuperCore
4.11.3
|
Inlined Routines from the POSIX Spinlock Manager. More...
#include <rtems/posix/spinlock.h>
#include <rtems/score/corespinlockimpl.h>
#include <rtems/score/objectimpl.h>
#include <pthread.h>
Go to the source code of this file.
Functions | |
void | _POSIX_Spinlock_Manager_initialization (void) |
POSIX spinlock manager initialization. More... | |
int | _POSIX_Spinlock_Translate_core_spinlock_return_code (CORE_spinlock_Status the_spinlock_status) |
Translate core spinlock status code. More... | |
RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control * | _POSIX_Spinlock_Allocate (void) |
Allocate a spinlock control block. More... | |
RTEMS_INLINE_ROUTINE void | _POSIX_Spinlock_Free (POSIX_Spinlock_Control *the_spinlock) |
Free a spinlock control block. More... | |
RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control * | _POSIX_Spinlock_Get (pthread_spinlock_t *spinlock, Objects_Locations *location) |
Get a spinlock control block. More... | |
Variables | |
POSIX_EXTERN Objects_Information | _POSIX_Spinlock_Information |
The following defines the information control block used to manage this class of objects. | |
Inlined Routines from the POSIX Spinlock Manager.
This file contains the static inlin implementation of the inlined routines from the POSIX Spinlock Manager.
RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control* _POSIX_Spinlock_Allocate | ( | void | ) |
Allocate a spinlock control block.
This function allocates a spinlock control block from the inactive chain of free spinlock control blocks.
References _Objects_Allocate().
RTEMS_INLINE_ROUTINE void _POSIX_Spinlock_Free | ( | POSIX_Spinlock_Control * | the_spinlock | ) |
Free a spinlock control block.
This routine frees a spinlock control block to the inactive chain of free spinlock control blocks.
References _Objects_Free(), and POSIX_Spinlock_Control::Object.
RTEMS_INLINE_ROUTINE POSIX_Spinlock_Control* _POSIX_Spinlock_Get | ( | pthread_spinlock_t * | spinlock, |
Objects_Locations * | location | ||
) |
Get a spinlock control block.
This function maps spinlock IDs to spinlock control blocks. If ID corresponds to a local spinlock, then it returns the_spinlock control pointer which maps to ID and location is set to OBJECTS_LOCAL. if the spinlock ID is global and resides on a remote node, then location is set to OBJECTS_REMOTE, and the_spinlock is undefined. Otherwise, location is set to OBJECTS_ERROR and the_spinlock is undefined.
References _Objects_Get().
Referenced by pthread_spin_destroy().
void _POSIX_Spinlock_Manager_initialization | ( | void | ) |
POSIX spinlock manager initialization.
This routine performs the initialization necessary for this manager.
POSIX spinlock manager initialization.
References _Objects_Initialize_information(), and _POSIX_Spinlock_Information.
int _POSIX_Spinlock_Translate_core_spinlock_return_code | ( | CORE_spinlock_Status | the_spinlock_status | ) |
Translate core spinlock status code.
This routine translates SuperCore Spinlock status codes into the corresponding POSIX ones.
[in] | the_spinlock_status | is the SuperCore status. |
References CORE_SPINLOCK_STATUS_LAST.