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

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems/] [c/] [src/] [exec/] [itron/] [include/] [rtems/] [itron/] [object.h] - Blame information for rev 208

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 158 chris
/*
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 208 chris
 *  $Id: object.h,v 1.2 2001-09-27 11:59:12 chris Exp $
10 158 chris
 */
11
 
12
#ifndef __RTEMS_ITRON_OBJECT_h_
13
#define __RTEMS_ITRON_OBJECT_h_
14
 
15
#ifdef __cplusplus
16
extern "C" {
17
#endif
18
 
19
#include <rtems/score/object.h>
20
 
21
typedef Objects_Control ITRON_Objects_Control;
22
 
23
/*
24
 *  Maximum length of an ITRON object name
25
 *
26
 *  NOTE:  Since ITRON objects do not have names, then then length is 0.
27
 */
28
 
29
#define ITRON_MAXIMUM_NAME_LENGTH 0
30
 
31
/*
32
 *  _ITRON_Objects_Open
33
 *
34
 *  Make this ITRON object visible to the system.
35
 *
36
 *  NOTE:  This macro hides the fact that ITRON objects don't have names.
37
 */
38
 
39
#define _ITRON_Objects_Open( _the_information, _the_object ) \
40
    _Objects_Open( (_the_information), (_the_object), NULL )
41
 
42
/*
43
 *  _ITRON_Objects_Close
44
 *
45
 *  Make this ITRON object invisible from the system.  Usually used as
46
 *  the first step of deleting an object.
47
 */
48
 
49
#define _ITRON_Objects_Close( _the_information, _the_object ) \
50
    _Objects_Close( (_the_information), (_the_object) )
51
 
52
/*
53
 *  _ITRON_Objects_Allocate_by_index
54
 *
55
 *  Allocate the ITRON object specified by "_id".  The ITRON id is the
56
 *  index portion of the traditional RTEMS ID.  The Classic and POSIX
57
 *  APIs do not require that a specific object be allocated.
58
 */
59
 
60
#define _ITRON_Objects_Allocate_by_index( _the_information, _id, _sizeof ) \
61
    _Objects_Allocate_by_index( (_the_information), (_id), (_sizeof) )
62
 
63
/*
64
 *  _ITRON_Objects_Clarify_allocation_id_error
65
 *
66
 *  This function is invoked when an object allocation ID error
67
 *  occurs to determine the specific ITRON error code to return.
68
 */
69
 
70
#define _ITRON_Objects_Clarify_allocation_id_error( _the_information, _id ) \
71
  (((_id) < -4) ? E_OACV : /* attempt to access a "system object" */ \
72
  ((_id) <= 0) ? E_ID :    /* bogus index of 0 - -3 */ \
73
  ((_id) <= (_the_information)->maximum) ? E_OBJ : /* object is in use */ \
74
   E_ID)  /* simply a bad id */
75
 
76
/*
77
 *  _ITRON_Objects_Clarify_get_id_error
78
 *
79
 *  This function is invoked when an object get ID error
80
 *  occurs to determine the specific ITRON error code to return.
81
 */
82
 
83
#define _ITRON_Objects_Clarify_get_id_error( _the_information, _id ) \
84
  (((_id) < -4) ? E_OACV : /* attempt to access a "system object" */ \
85
  ((_id) <= 0) ? E_ID :    /* bogus index of 0 - -3 */ \
86
  ((_id) <= (_the_information)->maximum) ? E_NOEXS : /* does not exist */ \
87
   E_ID)  /* simply a bad id */
88
 
89
 
90
/*
91
 *  _ITRON_Objects_Free
92
 *
93
 *  Free this ITRON object to the pool of inactive objects.  This
94
 *  operation is the same as for the Classic and POSIX APIs.
95
 */
96
 
97
#define _ITRON_Objects_Free( _the_information, _the_object ) \
98
    _Objects_Free( (_the_information), (_the_object) )
99
 
100
 
101
/*
102
 *  _ITRON_Objects_Get
103
 *
104
 *  Obtain (get) the pointer to the control block for the object
105
 *  specified by "id".  The ITRON id passed in here is simply
106
 *  the "index" portion of the traditional RTEMS ID.  This
107
 *  requires that this operation be slightly different
108
 *  from the object get used by the Classic and POSIX APIs.
109
 */
110
 
111
#define _ITRON_Objects_Get( _the_information, _id, _the_object ) \
112
    _Objects_Get( (_the_information), (_id), (_the_object) )
113
 
114
#ifdef __cplusplus
115
}
116
#endif
117
 
118
#endif
119
/* end of include file */
120
 

powered by: WebSVN 2.1.0

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