1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
13:
14: 15: 16: 17: 18:
19:
20: #ifndef __TK_DBGSPT_H__
21: #define __TK_DBGSPT_H__
22:
23: #include "tkernel.h"
24:
25: #ifdef __cplusplus
26: extern "C" {
27: #endif
28:
29:
30: #define DBGSPT_PATH_(a) #a
31: #define DBGSPT_PATH(a) DBGSPT_PATH_(a)
32: #define DBGSPT_SYSDEP() DBGSPT_PATH(sysdepend/TARGET_DIR/dbgspt.h)
33: #include DBGSPT_SYSDEP()
34:
35: 36: 37:
38: #define TN_TSK 0x01
39: #define TN_SEM 0x02
40: #define TN_FLG 0x03
41: #define TN_MBX 0x04
42: #define TN_MBF 0x05
43: #define TN_POR 0x06
44: #define TN_MTX 0x07
45: #define TN_MPL 0x08
46: #define TN_MPF 0x09
47: #define TN_CYC 0x0a
48: #define TN_ALM 0x0b
49:
50: 51: 52:
53: typedef struct td_rsem {
54: void *exinf;
55: ID wtsk;
56: INT semcnt;
57: } TD_RSEM;
58:
59: 60: 61:
62: typedef struct td_rflg {
63: void *exinf;
64: ID wtsk;
65: UINT flgptn;
66: } TD_RFLG;
67:
68: 69: 70:
71: typedef struct td_rmbx {
72: void *exinf;
73: ID wtsk;
74: T_MSG *pk_msg;
75: } TD_RMBX;
76:
77: 78: 79:
80: typedef struct td_rmtx {
81: void *exinf;
82: ID htsk;
83: ID wtsk;
84: } TD_RMTX;
85:
86: 87: 88:
89: typedef struct td_rmbf {
90: void *exinf;
91: ID wtsk;
92: ID stsk;
93: INT msgsz;
94: W frbufsz;
95: INT maxmsz;
96: } TD_RMBF;
97:
98: 99: 100:
101: typedef struct td_rpor {
102: void *exinf;
103: ID wtsk;
104: ID atsk;
105: INT maxcmsz;
106: INT maxrmsz;
107: } TD_RPOR;
108:
109: 110: 111:
112: typedef struct td_rmpf {
113: void *exinf;
114: ID wtsk;
115: W frbcnt;
116: } TD_RMPF;
117:
118: 119: 120:
121: typedef struct td_rmpl {
122: void *exinf;
123: ID wtsk;
124: W frsz;
125: W maxsz; 126:
127: } TD_RMPL;
128:
129: 130: 131:
132: typedef struct td_rcyc {
133: void *exinf;
134: RELTIM lfttim;
135: UINT cycstat;
136: } TD_RCYC;
137:
138: 139: 140:
141: typedef struct td_ralm {
142: void *exinf;
143: RELTIM lfttim;
144: UINT almstat;
145: } TD_RALM;
146:
147: 148: 149:
150: typedef struct td_rssy {
151: PRI ssypri;
152: W resblksz;
153: } TD_RSSY;
154:
155: 156: 157:
158: typedef struct td_rtsk {
159: void *exinf;
160: PRI tskpri;
161: PRI tskbpri;
162: UINT tskstat;
163: UW tskwait;
164: ID wid;
165: INT wupcnt;
166: INT suscnt;
167: FP task;
168: W stksz;
169: void *istack;
170: } TD_RTSK;
171:
172: 173: 174:
175: typedef struct td_itsk {
176: RELTIM stime; 177:
178: RELTIM utime; 179:
180: } TD_ITSK;
181:
182: 183: 184:
185: typedef struct td_rsys {
186: UINT sysstat;
187: ID runtskid;
188: ID schedtskid; 189:
190: } TD_RSYS;
191:
192: 193: 194:
195: typedef struct td_hsvc {
196: FP enter;
197: FP leave;
198: } TD_HSVC;
199:
200: 201: 202:
203: typedef struct td_hdsp {
204: FP exec;
205: FP stop;
206: } TD_HDSP;
207:
208: 209: 210:
211: typedef struct td_hint {
212: FP enter;
213: FP leave;
214: } TD_HINT;
215:
216:
217:
218: 219: 220:
221:
222:
223:
224:
225:
226: IMPORT INT td_lst_tsk( ID list[], INT nent );
227: IMPORT INT td_lst_sem( ID list[], INT nent );
228: IMPORT INT td_lst_flg( ID list[], INT nent );
229: IMPORT INT td_lst_mbx( ID list[], INT nent );
230: IMPORT INT td_lst_mtx( ID list[], INT nent );
231: IMPORT INT td_lst_mbf( ID list[], INT nent );
232: IMPORT INT td_lst_por( ID list[], INT nent );
233: IMPORT INT td_lst_mpf( ID list[], INT nent );
234: IMPORT INT td_lst_mpl( ID list[], INT nent );
235: IMPORT INT td_lst_cyc( ID list[], INT nent );
236: IMPORT INT td_lst_alm( ID list[], INT nent );
237: IMPORT INT td_lst_ssy( ID list[], INT nent );
238:
239:
240: IMPORT ER td_ref_sem( ID semid, TD_RSEM *rsem );
241: IMPORT ER td_ref_flg( ID flgid, TD_RFLG *rflg );
242: IMPORT ER td_ref_mbx( ID mbxid, TD_RMBX *rmbx );
243: IMPORT ER td_ref_mtx( ID mtxid, TD_RMTX *rmtx );
244: IMPORT ER td_ref_mbf( ID mbfid, TD_RMBF *rmbf );
245: IMPORT ER td_ref_por( ID porid, TD_RPOR *rpor );
246: IMPORT ER td_ref_mpf( ID mpfid, TD_RMPF *rmpf );
247: IMPORT ER td_ref_mpl( ID mplid, TD_RMPL *rmpl );
248: IMPORT ER td_ref_cyc( ID cycid, TD_RCYC *rcyc );
249: IMPORT ER td_ref_alm( ID almid, TD_RALM *ralm );
250: IMPORT ER td_ref_ssy( ID ssid, TD_RSSY *rssy );
251:
252:
253: IMPORT ER td_ref_tsk( ID tskid, TD_RTSK *rtsk );
254: IMPORT ER td_inf_tsk( ID tskid, TD_ITSK *itsk, BOOL clr );
255:
256: #if TK_SUPPORT_REGOPS
257: IMPORT ER td_get_reg( ID tskid, T_REGS *regs, T_EIT *eit, T_CREGS *cregs );
258: IMPORT ER td_set_reg( ID tskid, CONST T_REGS *regs, CONST T_EIT *eit, CONST T_CREGS *cregs );
259: #endif
260:
261:
262: IMPORT ER td_ref_sys( TD_RSYS *rsys );
263: IMPORT ER td_get_tim( SYSTIM *tim, UW *ofs );
264: IMPORT ER td_get_otm( SYSTIM *tim, UW *ofs );
265:
266:
267: IMPORT INT td_rdy_que( PRI pri, ID list[], INT nent );
268:
269:
270: IMPORT INT td_sem_que( ID semid, ID list[], INT nent );
271: IMPORT INT td_flg_que( ID flgid, ID list[], INT nent );
272: IMPORT INT td_mbx_que( ID mbxid, ID list[], INT nent );
273: IMPORT INT td_mtx_que( ID mtxid, ID list[], INT nent );
274: IMPORT INT td_smbf_que( ID mbfid, ID list[], INT nent );
275: IMPORT INT td_rmbf_que( ID mbfid, ID list[], INT nent );
276: IMPORT INT td_cal_que( ID porid, ID list[], INT nent );
277: IMPORT INT td_acp_que( ID porid, ID list[], INT nent );
278: IMPORT INT td_mpf_que( ID mpfid, ID list[], INT nent );
279: IMPORT INT td_mpl_que( ID mplid, ID list[], INT nent );
280:
281:
282: IMPORT ER td_hok_svc( CONST TD_HSVC *hsvc );
283: IMPORT ER td_hok_dsp( CONST TD_HDSP *hdsp );
284: IMPORT ER td_hok_int( CONST TD_HINT *hint );
285:
286:
287: IMPORT ER td_ref_dsname( UINT type, ID id, UB *dsname );
288: IMPORT ER td_set_dsname( UINT type, ID id, CONST UB *dsname );
289:
290:
291:
292: #ifdef __cplusplus
293: }
294: #endif
295: #endif