RTEMS CPU Kit with SuperCore  4.11.3
Functions | Variables
spinlockimpl.h File Reference

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>
Include dependency graph for spinlockimpl.h:
This graph shows which files directly or indirectly include this file:

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.
 

Detailed Description

Inlined Routines from the POSIX Spinlock Manager.

This file contains the static inlin implementation of the inlined routines from the POSIX Spinlock Manager.

Function Documentation

◆ _POSIX_Spinlock_Allocate()

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

◆ _POSIX_Spinlock_Free()

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.

◆ _POSIX_Spinlock_Get()

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

◆ _POSIX_Spinlock_Manager_initialization()

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.

◆ _POSIX_Spinlock_Translate_core_spinlock_return_code()

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.

Parameters
[in]the_spinlock_statusis the SuperCore status.
Returns
the corresponding POSIX status

References CORE_SPINLOCK_STATUS_LAST.