RTEMS CPU Kit with SuperCore  4.11.3
Files | Macros | Functions | Variables
Dual Ported Memory Manager Implementation
Collaboration diagram for Dual Ported Memory Manager Implementation:

Files

file  dpmemimpl.h
 Dual Ported Memory Manager Implementation.
 

Macros

#define RTEMS_DPMEM_EXTERN   extern
 This constant is defined to extern most of the time when using this header file. More...
 

Functions

void _Dual_ported_memory_Manager_initialization (void)
 Dual Ported Memory Manager Initialization. More...
 
RTEMS_INLINE_ROUTINE Dual_ported_memory_Control_Dual_ported_memory_Allocate (void)
 Allocates a port control block from the inactive chain of free port control blocks. More...
 
RTEMS_INLINE_ROUTINE void _Dual_ported_memory_Free (Dual_ported_memory_Control *the_port)
 Frees a port control block to the inactive chain of free port control blocks. More...
 
RTEMS_INLINE_ROUTINE Dual_ported_memory_Control_Dual_ported_memory_Get (Objects_Id id, Objects_Locations *location)
 Maps port IDs to port control blocks. More...
 

Variables

RTEMS_DPMEM_EXTERN Objects_Information _Dual_ported_memory_Information
 Define the internal Dual Ported Memory information The following define the internal Dual Ported Memory information.
 

Detailed Description

Macro Definition Documentation

◆ RTEMS_DPMEM_EXTERN

#define RTEMS_DPMEM_EXTERN   extern

This constant is defined to extern most of the time when using this header file.

However by defining it to nothing, the data declared in this header file can be instantiated. This is done in a single per manager file.

Function Documentation

◆ _Dual_ported_memory_Allocate()

RTEMS_INLINE_ROUTINE Dual_ported_memory_Control* _Dual_ported_memory_Allocate ( void  )

Allocates a port control block from the inactive chain of free port control blocks.

This routine allocates a port control block from the inactive chain of free port control blocks.

References _Objects_Allocate().

◆ _Dual_ported_memory_Free()

RTEMS_INLINE_ROUTINE void _Dual_ported_memory_Free ( Dual_ported_memory_Control the_port)

Frees a port control block to the inactive chain of free port control blocks.

This routine frees a port control block to the inactive chain of free port control blocks.

References _Objects_Free(), and Dual_ported_memory_Control::Object.

◆ _Dual_ported_memory_Get()

RTEMS_INLINE_ROUTINE Dual_ported_memory_Control* _Dual_ported_memory_Get ( Objects_Id  id,
Objects_Locations location 
)

Maps port IDs to port control blocks.

This function maps port IDs to port control blocks. If ID corresponds to a local port, then it returns the_port control pointer which maps to ID and location is set to OBJECTS_LOCAL. Global ports are not supported, thus if ID does not map to a local port, location is set to OBJECTS_ERROR and the_port is undefined.

References _Objects_Get().

Referenced by rtems_port_delete(), rtems_port_external_to_internal(), and rtems_port_internal_to_external().

◆ _Dual_ported_memory_Manager_initialization()

void _Dual_ported_memory_Manager_initialization ( void  )

Dual Ported Memory Manager Initialization.

This routine performs the initialization necessary for this manager.

References _Dual_ported_memory_Information, and _Objects_Initialize_information().