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

Subversion Repositories thor

[/] [thor/] [trunk/] [software/] [FMTK/] [source/] [kernel/] [kernel.h] - Blame information for rev 23

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 23 robfinch
// error codes
2
#define E_Ok                            0x00
3
#define E_Arg                           0x01
4
#define E_BadMbx                        0x04
5
#define E_QueFull                       0x05
6
#define E_NoThread                      0x06
7
#define E_NotAlloc                      0x09
8
#define E_NoMsg                         0x0b
9
#define E_Timeout                       0x10
10
// resource errors
11
#define E_NoMoreMbx                     0x40
12
#define E_NoMoreMsgBlks         0x41
13
#define E_NoMoreAlarmBlks       0x44
14
#define E_NoMoreTCBs            0x45
15
 
16
#define E_BadCallGate           0x49    // tried to call uninitialize gate
17
 
18
#define E_BadDMAChannel         0x400
19
#define E_DMABoundary           0x402   // transfer will cross 64/128k
20
#define E_BadDMAAddr            0x403   // address over 16M limit
21
 
22
#define OSCodeSel       8
23
#define DataSel         
24
 
25
// task status
26
#define TS_TIMEOUT      0
27
#define TS_WAITMSG      1
28
#define TS_PREEMP       2
29
#define TS_RUNNING      4
30
#define TS_READY        8
31
 
32
// message queuing strategy
33
#define MQS_UNLIMITED   0        // unlimited queue size
34
#define MQS_NEWEST              1       // buffer queue size newest messages
35
#define MQS_OLDEST              2       // buffer queue size oldest messages
36
 
37
// message block type
38
#define MBT_DATA        0
39
 
40
// alarm constants
41
#define ALM_FOREVER     -1              // repeat forever code
42
 
43
#define MAX_UINT        -1
44
 
45
 
46
typedef struct tagMSG {
47
        struct tagMSG *link;
48
        uint d1;
49
        uint d2;
50
        byte type;
51
        byte resv[3];
52
} MSG;
53
 
54
typedef struct tagMBX {
55
        TCB *tq_head;
56
        TCB *tq_tail;
57
        MSG *mq_head;
58
        MSG *mq_tail;
59
        uint tq_count;
60
        uint mq_size;
61
        uint mq_count;
62
        uint mq_missed;
63
        uint owner;             // hJcb of owner
64
        char mq_strategy;
65
        byte resv[3];           // padding to 32 bytes
66
} MBX;
67
 
68
typedef struct tagALARM {
69
        ALARM *next;
70
        ALARM *prev;
71
        MBX *mbx;
72
        MSG *msg;
73
        uint BaseTimeout;
74
        uint timeout;
75
        uint repeat;
76
        byte resv[4];           // padding to 32 bytes
77
} ALARM;

powered by: WebSVN 2.1.0

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