source: rtems/cpukit/rtems/include/rtems/rtems/dpmem.h @ 4b487363

4.104.114.84.95
Last change on this file since 4b487363 was 4b487363, checked in by Ralf Corsepius <ralf.corsepius@…>, on 11/02/04 at 09:39:02

2004-10-02 Ralf Corsepius <ralf_corsepiu@…>

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