source: rtems/cpukit/score/include/rtems/score/objectmp.h @ 11874561

4.104.114.84.95
Last change on this file since 11874561 was 11874561, checked in by Ralf Corsepius <ralf.corsepius@…>, on 11/21/04 at 07:17:38

Adjust doxygen @file.

  • Property mode set to 100644
File size: 3.6 KB
Line 
1/**
2 *  @file  rtems/score/objectmp.h
3 *
4 *  This include file contains all the constants and structures associated
5 *  with the manipulation of Global RTEMS Objects.
6 */
7
8/*
9 *  COPYRIGHT (c) 1989-2004.
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.com/license/LICENSE.
15 *
16 *  $Id$
17 */
18
19#ifndef __RTEMS_OBJECTS_MP_h
20#define __RTEMS_OBJECTS_MP_h
21
22/**
23 *  @defgroup ScoreObjectMP Object Handler Multiprocessing Support
24 *
25 *  This group contains functionality which XXX
26 */
27/**@{*/
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33/*
34 *  This defines the Global Object Control Block used to manage
35 *  objects resident on other nodes.
36 */
37typedef struct {
38  Objects_Control Object;
39  uint32_t        name;     /* XXX broken but works */
40  /* XXX If any API is MP with variable length names .. BOOM!!!! */
41}   Objects_MP_Control;
42
43/** @brief  Objects MP Handler initialization
44 *
45 *  This routine intializes the inactive global object chain
46 *  based on the maximum number of global objects configured.
47 */
48void _Objects_MP_Handler_initialization (
49  uint32_t   node,
50  uint32_t   maximum_nodes,
51  uint32_t   maximum_global_objects
52);
53
54/** @brief Objects MP Open
55 *
56 *  This routine place the specified global object in the
57 *  specified information table.
58 */
59
60void _Objects_MP_Open (
61  Objects_Information *information,
62  Objects_MP_Control  *the_global_object,
63  uint32_t             the_name,      /* XXX -- wrong for variable */
64  Objects_Id           the_id
65);
66
67/** @brief  Objects MP Allocate and open
68 *
69 *  This routine allocates a global object control block
70 *  and places it in the specified information table.  If the
71 *  allocation fails, then is_fatal_error determines the
72 *  error processing actions taken.
73 */
74boolean _Objects_MP_Allocate_and_open (
75  Objects_Information *information,
76  uint32_t             the_name,     /* XXX -- wrong for variable length */
77  Objects_Id           the_id,
78  boolean              is_fatal_error
79);
80
81/** @brief  Objects MP Close
82 *
83 *  This routine removes a global object from the specified
84 *  information table and deallocates the global object control block.
85 */
86void _Objects_MP_Close (
87  Objects_Information *information,
88  Objects_Id           the_id
89);
90
91/** @brief  Objects MP Global name search
92 *
93 *  This routine looks for the object with the_name in the global
94 *  object tables indicated by information.  It returns the ID of the
95 *  object with that name if one is found.
96 */
97Objects_Name_or_id_lookup_errors _Objects_MP_Global_name_search (
98  Objects_Information *information,
99  Objects_Name         the_name,
100  uint32_t             nodes_to_search,
101  Objects_Id          *the_id
102);
103
104/** @brief  Objects MP Is remote
105 *
106 *  This function searches the Global Object Table managed
107 *  by information for the object indicated by ID.  If the object
108 *  is found, then location is set to objects_remote, otherwise
109 *  location is set to objects_error.  In both cases, the_object
110 *  is undefined.
111 */
112void _Objects_MP_Is_remote (
113  Objects_Information  *information,
114  Objects_Id            the_id,
115  Objects_Locations    *location,
116  Objects_Control     **the_object
117);
118
119/*
120 *  The following chain header is used to manage the set of
121 *  inactive global object control blocks.
122 */
123SCORE_EXTERN uint32_t       _Objects_MP_Maximum_global_objects;
124SCORE_EXTERN Chain_Control  _Objects_MP_Inactive_global_objects;
125
126#ifndef __RTEMS_APPLICATION__
127#include <rtems/score/objectmp.inl>
128#endif
129
130#ifdef __cplusplus
131}
132#endif
133
134/**@}*/
135
136#endif
137/* end of include file */
Note: See TracBrowser for help on using the repository browser.