RTEMS: cpukit/include/rtems/rtems/dpmemimpl.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
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/dpmemdata.h>
21#include <rtems/score/objectimpl.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
42 RTEMS_INLINE_ROUTINE Dual_ported_memory_Control
43 *_Dual_ported_memory_Allocate ( void )
44{
45 return (Dual_ported_memory_Control *)
46 _Objects_Allocate( &_Dual_ported_memory_Information );
47}
48
56 RTEMS_INLINE_ROUTINE void _Dual_ported_memory_Free (
57 Dual_ported_memory_Control *the_port
58)
59{
60 _Objects_Free( &_Dual_ported_memory_Information, &the_port->Object );
61}
62
63 RTEMS_INLINE_ROUTINE Dual_ported_memory_Control *_Dual_ported_memory_Get(
64 Objects_Id id,
65 ISR_lock_Context *lock_context
66)
67{
68 return (Dual_ported_memory_Control *)
69 _Objects_Get( id, lock_context, &_Dual_ported_memory_Information );
70}
71
74#ifdef __cplusplus
75}
76#endif
77
78#endif /* _RTEMS_RTEMS_DPMEM_INL */
79/* end of include file */
dpmemdata.h
Classic Dual Ported Memory Manager Data Structures.
_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.
Definition: dpmemimpl.h:43
_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.
Definition: dpmemimpl.h:56
_Dual_ported_memory_Information
Objects_Information _Dual_ported_memory_Information
The Classic Dual Ported Memory objects information.
RTEMS_INLINE_ROUTINE
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
_Objects_Free
RTEMS_INLINE_ROUTINE void _Objects_Free(Objects_Information *information, Objects_Control *the_object)
Frees an object.
Definition: objectimpl.h:930
_Objects_Allocate
Objects_Control * _Objects_Allocate(Objects_Information *information)
Allocates an object.
Definition: objectallocate.c:42
Objects_Id
uint32_t Objects_Id
Definition: object.h:80
_Objects_Get
Objects_Control * _Objects_Get(Objects_Id id, ISR_lock_Context *lock_context, const Objects_Information *information)
Maps the specified object identifier to the associated local object control block.
Definition: objectgetlocal.c:28
objectimpl.h
Inlined Routines in the Object Handler.
Dual_ported_memory_Control
Definition: dpmemdata.h:38
Dual_ported_memory_Control::Object
Objects_Control Object
Definition: dpmemdata.h:40
ISR_lock_Context
Local ISR lock context for acquire and release pairs.
Definition: isrlock.h:65