source: rtems/cpukit/rtems/include/rtems/rtems/dpmem.h @ 067a96a

4.104.114.95
Last change on this file since 067a96a was 067a96a, checked in by Joel Sherrill <joel.sherrill@…>, on 04/18/08 at 15:02:20

2008-04-18 Joel Sherrill <joel.sherrill@…>

  • rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/barrier.h, rtems/include/rtems/rtems/barriermp.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/object.h, rtems/include/rtems/rtems/options.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h, rtems/inline/rtems/rtems/asr.inl, rtems/inline/rtems/rtems/attr.inl, rtems/inline/rtems/rtems/barrier.inl, rtems/inline/rtems/rtems/dpmem.inl, rtems/inline/rtems/rtems/event.inl, rtems/inline/rtems/rtems/eventset.inl, rtems/inline/rtems/rtems/message.inl, rtems/inline/rtems/rtems/modes.inl, rtems/inline/rtems/rtems/options.inl, rtems/inline/rtems/rtems/part.inl, rtems/inline/rtems/rtems/ratemon.inl, rtems/inline/rtems/rtems/region.inl, rtems/inline/rtems/rtems/sem.inl, rtems/inline/rtems/rtems/status.inl, rtems/inline/rtems/rtems/support.inl, rtems/inline/rtems/rtems/tasks.inl, rtems/inline/rtems/rtems/timer.inl: Initial conversion of Classic API header files to Doxygen.
  • rtems/Doxyfile: New file.
  • Property mode set to 100644
File size: 3.9 KB
Line 
1/**
2 * @file rtems/rtems/dpmem.h
3 *
4 *  This include file contains all the constants and structures associated
5 *  with the Dual Ported Memory Manager. This manager provides a mechanism
6 *  for converting addresses between internal and external representations
7 *  for multiple dual-ported memory areas.
8 *
9 *  Directives provided are:
10 *
11 *     - create a port
12 *     - get ID of a port
13 *     - delete a port
14 *     - convert external to internal address
15 *     - convert internal to external address
16 *
17 */
18
19/*  COPYRIGHT (c) 1989-2007.
20 *  On-Line Applications Research Corporation (OAR).
21 *
22 *  The license and distribution terms for this file may be
23 *  found in the file LICENSE in this distribution or at
24 *  http://www.rtems.com/license/LICENSE.
25 *
26 *  $Id$
27 */
28
29#ifndef _RTEMS_RTEMS_DPMEM_H
30#define _RTEMS_RTEMS_DPMEM_H
31
32#ifndef RTEMS_DPMEM_EXTERN
33#define RTEMS_DPMEM_EXTERN extern
34#endif
35
36#ifdef __cplusplus
37extern "C" {
38#endif
39
40#include <rtems/score/object.h>
41#include <rtems/rtems/support.h>
42#include <rtems/rtems/status.h>
43
44/**
45 *  @defgroup ClassicDPMEM Classic API Dual Ported Memory
46 *
47 *  This encapsulates functionality which XXX
48 */
49/**@{*/
50
51/**
52 *  The following structure defines the port control block.  Each port
53 *  has a control block associated with it.  This control block contains
54 *  all information required to support the port related operations.
55 */
56typedef struct {
57  Objects_Control  Object;
58  void            *internal_base; /* base internal address */
59  void            *external_base; /* base external address */
60  uint32_t         length;        /* length of dual-ported area */
61}   Dual_ported_memory_Control;
62
63/**
64 *  The following define the internal Dual Ported Memory information.
65 */
66RTEMS_DPMEM_EXTERN Objects_Information  _Dual_ported_memory_Information;
67
68/**
69 *  @brief _Dual_ported_memory_Manager_initialization
70 *
71 *  This routine performs the initialization necessary for this manager.
72 */
73void _Dual_ported_memory_Manager_initialization(
74  uint32_t   maximum_ports
75);
76
77/**
78 *  @brief rtems_port_create
79 *
80 *  This routine implements the rtems_port_create directive.  The port
81 *  will have the name name.  The port maps onto an area of dual ported
82 *  memory of length bytes which has internal_start and external_start
83 *  as the internal and external starting addresses, respectively.
84 *  It returns the id of the created port in ID.
85 */
86rtems_status_code rtems_port_create(
87  rtems_name    name,
88  void         *internal_start,
89  void         *external_start,
90  uint32_t      length,
91  Objects_Id   *id
92);
93
94/**
95 *  @brief rtems_port_ident
96 *
97 *  This routine implements the rtems_port_ident directive.  This directive
98 *  returns the port ID associated with name.  If more than one port is
99 *  named name, then the port to which the ID belongs is arbitrary.
100 */
101rtems_status_code rtems_port_ident(
102  rtems_name    name,
103  Objects_Id   *id
104);
105
106/**
107 *  @brief rtems_port_delete
108 *
109 *  This routine implements the rtems_port_delete directive.  It deletes
110 *  the port associated with ID.
111 */
112rtems_status_code rtems_port_delete(
113  Objects_Id id
114);
115
116/**
117 *  @brief rtems_port_external_to_internal
118 *
119 *  This routine implements the rtems_port_external_to_internal directive.
120 *  It returns the internal port address which maps to the provided
121 *  external port address for the specified port ID.
122 */
123rtems_status_code rtems_port_external_to_internal(
124  Objects_Id   id,
125  void        *external,
126  void       **internal
127);
128
129/**
130 *  @brief rtems_port_internal_to_external
131 *
132 *  This routine implements the Port_internal_to_external directive.
133 *  It returns the external port address which maps to the provided
134 *  internal port address for the specified port ID.
135 */
136rtems_status_code rtems_port_internal_to_external(
137  Objects_Id   id,
138  void        *internal,
139  void       **external
140);
141
142#ifndef __RTEMS_APPLICATION__
143#include <rtems/rtems/dpmem.inl>
144#endif
145
146#ifdef __cplusplus
147}
148#endif
149
150/**@}*/
151
152#endif
153/* end of include file */
Note: See TracBrowser for help on using the repository browser.