annotate src/gpf2/inc/nuc/tc_defs.h @ 56:e17c1e28389f

targets/*.conf: selection of main.lib blob variants
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 30 Sep 2016 23:25:13 +0000
parents 864b8cc0cf63
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*************************************************************************/
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 /* Copyright (c) 1993-1996 Accelerated Technology, Inc. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5 /* PROPRIETARY RIGHTS of Accelerated Technology are involved in the */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 /* subject matter of this material. All manufacturing, reproduction, */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7 /* use, and sales rights pertaining to this subject matter are governed */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 /* by the license agreement. The recipient of this software implicitly */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 /* accepts the terms of the license. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 /*************************************************************************/
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 /*************************************************************************/
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 /* FILE NAME VERSION */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 /* tc_defs.h PLUS/MNT */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 /* VERSION 1.1 */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
19 /* COMPONENT */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
20 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
21 /* TC - Thread Control */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
22 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
23 /* DESCRIPTION */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
24 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
25 /* This file contains data structure definitions and constants for */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
26 /* the component that controls the various threads of execution in */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
27 /* system. Threads include tasks, HISRs, signal handlers, etc. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
28 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
29 /* AUTHOR */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
30 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
31 /* William E. Lamie, Accelerated Technology, Inc. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
32 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
33 /* DATA STRUCTURES */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
34 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
35 /* TC_TCB Task Control Block */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
36 /* TC_HCB HISR Control Block */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
37 /* TC_PROTECT Task/HISR protection struct */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
38 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
39 /* FUNCTIONS */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
40 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
41 /* None */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
42 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
43 /* DEPENDENCIES */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
44 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
45 /* cs_defs.h Common service definitions */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
46 /* tm_defs.h Timer control definitions */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
47 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
48 /* HISTORY */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
49 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
50 /* NAME DATE REMARKS */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
51 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
52 /* W. Lamie 03-01-1993 Created initial version 1.0 */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
53 /* D. Lamie 04-19-1993 Verified version 1.0 */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
54 /* W. Lamie 06-01-1993 Added padding conditional into */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
55 /* TC_TCB structure, making */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
56 /* version 1.0a */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
57 /* D. Lamie 06-01-1993 Verified version 1.0a */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
58 /* W. Lamie 03-01-1994 Moved include files outside of */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
59 /* the file #ifndef to allow the */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
60 /* use of actual data structures, */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
61 /* added four reserved words in */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
62 /* both the task and HISR blocks, */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
63 /* resulting in version 1.1 */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
64 /* R. Pfaff - */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
65 /* D. Lamie 03-18-1994 Verified version 1.1 */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
66 /* M.Q. Qian 04-17-1996 updated to version 1.2 */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
67 /* B. Haggerty 03-12-1997 Released MNT Version 1.0 */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
68 /* B. Haggerty 08-11-1997 Released MNT Version 1.1 */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
69 /* */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
70 /*************************************************************************/
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
71
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
72 #include "cs_defs.h" /* Common service constants */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
73 #include "tm_defs.h" /* Timer control structures */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
74
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
75
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
76 /* Check to see if the file has been included already. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
77
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
78 #ifndef TC_DEFS
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
79 #define TC_DEFS
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
80
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
81
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
82 /* Define constants local to this component. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
83
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
84 #define TC_TASK_ID 0x5441534bUL
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
85 #define TC_HISR_ID 0x48495352UL
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
86 #define TC_PRIORITIES 256
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
87 #define TC_HISR_PRIORITIES 3
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
88 #define TC_MAX_GROUPS TC_PRIORITIES/8
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
89 #define TC_HIGHEST_MASK 0x000000FFUL
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
90 #define TC_NEXT_HIGHEST_MASK 0x0000FF00UL
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
91 #define TC_NEXT_LOWEST_MASK 0x00FF0000UL
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
92 #define TC_LOWEST_MASK 0xFF000000UL
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
93
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
94 /* Define the Task Control Block data type. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
95
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
96 typedef struct TC_TCB_STRUCT
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
97 {
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
98 /* Standard thread information first. This information is used by
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
99 the target dependent portion of this component. Changes made
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
100 to this area of the structure can have undesirable side effects. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
101
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
102 CS_NODE tc_created; /* Node for linking to */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
103 /* created task list */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
104 UNSIGNED tc_id; /* Internal TCB ID */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
105 CHAR tc_name[NU_MAX_NAME]; /* Task name */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
106 DATA_ELEMENT tc_status; /* Task status */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
107 DATA_ELEMENT tc_delayed_suspend; /* Delayed task suspension*/
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
108 DATA_ELEMENT tc_priority; /* Task priority */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
109 DATA_ELEMENT tc_preemption; /* Task preemption enable */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
110 UNSIGNED tc_scheduled; /* Task scheduled count */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
111 UNSIGNED tc_cur_time_slice; /* Current time slice */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
112 VOID *tc_stack_start; /* Stack starting address */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
113 VOID *tc_stack_end; /* Stack ending address */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
114 VOID *tc_stack_pointer; /* Task stack pointer */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
115 UNSIGNED tc_stack_size; /* Task stack's size */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
116 UNSIGNED tc_stack_minimum; /* Minimum stack size */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
117 struct TC_PROTECT_STRUCT
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
118 *tc_current_protect; /* Current protection */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
119 VOID *tc_saved_stack_ptr; /* Previous stack pointer */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
120 UNSIGNED tc_time_slice; /* Task time slice value */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
121
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
122
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
123 /* Information after this point is not used in the target dependent
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
124 portion of this component. Hence, changes in the following section
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
125 should not impact assembly language routines. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
126 struct TC_TCB_STRUCT
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
127 *tc_ready_previous, /* Previously ready TCB */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
128 *tc_ready_next; /* next and previous ptrs */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
129
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
130 /* Task control information follows. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
131
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
132 UNSIGNED tc_priority_group; /* Priority group mask bit*/
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
133 struct TC_TCB_STRUCT
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
134 **tc_priority_head; /* Pointer to list head */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
135 DATA_ELEMENT *tc_sub_priority_ptr; /* Pointer to sub-group */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
136 DATA_ELEMENT tc_sub_priority; /* Mask of sub-group bit */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
137 DATA_ELEMENT tc_saved_status; /* Previous task status */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
138 DATA_ELEMENT tc_signal_active; /* Signal active flag */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
139
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
140 #if PAD_3
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
141 DATA_ELEMENT tc_padding[PAD_3];
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
142 #endif
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
143
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
144 /* Task entry function */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
145 VOID (*tc_entry)(UNSIGNED, VOID *);
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
146 UNSIGNED tc_argc; /* Optional task argument */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
147 VOID *tc_argv; /* Optional task argument */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
148 VOID (*tc_cleanup) (VOID *);/* Clean-up routine */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
149 VOID *tc_cleanup_info; /* Clean-up information */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
150 struct TC_PROTECT_STRUCT
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
151 *tc_suspend_protect; /* Protection at time of */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
152 /* task suspension */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
153
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
154 /* Task timer information. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
155 INT tc_timer_active; /* Active timer flag */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
156 TM_TCB tc_timer_control; /* Timer control block */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
157
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
158 /* Task signal control information. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
159
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
160 UNSIGNED tc_signals; /* Current signals */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
161 UNSIGNED tc_enabled_signals; /* Enabled signals */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
162
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
163 /* tc_saved_status and tc_signal_active are now defined above in an
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
164 attempt to keep DATA_ELEMENT types together. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
165
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
166 /* Signal handling routine. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
167 VOID (*tc_signal_handler) (UNSIGNED);
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
168
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
169 /* Reserved words for the system and a single reserved word for the
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
170 application. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
171 UNSIGNED tc_system_reserved_1; /* System reserved word */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
172 UNSIGNED tc_system_reserved_2; /* System reserved word */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
173 UNSIGNED tc_system_reserved_3; /* System reserved word */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
174 UNSIGNED tc_app_reserved_1; /* Application reserved */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
175
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
176 } TC_TCB;
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
177
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
178
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
179 /* Define the High-Level Interrupt Service Routine Control Block data type. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
180
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
181 typedef struct TC_HCB_STRUCT
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
182 {
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
183 /* Standard thread information first. This information is used by
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
184 the target dependent portion of this component. Changes made
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
185 to this area of the structure can have undesirable side effects. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
186
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
187 CS_NODE tc_created; /* Node for linking to */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
188 /* created task list */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
189 UNSIGNED tc_id; /* Internal TCB ID */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
190 CHAR tc_name[NU_MAX_NAME]; /* HISR name */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
191 DATA_ELEMENT tc_not_used_1; /* Not used field */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
192 DATA_ELEMENT tc_not_used_2; /* Not used field */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
193 DATA_ELEMENT tc_priority; /* HISR priority */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
194 DATA_ELEMENT tc_not_used_3; /* Not used field */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
195 UNSIGNED tc_scheduled; /* HISR scheduled count */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
196 UNSIGNED tc_cur_time_slice; /* Not used in HISR */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
197 VOID *tc_stack_start; /* Stack starting address */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
198 VOID *tc_stack_end; /* Stack ending address */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
199 VOID *tc_stack_pointer; /* HISR stack pointer */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
200 UNSIGNED tc_stack_size; /* HISR stack's size */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
201 UNSIGNED tc_stack_minimum; /* Minimum stack size */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
202 struct TC_PROTECT_STRUCT
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
203 *tc_current_protect; /* Current protection */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
204 struct TC_HCB_STRUCT
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
205 *tc_active_next; /* Next activated HISR */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
206
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
207 /* Information after this point is not used in the target dependent
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
208 portion of this component. Hence, changes in the following section
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
209 should not impact assembly language routines. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
210 UNSIGNED tc_activation_count; /* Activation counter */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
211 VOID (*tc_entry)(VOID); /* HISR entry function */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
212 /*#ifdef SUN */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
213 VOID (*tc_actual_entry)(); /* HISR entry function MNT 1.2 */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
214 /*#endif */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
215
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
216 /* Reserved words for the system and a single reserved word for the
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
217 application. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
218 UNSIGNED tc_system_reserved_1; /* System reserved word */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
219 UNSIGNED tc_system_reserved_2; /* System reserved word */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
220 UNSIGNED tc_system_reserved_3; /* System reserved word */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
221 UNSIGNED tc_app_reserved_1; /* Application reserved */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
222
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
223 } TC_HCB;
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
224
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
225
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
226 /* Define the Task/HISR protection structure type. */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
227
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
228 typedef struct TC_PROTECT_STRUCT
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
229 {
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
230 TC_TCB *tc_tcb_pointer; /* Owner of the protection */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
231 UNSIGNED tc_thread_waiting; /* Waiting thread flag */
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
232 } TC_PROTECT;
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
233
864b8cc0cf63 src/gpf2: preened GPF goo from TCS211
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
234 #endif