Dual Ported Memory Manager.
More...
Dual Ported Memory Manager.
This encapsulates functionality related to the Classic API Dual Ported Memory Manager.
This include file contains all the constants and structures associated with the Dual Ported Memory Manager. This manager provides a mechanism for converting addresses between internal and external representations for multiple dual-ported memory areas.
Directives provided are:
- create a port
- get ID of a port
- delete a port
- convert external to internal address
- convert internal to external address
◆ rtems_port_create()
Creates a port into a dual-ported memory area.
This routine implements the rtems_port_create directive. The port will have the name name. The port maps onto an area of dual ported memory of length bytes which has internal_start and external_start as the internal and external starting addresses, respectively. It returns the id of the created port in ID.
- Parameters
-
[in] | name | is the user defined port name |
[in] | internal_start | is the internal start address of port |
[in] | external_start | is the external start address of port |
[in] | length | is the physical length in bytes |
[out] | id | is the address of port id to set |
- Return values
-
This | method returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error. If successful, the id will be filled in with the port id. |
◆ rtems_port_delete()
RTEMS Delete Port.
This routine implements the rtems_port_delete directive. It deletes the port associated with ID.
- Parameters
-
[in] | id | is the dual-ported memory area id |
- Return values
-
This | method returns RTEMS_SUCCESSFUL if there was not an error. Otherwise, a status code is returned indicating the source of the error. |
References _Dual_ported_memory_Get(), and _Objects_Allocator_lock().
◆ rtems_port_external_to_internal()
RTEMS Port External to Internal.
This routine implements the rtems_port_external_to_internal directive. It returns the internal port address which maps to the provided external port address for the specified port ID. If the given external address is an invalid dual-ported address, then the internal address is set to the given external address.
- Parameters
-
[in] | id | is the id of dp memory object |
[in] | external | is the external address |
[out] | internal | is the pointer of internal address to set |
- Return values
-
References _Dual_ported_memory_Get(), and RTEMS_INVALID_ADDRESS.
◆ rtems_port_ident()
RTEMS Port Name to Id.
This routine implements the rtems_port_ident directive. This directive returns the port ID associated with name. If more than one port is named name, then the port to which the ID belongs is arbitrary.
- Parameters
-
[in] | name | is the user defined port name |
[out] | id | is the pointer to port id |
- Return values
-
RTEMS_SUCCESSFUL | if successful or error code if unsuccessful |
◆ rtems_port_internal_to_external()
RTEMS Port Internal to External.
This routine implements the Port_internal_to_external directive. It returns the external port address which maps to the provided internal port address for the specified port ID. If the given internal address is an invalid dual-ported address, then the external address is set to the given internal address.
- Parameters
-
[in] | id | is the id of dual-ported memory object |
[in] | internal | is the internal address to set |
[in] | external | is the pointer to external address |
- Return values
-
RTEMS_SUCCESSFUL | and the external will be filled in with the external addresses |
References _Dual_ported_memory_Get(), and RTEMS_INVALID_ADDRESS.