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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [packages/] [compat/] [uitron/] [v2_0/] [include/] [uit_type.h] - Blame information for rev 174

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 27 unneback
#ifndef CYGONCE_COMPAT_UITRON_UIT_TYPE_H
2
#define CYGONCE_COMPAT_UITRON_UIT_TYPE_H
3
//===========================================================================
4
//
5
//      uit_type.h
6
//
7
//      uITRON specific data types as required by the API
8
//
9
//===========================================================================
10
//####ECOSGPLCOPYRIGHTBEGIN####
11
// -------------------------------------------
12
// This file is part of eCos, the Embedded Configurable Operating System.
13
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
14
//
15
// eCos is free software; you can redistribute it and/or modify it under
16
// the terms of the GNU General Public License as published by the Free
17
// Software Foundation; either version 2 or (at your option) any later version.
18
//
19
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
20
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
21
// FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
22
// for more details.
23
//
24
// You should have received a copy of the GNU General Public License along
25
// with eCos; if not, write to the Free Software Foundation, Inc.,
26
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
27
//
28
// As a special exception, if other files instantiate templates or use macros
29
// or inline functions from this file, or you compile this file and link it
30
// with other works to produce a work based on this file, this file does not
31
// by itself cause the resulting work to be covered by the GNU General Public
32
// License. However the source code for this file must still be made available
33
// in accordance with section (3) of the GNU General Public License.
34
//
35
// This exception does not invalidate any other reasons why a work based on
36
// this file might be covered by the GNU General Public License.
37
//
38
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
39
// at http://sources.redhat.com/ecos/ecos-license/
40
// -------------------------------------------
41
//####ECOSGPLCOPYRIGHTEND####
42
//===========================================================================
43
//#####DESCRIPTIONBEGIN####
44
//
45
// Author(s):   hmt
46
// Contributors:        hmt
47
// Date:        1998-03-13
48
// Purpose:     uITRON specific data types as required by the API
49
// Description: 
50
//
51
//####DESCRIPTIONEND####
52
//
53
//===========================================================================
54
 
55
#include <pkgconf/uitron.h>             // uITRON setup CYGNUM_UITRON_SEMAS
56
                                        // CYGPKG_UITRON et al
57
 
58
#ifdef CYGPKG_UITRON
59
 
60
// ------------------------------------------------------------------------
61
// uITRON types
62
//
63
 
64
// from this section of the uITRON 3.02 manual:
65
// ***********************************************************************
66
// ***    6.4 Data Types                                               ***
67
// ***********************************************************************
68
//
69
// ***  General-Purpose Data Types ***************************************
70
 
71
typedef cyg_int8    B;          // signed 8-bit integer
72
typedef cyg_int16   H;          // signed 16-bit integer
73
typedef cyg_int32   W;          // signed 32-bit integer
74
typedef cyg_uint8   UB;         // unsigned 8-bit integer
75
typedef cyg_uint16  UH;         // unsigned 16-bit integer
76
typedef cyg_uint32  UW;         // unsigned 32-bit integer
77
                                // 
78
typedef cyg_uint32  VW;         // unpredictable data type (32-bit size)
79
typedef cyg_uint16  VH;         // unpredictable data type (16-bit size)
80
typedef cyg_uint8   VB;         // unpredictable data type (8-bit size)
81
 
82
typedef void *      VP;         // pointer to an unpredictable data type
83
 
84
typedef CYG_ADDRWORD FP;        // program start address
85
 
86
// * The difference between VB, VH and VW and B, H and W is that only the
87
//   number of bits is known for the former, not the data type of the
88
//   contents.  The latter clearly represent integers.
89
//
90
// ***  Data Types Dependent on ITRON Specification ***
91
//
92
// In order to clarify the meanings of certain parameters, the following
93
// names are used for data types which appear frequently and/or have
94
// special meanings.
95
 
96
typedef cyg_int32  INT; // Signed integer (bit width of processor)
97
typedef cyg_uint32 UINT;   // Unsigned integer (bit width of processor)
98
typedef cyg_int32  BOOL;   // Boolean value.  TRUE (1) or FALSE (0).
99
typedef cyg_uint16 FN;     // Function code.  Signed integer.  Maximum 2 bytes.
100
typedef INT        ID;     // Object ID number (???id)
101
typedef INT        BOOL_ID;// Boolean value or ID number
102
typedef INT        HNO;    // Handler number
103
typedef INT        RNO;    // Rendezvous number
104
typedef INT        NODE;   // Node Number.  Usually a signed integer.
105
typedef UINT       ATR;    // Object or handler attribute.  An unsigned integer.
106
typedef INT        ER;     // Error code.  A signed integer.
107
typedef INT        PRI;    // Task priority.  A signed integer.
108
typedef UB         T_MSG;  // Message packet data structure used for mailboxes
109
typedef INT        TMO;    // Timeout value.  A signed integer.
110
                           // TMO_POL = 0 indicates polling,
111
                           // while TMO_FEVR = -1 indicates wait forever.
112
 
113
typedef cyg_uint64 CYGTM;
114
typedef CYGTM      SYSTIME;// Data types used for specifying times.
115
typedef CYGTM      CYCTIME;// Often split into upper and lower sections.
116
typedef CYGTM      ALMTIME;// For details, see the chapter giving system
117
typedef CYGTM      DLYTIME;// call descriptions;.
118
 
119
// ***********************************************************************
120
// ***    6.7 Error Codes                                              ***
121
// ***********************************************************************
122
 
123
enum {
124
//------------------------------------------------------
125
//Mnemonic Value      Description
126
//------------------------------------------------------
127
E_OK     = 0,      // Normal completion
128
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
129
E_SYS    = (-5),   // System error
130
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
131
E_NOMEM  = (-10),  // Insufficient memory
132
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
133
E_NOSPT  = (-17),  // Feature not supported
134
E_INOSPT = (-18),  // Feature not supported by ITRON/FILE specification
135
E_RSFN   = (-20),  // Reserved function code number
136
E_RSATR  = (-24),  // Reserved attribute
137
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
138
E_PAR    = (-33),  // Parameter error
139
E_ID     = (-35),  // Invalid ID number
140
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
141
E_NOEXS  = (-52),  // Object does not exist
142
E_OBJ    = (-63),  // Invalid object state
143
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
144
E_MACV   = (-65),  // Memory access disabled or memory access violation
145
E_OACV   = (-66),  // Object access violation
146
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
147
E_CTX    = (-69),  // Context error
148
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
149
E_QOVR   = (-73),  // Queuing or nesting overflow
150
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
151
E_DLT    = (-81),  // Object being waited for was deleted
152
// - - - - - - - - // - - - - - - - - - - - - - - - - - -
153
E_TMOUT  = (-85),  // Polling failure or timeout exceeded
154
E_RLWAI  = (-86),  // WAIT state was forcibly released
155
// - - - - - - - - // - - - - - - - - - - - - - - - - - - -
156
#if 0 // CONNECTION FUNCTIONS ARE NOT SUPPORTED
157
EN_NOND  = (-113), // Target node does not exist or cannot be accessed
158
EN_OBJNO = (-114), // Specifies an object number which could not be
159
                   // accessed on the target node
160
EN_PROTO = (-115), // Protocol not supported on target node
161
EN_RSFN  = (-116), // System call or function not supported on target node
162
EN_COMM  = (-117), // No response from target node
163
EN_RLWAI = (-118), // Connection function response wait state was forcibly
164
                   // released
165
EN_PAR   = (-119), // A value outside the range supported by the target
166
                   // node and/or transmission packet format was specified
167
                   // as a parameter
168
EN_RPAR  = (-120), // A value outside the range supported by the issuing
169
                   // node and/or transmission packet format was returned
170
                   // as a return parameter
171
EN_CTXID = (-121), // An object on another node was specified to a system
172
                   // call issued from a task in dispatch disabled state
173
                   // or from a task-independent portion
174
EN_EXEC  = (-122), // System call could not be executed due to
175
                   // insufficient resources on the target node
176
EN_NOSPT = (-123), // Connection function not supported
177
#endif // 0 CONNECTION FUNCTIONS ARE NOT SUPPORTED
178
// - - - - - - - - // - - - - - - - - - - - - - - - - - - -
179
};
180
 
181
 
182
// *******************************************************************
183
// ***    6.6 Common Constants and Data Structure Packet Formats   ***
184
// *******************************************************************
185
 
186
/* --- overall ----------------------- */
187
 
188
/* invalid address or pointer value */
189
#define NADR      ((void *)(-1)) 
190
 
191
enum {
192
        TRUE  =   1,    /* true */
193
        FALSE =   0,    /* false */
194
};
195
 
196
/*    TMO tmout:   */
197
enum {
198
        TMO_POL  =    0,    /* polling */
199
        TMO_FEVR =  (-1)    /* wait forever */
200
};
201
 
202
/* --- for task management functions ----------------------- */
203
 
204
// cre_tsk:
205
        typedef struct t_ctsk {
206
                VP    exinf;     /* extended information */
207
                ATR   tskatr;    /* task attributes */
208
                FP    task;      /* task start address */
209
                PRI   itskpri;   /* initial task priority */
210
                INT   stksz;     /* stack size */
211
                // ...
212
            /* additional information may be included depending on the
213
               implementation */
214
                // ...
215
        } T_CTSK;
216
 
217
//    tskatr:
218
enum {
219
        TA_ASM    = 0x00,     /* program written in assembly language */
220
        TA_HLNG   = 0x01,     /* program written in high-level language */
221
        TA_COP0   = 0x8000,   /* uses coprocessor having ID = 0 */
222
        TA_COP1   = 0x4000,   /* uses coprocessor having ID = 1 */
223
        TA_COP2   = 0x2000,   /* uses coprocessor having ID = 2 */
224
        TA_COP3   = 0x1000,   /* uses coprocessor having ID = 3 */
225
        TA_COP4   = 0x0800,   /* uses coprocessor having ID = 4 */
226
        TA_COP5   = 0x0400,   /* uses coprocessor having ID = 5 */
227
        TA_COP6   = 0x0200,   /* uses coprocessor having ID = 6 */
228
        TA_COP7   = 0x0100,   /* uses coprocessor having ID = 7 */
229
};
230
 
231
//    tskid:
232
enum {
233
        TSK_SELF  = 0,  /* task specifies itself */
234
        /* FALSE     = 0, */ /* indicates a task-independent portion (return
235
                          parameters only) */
236
};
237
//    tskpri:
238
enum {
239
        TPRI_INI  = 0,  /* specifies the initial priority on task startup
240
                          (chg_pri) */
241
        TPRI_RUN  = 0,  /* specifies the highest priority during execution
242
                          (rot_rdq) */
243
};
244
    /* ref_tsk */
245
        typedef struct t_rtsk {
246
                VP     exinf;     /* extended information */
247
                PRI    tskpri;    /* current priority */
248
                UINT   tskstat;   /* task state */
249
            /* the following are represent extended features of support
250
               [level X] (implementation-dependent) */
251
#if 0 // NOT SUPPORTED
252
                UINT   tskwait;   /* cause of wait */
253
                ID     wid;       /* ID of object being waited for */
254
                INT    wupcnt;    /* wakeup request count */
255
                INT    suscnt;    /* SUSPEND request count */
256
                ATR    tskatr;    /* task attributes */
257
                FP     task;      /* task start address */
258
                PRI    itskpri;   /* initial task priority */
259
                INT    stksz;     /* stack size */
260
                        // ...
261
#endif
262
        } T_RTSK;
263
 
264
//    tskstat:
265
enum {
266
        TTS_RUN   = 0x01,  /* RUN */
267
        TTS_RDY   = 0x02,  /* READY */
268
        TTS_WAI   = 0x04,  /* WAIT */
269
        TTS_SUS   = 0x08,  /* SUSPEND */
270
        TTS_WAS   = 0x0C,  /* WAIT-SUSPEND */
271
        TTS_DMT   = 0x10,  /* DORMANT */
272
};
273
//    tskwait:
274
enum {
275
        TTW_SLP   = 0x0001,  /* wait due to slp_tsk or tslp_tsk */
276
        TTW_DLY   = 0x0002,  /* wait due to dly_tsk */
277
        TTW_NOD   = 0x0008,  /* connection function response wait */
278
        TTW_FLG   = 0x0010,  /* wait due to wai_flg or twai_flg */
279
        TTW_SEM   = 0x0020,  /* wait due to wai_sem or twai_sem */
280
        TTW_MBX   = 0x0040,  /* wait due to rcv_msg or trcv_msg */
281
        TTW_SMBF  = 0x0080,  /* wait due to snd_mbf or tsnd_mbf */
282
        TTW_MBF   = 0x0100,  /* wait due to rcv_mbf or trcv_mbf */
283
        TTW_CAL   = 0x0200,  /* wait for rendezvous call */
284
        TTW_ACP   = 0x0400,  /* wait for rendezvous accept */
285
        TTW_RDV   = 0x0800,  /* wait for rendezvous completion */
286
        TTW_MPL   = 0x1000,  /* wait due to get_blk or tget_blk */
287
        TTW_MPF   = 0x2000,  /* wait due to get_blf or tget_blf */
288
};
289
         /* Since the task states given by tskstat and tskwait are expressed
290
            by bit correspondences, they are convenient when looking for OR
291
            conditions (such as whether a task is in WAIT or READY state).
292
            */
293
 
294
/* --- for semaphore functions ----------------------- */
295
 
296
    /* cre_sem */
297
        typedef struct t_csem {
298
                VP    exinf;    /* extended information */
299
                ATR   sematr;   /* semaphore attributes */
300
            /* Following is the extended function for [level X]. */
301
                INT   isemcnt;   /* initial semaphore count */
302
            /*  INT   maxsem;  NOT SUPPORTED maximum semaphore count */
303
                        // ...
304
            /* additional information may be included depending on the
305
               implementation */
306
                        // ...
307
        } T_CSEM;
308
 
309
    /* ref_sem */
310
        typedef struct t_rsem {
311
                VP      exinf;    /* extended information */
312
                BOOL_ID wtsk;     /* indicates whether or not there is a
313
                                     waiting task */
314
                INT     semcnt;   /* current semaphore count */
315
                        // ...
316
            /* additional information may be included depending on the
317
               implementation */
318
                        // ...
319
        } T_RSEM;
320
 
321
/* --- for eventflag functions ----------------------- */
322
 
323
    /* cre_flg */
324
        typedef struct t_cflg {
325
                VP     exinf;     /* extended information */
326
                ATR    flgatr;    /* eventflag attribute */
327
                UINT   iflgptn;   /* initial eventflag */
328
                        // ...
329
            /* additional information may be included depending on the
330
               implementation */
331
                        // ...
332
        } T_CFLG;
333
 
334
//    flgatr:
335
enum {
336
        TA_WSGL   = 0x00,  /* multiple tasks are not allowed to wait (Wait
337
                                Single Task) */
338
        TA_WMUL   = 0x08,  /* multiple tasks are allowed to wait (Wait
339
                                Multiple Task) */
340
};
341
//    wfmode:
342
enum {
343
        TWF_ANDW   = 0x00,  /* AND wait */
344
        TWF_ORW    = 0x02,  /* OR wait */
345
        TWF_CLR    = 0x01,  /* clear specification */
346
};
347
    /* ref_flg */
348
        typedef struct t_rflg {
349
                VP        exinf;      /* extended information */
350
                BOOL_ID   wtsk;       /* indicates whether or not there is a
351
                                         waiting task */
352
                UINT      flgptn;     /* eventflag bit pattern */
353
                        // ...
354
            /* additional information may be included depending on the
355
               implementation */
356
                        // ...
357
        } T_RFLG;
358
 
359
/* --- for mailbox functions ----------------------- */
360
 
361
   /* cre_mbx */
362
        typedef struct t_cmbx {
363
                VP    exinf;    /* extended information */
364
                ATR   mbxatr;   /* mailbox attributes */
365
            /* Following is implementation-dependent function */
366
            /*  INT   bufcnt; NOT SUPPORTED ring buffer size IS FIXED */
367
                        // ...
368
            /* additional information may be included depending on the
369
               implementation */
370
                        // ...
371
        } T_CMBX;
372
 
373
//    mbxatr:
374
enum {
375
        TA_TFIFO   = 0x00,  /* waiting tasks are handled by FIFO */
376
        TA_TPRI    = 0x01,  /* waiting tasks are handled by priority */
377
        TA_MFIFO   = 0x00,  /* messages are handled by FIFO */
378
        TA_MPRI    = 0x02,  /* messages are handled by priority */
379
};
380
 
381
    /* ref_mbx */
382
        typedef struct t_rmbx {
383
                VP        exinf;    /* extended information */
384
                BOOL_ID   wtsk;     /* indicates whether or not there is a
385
                                       waiting task */
386
                T_MSG*    pk_msg;   /* message to be sent next */
387
                        // ...
388
            /* additional information may be included depending on the
389
               implementation */
390
                        // ...
391
        } T_RMBX;
392
 
393
/* --- for messagebuffer functions ----------------------- */
394
 
395
#if 0 // NOT SUPPORTED
396
    /* cre_mbf */
397
        typedef struct t_cmbf {
398
                VP    exinf;    /* extended information */
399
                ATR   mbfatr;   /* messagebuffer attributes */
400
                INT   bufsz;    /* messagebuffer size */
401
                INT   maxmsz;   /* maximum size of messages */
402
                        // ...
403
            /* additional information may be included depending on the
404
               implementation */
405
                        // ...
406
        } T_CMBF;
407
 
408
//    mbfatr:
409
//    mbfid:
410
enum {
411
        TMBF_OS  = (-4),   /* messagebuffer used for OS error log */
412
        TMBF_DB  = (-3),   /* messagebuffer used for debugging */
413
};
414
    /* ref_mbf */
415
        typedef struct t_rmbf {
416
                VP        exinf;     /* extended information */
417
                BOOL_ID   wtsk;      /* indicates whether or not there is a
418
                                        task waiting to receive a message */
419
                BOOL_ID   stsk;      /* indicates whether or not there is a
420
                                        task waiting to send a message */
421
                INT       msgsz;     /* size of message to be sent next */
422
                INT       frbufsz;   /* size of free buffer */
423
                        // ...
424
            /* additional information may be included depending on the
425
               implementation */
426
                        // ...
427
        } T_RMBF;
428
 
429
#endif
430
/* --- for port or rendezvous functions ----------------------- */
431
 
432
#if 0 // NOT SUPPORTED
433
 
434
    /* cre_por */
435
        typedef struct t_cpor {
436
                VP    exinf;     /* extended information */
437
                ATR   poratr;    /* port attributes */
438
                INT   maxcmsz;   /* maximum call message size */
439
                INT   maxrmsz;   /* maximum reply message size */
440
                        // ...
441
            /* additional information may be included depending on the
442
               implementation */
443
                        // ...
444
        } T_CPOR;
445
 
446
//    poratr:
447
enum {
448
        TA_NULL  = 0,  /* specifies no particular attributes */
449
         /* TA_NULL should be used in place of zeroes to turn off all
450
            attribute features. */
451
};
452
    /* ref_por */
453
        typedef struct t_rpor {
454
                VP        exinf;   /* extended information */
455
                BOOL_ID   wtsk;    /* indicates whether or not there is a task
456
                                      waiting to call a rendezvous */
457
                BOOL_ID   atsk;    /* indicates whether or not there is a task
458
                                      waiting to accept a rendezvous */
459
                        // ...
460
            /* additional information may be included depending on the
461
               implementation */
462
                        // ...
463
        } T_RPOR;
464
#endif
465
 
466
/* --- for interrupt management functions ----------------------- */
467
 
468
#if 0 // NOT SUPPORTED
469
    /* def_int */
470
        typedef struct t_dint {
471
                ATR   intatr;   /* interrupt handler attributes */
472
                FP    inthdr;   /* interrupt handler address */
473
                        // ...
474
            /* additional information may be included depending on the
475
               implementation */
476
                        // ...
477
        } T_DINT;
478
#endif
479
 
480
/* --- for memorypool management functions ----------------------- */
481
 
482
    /* cre_mpl */
483
        typedef struct t_cmpl {
484
                VP    exinf;    /* extended information */
485
                ATR   mplatr;   /* memorypool attributes */
486
                INT   mplsz;    /* memorypool size */
487
                        // ...
488
            /* additional information may be included depending on the
489
               implementation */
490
                        // ...
491
        } T_CMPL;
492
 
493
//    mplatr:
494
//    mplid:
495
enum {
496
        TMPL_OS  = (-4)   /* memorypool used by OS */
497
};
498
    /* ref_mpl */
499
        typedef struct t_rmpl {
500
                VP        exinf;    /* extended information */
501
                BOOL_ID   wtsk;     /* indicates whether or not there are
502
                                       waiting tasks */
503
                INT       frsz;     /* total size of free memory */
504
                INT       maxsz;    /* size of largest contiguous memory */
505
                        // ...
506
            /* additional information may be included depending on the
507
               implementation */
508
                        // ...
509
        } T_RMPL;
510
 
511
    /* cre_mpf */
512
        typedef struct t_cmpf {
513
                VP    exinf;     /* extended information */
514
                ATR   mpfatr;    /* memorypool attributes */
515
                INT   mpfcnt;    /* block count for entire memorypool */
516
                INT   blfsz;     /* fixed-size memory block size */
517
                        // ...
518
            /* additional information may be included depending on the
519
               implementation */
520
                        // ...
521
        } T_CMPF;
522
 
523
//    mpfatr:
524
    /* ref_mpf */
525
        typedef struct t_rmpf {
526
                VP        exinf;    /* extended information */
527
                BOOL_ID   wtsk;     /* indicates whether or not there are
528
                                       waiting tasks */
529
                INT       frbcnt;   /* free block count */
530
            /* additional information may be included depending on the
531
               implementation */
532
                INT       numbcnt;  /* total number of blocks */
533
                INT       bsize;    /* block size */
534
 
535
        } T_RMPF;
536
 
537
/* --- for time management functions ----------------------- */
538
 
539
#if 0 // native definition is at head of this file
540
    /* example for 32-bit CPUs */
541
        typedef struct t_systime {
542
                H    utime;   /* upper 16 bits */
543
                UW   ltime;   /* lower 32 bits */
544
        } SYSTIME, CYCTIME, ALMTIME;
545
 
546
    /* example for 16-bit CPUs */
547
        typedef struct t_systime {
548
                H    utime;   /* upper 16 bits */
549
                UH   mtime;   /* middle 16 bits */
550
                UH   ltime;   /* lower 16 bits */
551
        } SYSTIME, CYCTIME, ALMTIME;
552
#endif
553
         /* Member configuration depends on the bit width of the processor and
554
            on the implementation.  A total of 48 bits is recommended. */
555
 
556
    /* def_cyc */
557
        typedef struct t_dcyc {
558
                VP        exinf;    /* extended information */
559
                ATR       cycatr;   /* cyclic handler attributes */
560
                FP        cychdr;   /* cyclic handler address */
561
                UINT      cycact;   /* cyclic handler activation */
562
                CYCTIME   cyctim;   /* cyclic startup period */
563
        } T_DCYC;
564
 
565
//    cycact:
566
enum {
567
        TCY_OFF   = 0x00,  /* do not invoke cyclic handler */
568
        TCY_ON    = 0x01,  /* invoke cyclic handler */
569
        TCY_INT   = 0x02,  /* initialize cycle count */
570
        /* Following changed from TCY_INT to TCY_INI to match
571
           description in the body of the standard.  I assume TCY_INT
572
           is a hypercorrection/typo; keep both */
573
        TCY_INI   = 0x02,  /* initialize cycle count */
574
};
575
    /* ref_cyc */
576
        typedef struct t_rcyc {
577
                VP        exinf;    /* extended information */
578
                CYCTIME   lfttim;   /* time left before next handler startup */
579
                UINT      cycact;   /* cyclic handler activation */
580
                        // ...
581
            /* additional information may be included depending on the
582
               implementation */
583
                        // ...
584
        } T_RCYC;
585
 
586
    /* def_alm */
587
        typedef struct t_dalm {
588
                VP        exinf;    /* extended information */
589
                ATR       almatr;   /* alarm handler attributes */
590
                FP        almhdr;   /* alarm handler address */
591
                UINT      tmmode;   /* start time specification mode */
592
                ALMTIME   almtim;   /* handler startup time */
593
        } T_DALM;
594
 
595
//    tmmode:
596
enum {
597
        TTM_ABS   = 0x00,  /* specified as an absolute time */
598
        TTM_REL   = 0x01,  /* specified as a relative time */
599
};
600
    /* ref_alm */
601
        typedef struct t_ralm {
602
                VP        exinf;    /* extended information */
603
                ALMTIME   lfttim;   /* time left before next handler startup */
604
                        // ...
605
            /* additional information may be included depending on the
606
               implementation */
607
                        // ...
608
        } T_RALM;
609
 
610
/* --- for system management functions ----------------------- */
611
 
612
    /* get_ver */
613
        typedef struct t_ver {
614
                UH   maker;     /* vendor */
615
                UH   id;        /* format number */
616
                UH   spver;     /* specification version */
617
                UH   prver;     /* product version */
618
                UH   prno[4];   /* product control information */
619
                UH   cpu;       /* CPU information */
620
                UH   var;       /* variation descriptor */
621
        } T_VER;
622
 
623
    /* ref_sys */
624
        typedef struct t_rsys {
625
                INT   sysstat;   /* system state */
626
                        // ...
627
            /* additional information may be included depending on the
628
               implementation */
629
                        // ...
630
        } T_RSYS;
631
 
632
//    sysstat:
633
enum {
634
        TSS_TSK   = 0,  /* normal state in which dispatching is enabled during
635
                          task portion execution */
636
        TSS_DDSP  = 1,   /* state after dis_dsp has been executed during task
637
                          portion execution (dispatch disabled) */
638
        TSS_LOC   = 3,   /* state after loc_cpu has been executed during task
639
                          portion execution (interrupt and dispatch disabled)
640
                          */
641
        TSS_INDP  = 4,   /* state during execution of task-independent portions
642
                          (interrupt and timer handlers) */
643
};
644
    /* ref_cfg */
645
        typedef struct t_rcfg {
646
            /* details concerning members are implementation dependent */
647
        } T_RCFG;
648
 
649
#if 0 // NOT SUPPORTED
650
    /* def_svc */
651
        typedef struct t_dsvc {
652
                ATR   svcatr;   /* extended SVC handler attributes */
653
                FP    svchdr;   /* extended SVC handler address */
654
                        // ...
655
            /* additional information may be included depending on the
656
               implementation */
657
                        // ...
658
        } T_DSVC;
659
 
660
    /* def_exc */
661
        typedef struct t_dexc {
662
                ATR   excatr;   /* exception handler attributes */
663
                FP    exchdr;   /* exception handler address */
664
                        // ...
665
            /* additional information may be included depending on the
666
               implementation */
667
                        // ...
668
        } T_DEXC;
669
#endif
670
 
671
/* --- for network management functions ----------------------- */
672
 
673
#if 0 // NOT SUPPORTED
674
//    NODE srcnode, dstnode, node:
675
enum {
676
        TND_SELF  = 0,     /* specifies the local node */
677
        TND_OTHR  = (-1)   /* specifies default remote node */
678
};
679
#endif
680
/* ------------------------------------------------------ */
681
 
682
 
683
 
684
#endif // CYGPKG_UITRON
685
 
686
#endif // CYGONCE_COMPAT_UITRON_UIT_TYPE_H
687
// EOF uit_type.h

powered by: WebSVN 2.1.0

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