source: rtems/c/src/exec/itron/include/itronsys/sysmgmt.h @ 352c9b2

4.104.114.84.95
Last change on this file since 352c9b2 was 352c9b2, checked in by Joel Sherrill <joel.sherrill@…>, on 11/09/99 at 22:07:23

This patch adds the basic framework for the ITRON 3.0 API implementation
for RTEMS.

  • Property mode set to 100644
File size: 8.7 KB
Line 
1/*
2 *  The license and distribution terms for this file may be
3 *  found in the file LICENSE in this distribution or at
4 *  http://www.OARcorp.com/rtems/license.html.
5 *
6 *  $Id$
7 */
8
9#ifndef __ITRON_SYSTEM_MANAGEMENT_h_
10#define __ITRON_SYSTEM_MANAGEMENT_h_
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16/*
17 *  Get Version (get_ver) Structure
18 */
19
20typedef struct t_ver {
21  UH   maker;     /* vendor */
22  UH   id;        /* format number */
23  UH   spver;     /* specification version */
24  UH   prver;     /* product version */
25  UH   prno[4];   /* product control information */
26  UH   cpu;       /* CPU information */
27  UH   var;       /* variation descriptor */
28} T_VER;
29
30/*
31 *  Specific MAKER codes established as of March, 1993 are as follows.
32 *  Due to restrictions on the assignment of CPU codes described below, it is
33 *  necessary to use maker codes in the range 0x000 through 0x00ff for vendors
34 *  developing CPUs.
35 */
36
37/*
38 *  CPU defines XXX need to name the constants
39 */
40
41#if 0
42#define 0x000  /* No version (test systems, etc.) */
43#define 0x001  /* University of Tokyo */
44#define 0x009  /* FUJITSU LIMITED */
45#define 0x00a  /* Hitachi, Ltd. */
46#define 0x00b  /* Matsushita Electric Industrial Co., Ltd. */
47#define 0x00c  /* Mitsubishi Electric Corporation */
48#define 0x00d  /* NEC Corporation */
49#define 0x00e  /* Oki Electric Industry Co., Ltd. */
50#define 0x00f  /* TOSHIBA CORPORATION */
51#endif
52
53/*
54 * The above have been assigned in alphabetical order.
55 */
56
57#if 0
58#define 0x010  /* ALPS ELECTRIC CO., LTD. */
59#define 0x011  /* WACOM Co., Ltd. */
60#define 0x012  /* Personal Media Corporation */
61#define 0x101  /* OMRON CORPORATION */
62#define 0x102  /* SEIKOSHA CO., LTD. */
63#define 0x103  /* SYSTEM ALGO CO., LTD. */
64#define 0x104  /* Tokyo Computer Service Co., Ltd. */
65#define 0x105  /* YAMAHA CORPORATION */
66#define 0x106  /* MORSON JAPAN */
67#define 0x107  /* TOSHIBA INFORMATION SYSTEMS (JAPAN) CORP. */
68#define 0x108  /* Miyazaki System Planning Office */
69#define 0x109  /* Three Ace Computer Corporation */
70#endif
71
72/*
73 *  CPU Codes
74 *
75 *  Figure 47 shows the format of cpu code.  Some processors use the format
76 *  given in Figure 47(1).  The format given in Figure 47(2) is used for all
77 *  other proprietary processors.
78 *
79 *  The code assignment of the CPU1 region in the format given in Figure 47(1)
80 *  is common to ITRON and BTRON specifications.  The same number is used in
81 *  the CPU type of the standard object format of BTRON specification
82 *  operating systems implemented on a TRON-specification chip.
83 *
84 *  When using the format given in Figure 47(2) the code used for MAKER1 is
85 *  assigned by using the lower 8 bits of MAKER described in the previous
86 *  subsection.  The code assignment of CPU2 is left up to each maker.
87 * 
88 * 
89 * 
90 *        +---------------+---------------+---------------+---------------+
91 *    (1) | 0   0   0   0   0   0   0   0 |              CPU1             |
92 *        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
93 *        +---------------+---------------+---------------+---------------+
94 *    (2) |             MAKER1            |              CPU2             |
95 *        +---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
96 * 
97 *                   Figure 47 Format of cpu Returned by get_ver
98 * 
99 * 
100 *  Specific CPU codes established as of March, 1993 are as follows.
101 */
102
103#if 0
104/*
105 * XXX CONVERT THESE to #defines
106 */
107
108
109/*
110 *  Contents of the CPU1 field
111 */
112
113#define (0x0)   CPU unspecified, no CPU information given
114#define (0x1)   TRONCHIP32 shared
115#define (0x2)   reserved
116#define (0x3)   reserved
117#define (0x4)   reserved
118#define (0x5)   reserved (<<L1R>> TRON-specification chip)
119#define (0x6)   reserved (<<L1>> TRON-specification chip)
120#define (0x7)   reserved (TRON-specification chip supporting the
121                             LSID function)
122/* CPU vendors are unspecified for codes B'00000000 through B'00000111. */
123
124#define (0x8)  reserved
125#define (0x9)  GMICRO/100
126#define (0xa)  GMICRO/200
127#define (0xb)  GMICRO/300
128#define (0xc)  reserved
129#define (0xd)  TX1
130#define (0xe)  TX2
131#define (0xf)  reserved
132
133#define (0x10)  reserved
134#define (0x11)  reserved
135#define (0x12)  reserved
136#define (0x13)  O32
137#define (0x14)  reserved
138#define (0x15)  MN10400
139#define (0x16)  reserved
140#define (0x17)  reserved
141
142#define (0x18)  GMICRO/400
143#define (0x19)  GMICRO/500
144#define (0x1a)  reserved
145#define (0x1b-0x3f)
146                            reserved
147          * For GMICRO extended, TX series extended, and TRONCHIP64 chips.
148
149#define (0x40)   Motorola 68000
150#define (0x41)   Motorola 68010
151#define (0x42)   Motorola 68020
152#define (0x43)   Motorola 68030
153#define (0x44)   Motorola 68040
154#define -(0x40-0x4f)
155#define                       Motorola 68000 family
156#define (0x50)   National Semiconductor NS32032
157#define (0x50-0x5f)
158                              National Semiconductor NS32000 family
159#define (0x60)   Intel 8086, 8088
160#define (0x61)   Intel 80186
161#define (0x62)   Intel 80286
162#define (0x63)   Intel 80386
163#define (0x64)   Intel 80486
164#define (0x60-0x6f)
165                              Intel iAPX86 family
166
167#define (0x70-0x7f)
168                              NEC V Series
169
170#define (0x80-0xff)
171                              reserved
172#endif
173
174/*
175 *  Assigning Version Numbers
176 *
177 *  The version numbers of ITRON and uITRON specifications take the following
178 *  form.
179 * 
180 *          Ver X.YY.ZZ[.WW]
181 * 
182 *  where "X" represents major version number of the ITRON specification to
183 *  distinguish ITRON1, ITRON2 and uITRON 3.0 specifications.  Specific
184 *  assignment is as follows.
185 * 
186 *          "X" = 1  ITRON1 specification
187 *              = 2  ITRON2 or uITRON 2.0 specification
188 *              = 3  uITRON 3.0 specification
189 * 
190 *  "YY" is a number used to distinguish versions according to changes and
191 *  additions made to the specification.  After the specification is published,
192 *  this number is incremented in order "YY" = 00, 01, 02... according to
193 *  version upgrades.  The first digit of "YY" is 'A', 'B' or 'C' for draft
194 *  standard versions and test versions within the TRON Association before the
195 *  specification have been published.
196 * 
197 *  The "X.YY" part of the specification version numbers is returned by spver
198 *  to get_ver system call.  The corresponding hexadecimal value is used when
199 *  "YY" includes 'A', 'B' or 'C'.
200 * 
201 *  "ZZ" represents a number used to distinguish versions related to the written
202 *  style of a specification.  This number is incremented in order
203 *  "ZZ" = 00, 01, 02... when there have been changes in specification
204 *  configuration, reordering of chapters or corrections of misprints. 
205 *  When a further distinction of the written style of specifications is
206 *  desired, ".WW" may be added optionally after "ZZ".  WW will be assumed
207 *  to be zero if ".WW" is omitted.
208 */
209
210/*
211 *  Reference System (ref_sys) Structure
212 */
213
214typedef struct t_rsys {
215  INT   sysstat;   /* system state */
216  /* additional information may be included depending on the implementation */
217} T_RSYS;
218
219/*
220 *  sysstat
221 */
222
223#define TSS_TSK    0   /* normal state in which dispatching is enabled during
224                          task portion execution */
225#define TSS_DDSP   1   /* state after dis_dsp has been executed during task
226                          portion execution (dispatch disabled) */
227#define TSS_LOC    3   /* state after loc_cpu has been executed during task
228                          portion execution (interrupt and dispatch disabled)
229                          */
230#define TSS_INDP   4   /* state during execution of task-independent portions
231                          (interrupt and timer handlers) */
232
233/*
234 *  Reference Configuration (ref_cfg) Structure
235 */
236
237typedef struct t_rcfg {
238  /* details concerning members are implementation dependent */
239} T_RCFG;
240
241/*
242 *  Define Service (def_svc) Structure
243 */
244
245typedef struct t_dsvc {
246  ATR   svcatr;   /* extended SVC handler attributes */
247  FP    svchdr;   /* extended SVC handler address */
248  /* additional information may be included depending on the implementation */
249} T_DSVC;
250
251/*
252 *  Define Exception (def_exc) Structure
253 */
254
255typedef struct t_dexc {
256  ATR   excatr;   /* exception handler attributes */
257  FP    exchdr;   /* exception handler address */
258  /* additional information may be included depending on the implementation */
259} T_DEXC;
260
261/*
262 *  System Management Functions
263 */
264
265/*
266 *  get_ver - Get Version Information
267 */
268
269ER get_ver(
270  T_VER *pk_ver
271);
272
273/*
274 *  ref_sys - Reference Semaphore Status
275 */
276
277ER ref_sys(
278  T_RSYS *pk_rsys
279);
280
281/*
282 *  ref_cfg - Reference Configuration Information
283 */
284
285ER ref_cfg(
286  T_RCFG *pk_rcfg
287);
288
289/*
290 *  def_svc - Define Extended SVC Handler
291 */
292
293ER def_svc(
294  FN s_fncd,
295  T_DSVC *pk_dsvc
296);
297
298/*
299 *  def_exc - Define Exception Handler
300 */
301
302ER def_exc(
303  UINT exckind,
304  T_DEXC *pk_dexc
305);
306
307
308
309
310#ifdef __cplusplus
311}
312#endif
313
314#endif
315/* end of include file */
316
Note: See TracBrowser for help on using the repository browser.