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