This is Unofficial EPICS BASE Doxygen Site
task_params.h
Go to the documentation of this file.
1 /*************************************************************************\
2 * Copyright (c) 2002 The University of Chicago, as Operator of Argonne
3 * National Laboratory.
4 * Copyright (c) 2002 The Regents of the University of California, as
5 * Operator of Los Alamos National Laboratory.
6 * EPICS BASE Versions 3.13.7
7 * and higher are distributed subject to a Software License Agreement found
8 * in file LICENSE that is included with this distribution.
9 \*************************************************************************/
10 
11 /* Parameters for tasks on IOC */
12 /*
13  * Authors: Andy Kozubal, Jeff Hill, and Bob Dalesio
14  * Date: 2-24-89
15  */
16 
17 #ifndef INCtaskLibh
18 #include <taskLib.h>
19 #endif
20 
21 #define VXTASKIDSELF 0
22 
23 /* Task Names */
24 #define EVENTSCAN_NAME "scanEvent"
25 #define SCANONCE_NAME "scanOnce"
26 #define SMCMD_NAME "smCommand"
27 #define SMRESP_NAME "smResponse"
28 #define ABDONE_NAME "abDone"
29 #define ABSCAN_NAME "abScan"
30 #define ABCOS_NAME "abBiCosScanner"
31 #define MOMENTARY_NAME "momentary"
32 #define WFDONE_NAME "wfDone"
33 #define SEQUENCER_NAME "sequencer"
34 #define BKPT_CONT_NAME "bkptCont"
35 #define SCANNER_NAME "scanner"
36 #define REQ_SRVR_NAME "CA_TCP"
37 #define CA_CLIENT_NAME "CA_client"
38 #define CA_EVENT_NAME "CA_event"
39 #define CAST_SRVR_NAME "CA_UDP"
40 #define CA_REPEATER_NAME "CA_repeater"
41 #define CA_ONLINE_NAME "CA_online"
42 #define TASKWD_NAME "taskwd"
43 #define SMIOTEST_NAME "smInout"
44 #define SMROTTEST_NAME "smRotate"
45 #define EVENT_PEND_NAME "event_task"
46 #define XY240_NAME "xy_240_scan"
47 #define GPIBLINK_NAME "gpibLink"
48 #define BBLINK_NAME "bbLinkTask"
49 #define BBTXLINK_NAME "bbTx"
50 #define BBRXLINK_NAME "bbRx"
51 #define BBWDTASK_NAME "bbwd"
52 #define ERRLOG_NAME "errlog"
53 #define LOG_RESTART_NAME "logRestart"
54 
55 /* Task priorities */
56 #define SCANONCE_PRI 129 /* scan one time */
57 /*DO NOT RUN ANY RECORD PROCESSING TASKS AT HIGHER PRIORITY THAN _netTask=50*/
58 #define CALLBACK_PRI_LOW 140 /* callback task - generall callback task */
59 #define CALLBACK_PRI_MEDIUM 135 /* callback task - generall callback task */
60 #define CALLBACK_PRI_HIGH 128 /* callback task - generall callback task */
61 #define EVENTSCAN_PRI 129 /* Event Scanner - Runs on a global event */
62 #define SMCMD_PRI 120 /* Stepper Motor Command Task - Waits for cmds */
63 #define SMRESP_PRI 121 /* Stepper Motor Resp Task - Waits for resps */
64 #define ABCOS_PRI 121 /* Allen-Bradley Binary Input COS io_event wakeup */
65 #define ABDONE_PRI 122 /* Allen-Bradley Resp Task - Interrupt Driven */
66 #define ABSCAN_PRI 123 /* Allen-Bradley Scan Task - Base Rate .1 secs */
67 #define BBLINK_PRI 124
68 #define BBWDTASK_PRI 123 /* BitBus watchdog task */
69 #define BBRXLINK_PRI 124 /* BitBus link task */
70 #define BBTXLINK_PRI 125 /* BitBus link task */
71 #define GPIBLINK_PRI 125 /* GPIB link task */
72 #define MOMENTARY_PRI 126 /* Momentary output - posted from watchdog */
73 #define WFDONE_PRI 127 /* Waveform Task - Base Rate of .1 second */
74 #define PERIODSCAN_PRI 139 /* Periodic Scanners - Slowest rate */
75 #define DB_CA_PRI 149 /*database to channel access*/
76 #define SEQUENCER_PRI 151
77 #define XY240_PRI 160 /* xy 240 dio scanner */
78 #define SCANNER_PRI 170
79 #define REQ_SRVR_PRI 181 /* Channel Access TCP request server*/
80 #define CA_CLIENT_PRI 180 /* Channel Access clients */
81 #define CA_REPEATER_PRI 181 /* Channel Access repeater */
82 #define ERRLOG_PRI CA_REPEATER_PRI /*error logger task*/
83 #define CAST_SRVR_PRI 182 /* Channel Access broadcast server */
84 #define CA_ONLINE_PRI 183 /* Channel Access server online notify */
85 #define TASKWD_PRI 200 /* Watchdog Scan Task - runs every 6 seconds */
86 #define SMIOTEST_PRI 205 /* Stepper Mtr in/out test - runs every .1 sec */
87 #define SMROTTEST_PRI 205 /* Stepper Mtr rotate test - runs every .1 sec */
88 #define LOG_RESTART_PRI 200 /* Log server connection watch dog */
89 
90 /* Task delay times (seconds) */
91 #define TASKWD_DELAY 6
92 
93 /* Task delay times (tics) */
94 #define ABSCAN_RATE (sysClkRateGet()/6)
95 #define SEQUENCER_DELAY (sysClkRateGet()/5)
96 #define SCANNER_DELAY (sysClkRateGet()/5)
97 #define CA_ONLINE_DELAY (sysClkRateGet()*15)
98 #define LOG_RESTART_DELAY (sysClkRateGet()*30)
99 
100 /* Task creation options */
101 #define ERRLOG_OPT VX_FP_TASK
102 #define EVENTSCAN_OPT VX_FP_TASK
103 #define SCANONCE_OPT VX_FP_TASK
104 #define CALLBACK_OPT VX_FP_TASK
105 #define SMCMD_OPT VX_FP_TASK
106 #define SMRESP_OPT VX_FP_TASK
107 #define ABDONE_OPT VX_FP_TASK
108 #define ABCOS_OPT VX_FP_TASK
109 #define ABSCAN_OPT VX_FP_TASK
110 #define MOMENTARY_OPT VX_FP_TASK
111 #define PERIODSCAN_OPT VX_FP_TASK
112 #define WFDONE_OPT VX_FP_TASK
113 #define SEQUENCER_OPT VX_FP_TASK | VX_STDIO
114 #define BKPT_CONT_OPT VX_FP_TASK
115 #define SCANNER_OPT VX_FP_TASK
116 #define REQ_SRVR_OPT VX_FP_TASK
117 #define CAST_SRVR_OPT VX_FP_TASK
118 #define CA_CLIENT_OPT VX_FP_TASK
119 #define CA_REPEATER_OPT VX_FP_TASK
120 #define CA_ONLINE_OPT VX_FP_TASK
121 #define TASKWD_OPT VX_FP_TASK
122 #define SMIOTEST_OPT VX_FP_TASK
123 #define SMROTTEST_OPT VX_FP_TASK
124 #define EVENT_PEND_OPT VX_FP_TASK
125 #define GPIBLINK_OPT VX_FP_TASK|VX_STDIO
126 #define BBLINK_OPT VX_FP_TASK|VX_STDIO
127 #define BBTXLINK_OPT VX_FP_TASK|VX_STDIO
128 #define BBRXLINK_OPT VX_FP_TASK|VX_STDIO
129 #define BBWDTASK_OPT VX_FP_TASK|VX_STDIO
130 #define DB_CA_OPT (VX_FP_TASK | VX_STDIO)
131 #define XY_240_OPT (0) /* none */
132 #define LOG_RESTART_OPT (VX_FP_TASK)
133 
134 
135 /*
136  * Task stack sizes
137  *
138  * (original stack sizes are appropriate for the 68k)
139  * ARCH_STACK_FACTOR allows scaling the stacks on particular
140  * processor architectures
141  */
142 #if CPU_FAMILY == MC680X0
143 #define ARCH_STACK_FACTOR 1
144 #elif CPU_FAMILY == SPARC
145 #define ARCH_STACK_FACTOR 2
146 #else
147 #define ARCH_STACK_FACTOR 2
148 #endif
149 
150 #define ERRLOG_STACK (4000*ARCH_STACK_FACTOR)
151 #define EVENTSCAN_STACK (11000*ARCH_STACK_FACTOR)
152 #define SCANONCE_STACK (11000*ARCH_STACK_FACTOR)
153 #define CALLBACK_STACK (11000*ARCH_STACK_FACTOR)
154 #define SMCMD_STACK (3000*ARCH_STACK_FACTOR)
155 #define SMRESP_STACK (3000*ARCH_STACK_FACTOR)
156 #define ABCOS_STACK (3000*ARCH_STACK_FACTOR)
157 #define ABDONE_STACK (3000*ARCH_STACK_FACTOR)
158 #define ABSCAN_STACK (3000*ARCH_STACK_FACTOR)
159 #define MOMENTARY_STACK (2000*ARCH_STACK_FACTOR)
160 #define PERIODSCAN_STACK (11000*ARCH_STACK_FACTOR)
161 #define WFDONE_STACK (9000*ARCH_STACK_FACTOR)
162 #define SEQUENCER_STACK (5500*ARCH_STACK_FACTOR)
163 #define BKPT_CONT_STACK (11000*ARCH_STACK_FACTOR)
164 #define SCANNER_STACK (3048*ARCH_STACK_FACTOR)
165 #define RSP_SRVR_STACK (5096*ARCH_STACK_FACTOR)
166 #define REQ_SRVR_STACK (5096*ARCH_STACK_FACTOR)
167 #define CAST_SRVR_STACK (5096*ARCH_STACK_FACTOR)
168 #define CA_CLIENT_STACK (11000*ARCH_STACK_FACTOR)
169 #define CA_REPEATER_STACK (5096*ARCH_STACK_FACTOR)
170 #define CA_ONLINE_STACK (3048*ARCH_STACK_FACTOR)
171 #define TASKWD_STACK (2000*ARCH_STACK_FACTOR)
172 #define SMIOTEST_STACK (2000*ARCH_STACK_FACTOR)
173 #define SMROTTEST_STACK (2000*ARCH_STACK_FACTOR)
174 #define EVENT_PEND_STACK (5096*ARCH_STACK_FACTOR)
175 #define TIMESTAMP_STACK (4000*ARCH_STACK_FACTOR)
176 #define GPIBLINK_STACK (5000*ARCH_STACK_FACTOR)
177 #define BBLINK_STACK (5000*ARCH_STACK_FACTOR)
178 #define BBRXLINK_STACK (5000*ARCH_STACK_FACTOR)
179 #define BBTXLINK_STACK (5000*ARCH_STACK_FACTOR)
180 #define BBWDTASK_STACK (5000*ARCH_STACK_FACTOR)
181 #define DB_CA_STACK (11000*ARCH_STACK_FACTOR)
182 #define XY_240_STACK (4096*ARCH_STACK_FACTOR)
183 #define LOG_RESTART_STACK (0x1000*ARCH_STACK_FACTOR)
184