RTEMS CPU Kit with SuperCore  4.11.3
dpmemimpl.h
Go to the documentation of this file.
1 
9 /* COPYRIGHT (c) 1989-2008.
10  * On-Line Applications Research Corporation (OAR).
11  *
12  * The license and distribution terms for this file may be
13  * found in the file LICENSE in this distribution or at
14  * http://www.rtems.org/license/LICENSE.
15  */
16 
17 #ifndef _RTEMS_RTEMS_DPMEM_INL
18 #define _RTEMS_RTEMS_DPMEM_INL
19 
20 #include <rtems/rtems/dpmem.h>
21 #include <rtems/score/objectimpl.h>
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
41 #ifndef RTEMS_DPMEM_EXTERN
42 #define RTEMS_DPMEM_EXTERN extern
43 #endif
44 
50 
57 
67 {
69  _Objects_Allocate( &_Dual_ported_memory_Information );
70 }
71 
81 )
82 {
83  _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object );
84 }
85 
97  Objects_Id id,
98  Objects_Locations *location
99 )
100 {
101  return (Dual_ported_memory_Control *)
102  _Objects_Get( &_Dual_ported_memory_Information, id, location );
103 }
104 
107 #ifdef __cplusplus
108 }
109 #endif
110 
111 #endif /* _RTEMS_RTEMS_DPMEM_INL */
112 /* end of include file */
void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectfree.c:25
RTEMS_DPMEM_EXTERN Objects_Information _Dual_ported_memory_Information
Define the internal Dual Ported Memory information The following define the internal Dual Ported Memo...
Definition: dpmemimpl.h:49
The following structure defines the port control block.
Definition: dpmem.h:57
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:101
#define RTEMS_INLINE_ROUTINE
The following (in conjunction with compiler arguments) are used to choose between the use of static i...
Definition: basedefs.h:135
RTEMS_INLINE_ROUTINE Dual_ported_memory_Control * _Dual_ported_memory_Get(Objects_Id id, Objects_Locations *location)
Maps port IDs to port control blocks.
Definition: dpmemimpl.h:96
Objects_Control * _Objects_Get(Objects_Information *information, Objects_Id id, Objects_Locations *location)
Maps object ids to object control blocks.
Definition: objectget.c:23
#define RTEMS_DPMEM_EXTERN
This constant is defined to extern most of the time when using this header file.
Definition: dpmemimpl.h:42
void _Dual_ported_memory_Manager_initialization(void)
Dual Ported Memory Manager Initialization.
Definition: dpmem.c:29
The following defines the structure for the information used to manage each class of objects...
Definition: objectimpl.h:136
Objects_Locations
This enumerated type lists the locations which may be returned by _Objects_Get.
Definition: objectimpl.h:117
Objects_Control Object
This field is the object management portion of a Port instance.
Definition: dpmem.h:59
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.
Definition: dpmemimpl.h:66
Inlined Routines in the Object Handler.
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.
Definition: dpmemimpl.h:79
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122