OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [exec/] [itron/] [inline/] [rtems/] [itron/] [port.inl] - Blame information for rev 173

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
/*
2
 *  COPYRIGHT (c) 1989-1999.
3
 *  On-Line Applications Research Corporation (OAR).
4
 *
5
 *  The license and distribution terms for this file may be
6
 *  found in the file LICENSE in this distribution or at
7
 *  http://www.OARcorp.com/rtems/license.html.
8
 *
9
 *  $Id: port.inl,v 1.2 2001-09-27 11:59:13 chris Exp $
10
 */
11
 
12
#ifndef __ITRON_PORT_inl_
13
#define __ITRON_PORT_inl_
14
 
15
#ifdef __cplusplus
16
extern "C" {
17
#endif
18
 
19
/*
20
 *  _ITRON_Port_Allocate
21
 *
22
 *  DESCRIPTION:
23
 *
24
 *  This routine allocates the port associated with the specified
25
 *  port ID from the pool of inactive ports.
26
 *
27
 *  Input parameters:
28
 *    porid   - id of port to allocate
29
 *    status  - pointer to status variable
30
 *
31
 *  Output parameters:
32
 *    returns - pointer to the port control block
33
 *    *status - status
34
 */
35
 
36
RTEMS_INLINE_ROUTINE ITRON_Port_Control *_ITRON_Port_Allocate(
37
  ID   porid
38
)
39
{
40
  return (ITRON_Port_Control *)_ITRON_Objects_Allocate_by_index(
41
    &_ITRON_Port_Information,
42
    porid,
43
    sizeof(ITRON_Port_Control)
44
  );
45
}
46
 
47
/*
48
 *  _ITRON_Port_Clarify_allocation_id_error
49
 *
50
 *  This function is invoked when an object allocation ID error
51
 *  occurs to determine the specific ITRON error code to return.
52
 */
53
 
54
#define _ITRON_Port_Clarify_allocation_id_error( _id ) \
55
  _ITRON_Objects_Clarify_allocation_id_error( \
56
      &_ITRON_Port_Information, (_id) )
57
 
58
/*
59
 *  _ITRON_Port_Clarify_get_id_error
60
 *
61
 *  This function is invoked when an object get ID error
62
 *  occurs to determine the specific ITRON error code to return.
63
 */
64
 
65
#define _ITRON_Port_Clarify_get_id_error( _id ) \
66
 _ITRON_Objects_Clarify_get_id_error( &_ITRON_Port_Information, (_id) )
67
 
68
/*
69
 *  _ITRON_Port_Free
70
 *
71
 *  DESCRIPTION:
72
 *
73
 *  This routine frees a port control block to the
74
 *  inactive chain of free port control blocks.
75
 *
76
 *  Input parameters:
77
 *    the_port - pointer to port control block
78
 *
79
 *  Output parameters: NONE
80
 */
81
 
82
RTEMS_INLINE_ROUTINE void _ITRON_Port_Free (
83
  ITRON_Port_Control *the_port
84
)
85
{
86
  _ITRON_Objects_Free( &_ITRON_Port_Information, &the_port->Object );
87
}
88
 
89
/*PAGE
90
 *
91
 *  _ITRON_Port_Get
92
 *
93
 *  DESCRIPTION:
94
 *
95
 *  This function maps port IDs to port control blocks.
96
 *  If ID corresponds to a local port, then it returns
97
 *  the_port control pointer which maps to ID and location
98
 *  is set to OBJECTS_LOCAL.  if the port ID is global and
99
 *  resides on a remote node, then location is set to OBJECTS_REMOTE,
100
 *  and the_port is undefined.  Otherwise, location is set
101
 *  to OBJECTS_ERROR and the_port is undefined.
102
 *
103
 *  Input parameters:
104
 *    id            - ITRON port ID.
105
 *    the_location  - pointer to a location variable
106
 *
107
 *  Output parameters:
108
 *    *the_location  - location of the object
109
 */
110
 
111
RTEMS_INLINE_ROUTINE ITRON_Port_Control *_ITRON_Port_Get (
112
  ID                 id,
113
  Objects_Locations *location
114
)
115
{
116
  return (ITRON_Port_Control *)
117
    _ITRON_Objects_Get( &_ITRON_Port_Information, id, location );
118
}
119
 
120
/*PAGE
121
 *
122
 *  _ITRON_Port_Is_null
123
 *
124
 *  This function returns TRUE if the_port is NULL and FALSE otherwise.
125
 *
126
 *  Input parameters:
127
 *    the_port - pointer to port control block
128
 *
129
 *  Output parameters:
130
 *    TRUE  - if the_port is NULL
131
 *    FALSE - otherwise
132
 */
133
 
134
RTEMS_INLINE_ROUTINE boolean _ITRON_Port_Is_null (
135
  ITRON_Port_Control *the_port
136
)
137
{
138
  return ( the_port == NULL );
139
}
140
 
141
/*
142
 *  XXX insert inline routines here
143
 */
144
 
145
#ifdef __cplusplus
146
}
147
#endif
148
 
149
#endif
150
/* end of include file */
151
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.