1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
15:
16: 17: 18: 19:
20:
21: #ifndef _ISYSCALL_
22: #define _ISYSCALL_
23:
24:
25:
26: #if TA_GP
27: # define _CALL(p1, p2, p3, hdr, cb) \
28: CallUserHandler((INT)(p1), (INT)(p2), (INT)(p3), (FP)(hdr), (cb)->gp)
29: # define CallUserHandlerP1( p1, hdr, cb) _CALL(p1, 0, 0, hdr, cb)
30: # define CallUserHandlerP2( p1, p2, hdr, cb) _CALL(p1, p2, 0, hdr, cb)
31: # define CallUserHandlerP3( p1, p2, p3, hdr, cb) _CALL(p1, p2, p3, hdr, cb)
32: # define CallUserHandlerP2_GP(p1, p2, hdr, cb) _CALL(p1, p2, gp, hdr, cb)
33: #else
34: # define CallUserHandlerP1( p1, hdr, cb) (*(hdr))(p1)
35: # define CallUserHandlerP2( p1, p2, hdr, cb) (*(hdr))(p1, p2)
36: # define CallUserHandlerP3( p1, p2, p3, hdr, cb) (*(hdr))(p1, p2, p3)
37: # define CallUserHandlerP2_GP(p1, p2, hdr, cb) (*(hdr))(p1, p2)
38: #endif
39:
40:
41:
42: #if TA_GP
43: #define P0(void) ( int _1,int _2,int _3,int _4,int _5, void *gp )
44: #define P1(p1) ( p1, int _2,int _3,int _4,int _5, void *gp )
45: #define P2(p1, p2) ( p1, p2, int _3,int _4,int _5, void *gp )
46: #define P3(p1, p2, p3) ( p1, p2, p3, int _4,int _5, void *gp )
47: #define P4(p1, p2, p3, p4) ( p1, p2, p3, p4, int _5, void *gp )
48: #define P5(p1, p2, p3, p4, p5) ( p1, p2, p3, p4, p5, void *gp )
49: #define P2GP(p1, p2) ( p1, p2, void *gp )
50: #else
51: #define P0(void) ( void )
52: #define P1(p1) ( p1 )
53: #define P2(p1, p2) ( p1, p2 )
54: #define P3(p1, p2, p3) ( p1, p2, p3 )
55: #define P4(p1, p2, p3, p4) ( p1, p2, p3, p4 )
56: #define P5(p1, p2, p3, p4, p5) ( p1, p2, p3, p4, p5 )
57: #define P2GP(p1, p2) ( p1, p2 )
58: #endif
59:
60:
61:
62:
63: IMPORT ID _tk_cre_tsk P1( CONST T_CTSK *pk_ctsk );
64: IMPORT ER _tk_del_tsk( ID tskid );
65: IMPORT ER _tk_sta_tsk( ID tskid, INT stacd );
66: IMPORT void _tk_ext_tsk( void );
67: IMPORT void _tk_exd_tsk( void );
68: IMPORT ER _tk_ter_tsk( ID tskid );
69: IMPORT ER _tk_dis_dsp( void );
70: IMPORT ER _tk_ena_dsp( void );
71: IMPORT ER _tk_chg_pri( ID tskid, PRI tskpri );
72: IMPORT ER _tk_chg_slt( ID tskid, RELTIM slicetime );
73: IMPORT ER _tk_rot_rdq( PRI tskpri );
74: IMPORT ER _tk_rel_wai( ID tskid );
75: IMPORT ID _tk_get_tid( void );
76: IMPORT ER _tk_get_tsp( ID tskid, T_TSKSPC *pk_tskspc );
77: IMPORT ER _tk_set_tsp( ID tskid, CONST T_TSKSPC *pk_tskspc );
78: IMPORT ID _tk_get_rid( ID tskid );
79: IMPORT ID _tk_set_rid( ID tskid, ID resid );
80: IMPORT ER _tk_get_reg( ID tskid, T_REGS *pk_regs, T_EIT *pk_eit, T_CREGS *pk_cregs );
81: IMPORT ER _tk_set_reg( ID tskid, CONST T_REGS *pk_regs, CONST T_EIT *pk_eit, CONST T_CREGS *pk_cregs );
82: IMPORT ER _tk_get_cpr( ID tskid, INT copno, T_COPREGS *pk_copregs );
83: IMPORT ER _tk_set_cpr( ID tskid, INT copno, CONST T_COPREGS *pk_copregs );
84: IMPORT ER _tk_inf_tsk( ID tskid, T_ITSK *pk_itsk, BOOL clr );
85: IMPORT ER _tk_ref_tsk( ID tskid, T_RTSK *pk_rtsk );
86: IMPORT ER _tk_def_tex( ID tskid, CONST T_DTEX *pk_dtex );
87: IMPORT ER _tk_ena_tex( ID tskid, UINT texptn );
88: IMPORT ER _tk_dis_tex( ID tskid, UINT texptn );
89: IMPORT ER _tk_ras_tex( ID tskid, INT texcd );
90: IMPORT INT _tk_end_tex( BOOL enatex );
91: IMPORT ER _tk_ref_tex( ID tskid, T_RTEX *pk_rtex );
92: IMPORT ER _tk_sus_tsk( ID tskid );
93: IMPORT ER _tk_rsm_tsk( ID tskid );
94: IMPORT ER _tk_frsm_tsk( ID tskid );
95: IMPORT ER _tk_slp_tsk( TMO tmout );
96: IMPORT ER _tk_wup_tsk( ID tskid );
97: IMPORT INT _tk_can_wup( ID tskid );
98: IMPORT ER _tk_sig_tev( ID tskid, INT tskevt );
99: IMPORT INT _tk_wai_tev( INT waiptn, TMO tmout );
100: IMPORT INT _tk_dis_wai( ID tskid, UINT waitmask );
101: IMPORT ER _tk_ena_wai( ID tskid );
102: IMPORT ER _tk_chg_slt_u( ID tskid, RELTIM_U slicetime_u );
103: IMPORT ER _tk_inf_tsk_u( ID tskid, T_ITSK_U *pk_itsk_u, BOOL clr );
104: IMPORT ER _tk_ref_tsk_u( ID tskid, T_RTSK_U *pk_rtsk_u );
105: IMPORT ER _tk_slp_tsk_u( TMO_U tmout_u );
106: IMPORT INT _tk_wai_tev_u( INT waiptn, TMO_U tmout_u );
107: IMPORT ER _tk_set_tim_u( SYSTIM_U tim_u );
108: IMPORT ER _tk_get_tim_u( SYSTIM_U *tim_u, UINT *ofs );
109: IMPORT ER _tk_get_otm_u( SYSTIM_U *tim_u, UINT *ofs );
110: IMPORT ER _tk_dly_tsk_u( RELTIM_U dlytim_u );
111:
112: #ifdef NUM_SEMID
113: IMPORT ID _tk_cre_sem( CONST T_CSEM *pk_csem );
114: IMPORT ER _tk_del_sem( ID semid );
115: IMPORT ER _tk_sig_sem( ID semid, INT cnt );
116: IMPORT ER _tk_wai_sem( ID semid, INT cnt, TMO tmout );
117: IMPORT ER _tk_ref_sem( ID semid, T_RSEM *pk_rsem );
118: IMPORT ER _tk_wai_sem_u( ID semid, INT cnt, TMO_U tmout_u );
119:
120: IMPORT INT _td_lst_sem( ID list[], INT nent );
121: IMPORT ER _td_ref_sem( ID semid, TD_RSEM *rsem );
122: IMPORT INT _td_sem_que( ID semid, ID list[], INT nent );
123: #endif
124:
125: #ifdef NUM_MTXID
126: IMPORT ID _tk_cre_mtx( CONST T_CMTX *pk_cmtx );
127: IMPORT ER _tk_del_mtx( ID mtxid );
128: IMPORT ER _tk_loc_mtx( ID mtxid, TMO tmout );
129: IMPORT ER _tk_unl_mtx( ID mtxid );
130: IMPORT ER _tk_ref_mtx( ID mtxid, T_RMTX *pk_rmtx );
131: IMPORT ER _tk_loc_mtx_u( ID mtxid, TMO_U tmout_u );
132:
133: IMPORT INT _td_lst_mtx( ID list[], INT nent );
134: IMPORT ER _td_ref_mtx( ID mtxid, TD_RMTX *rmtx );
135: IMPORT INT _td_mtx_que( ID mtxid, ID list[], INT nent );
136: #endif
137:
138: #ifdef NUM_FLGID
139: IMPORT ID _tk_cre_flg( CONST T_CFLG *pk_cflg );
140: IMPORT ER _tk_del_flg( ID flgid );
141: IMPORT ER _tk_set_flg( ID flgid, UINT setptn );
142: IMPORT ER _tk_clr_flg( ID flgid, UINT clrptn );
143: IMPORT ER _tk_wai_flg( ID flgid, UINT waiptn, UINT wfmode, UINT *p_flgptn, TMO tmout );
144: IMPORT ER _tk_ref_flg( ID flgid, T_RFLG *pk_rflg );
145: IMPORT ER _tk_wai_flg_u( ID flgid, UINT waiptn, UINT wfmode, UINT *p_flgptn, TMO_U tmout_u );
146:
147: IMPORT INT _td_lst_flg( ID list[], INT nent );
148: IMPORT ER _td_ref_flg( ID flgid, TD_RFLG *rflg );
149: IMPORT INT _td_flg_que( ID flgid, ID list[], INT nent );
150: #endif
151:
152: #ifdef NUM_MBXID
153: IMPORT ID _tk_cre_mbx( CONST T_CMBX* pk_cmbx );
154: IMPORT ER _tk_del_mbx( ID mbxid );
155: IMPORT ER _tk_snd_mbx( ID mbxid, T_MSG *pk_msg );
156: IMPORT ER _tk_rcv_mbx( ID mbxid, T_MSG **ppk_msg, TMO tmout );
157: IMPORT ER _tk_ref_mbx( ID mbxid, T_RMBX *pk_rmbx );
158: IMPORT ER _tk_rcv_mbx_u( ID mbxid, T_MSG **ppk_msg, TMO_U tmout_u );
159:
160: IMPORT INT _td_lst_mbx( ID list[], INT nent );
161: IMPORT ER _td_ref_mbx( ID mbxid, TD_RMBX *rmbx );
162: IMPORT INT _td_mbx_que( ID mbxid, ID list[], INT nent );
163: #endif
164:
165: #ifdef NUM_MBFID
166: IMPORT ID _tk_cre_mbf( CONST T_CMBF *pk_cmbf );
167: IMPORT ER _tk_del_mbf( ID mbfid );
168: IMPORT ER _tk_snd_mbf( ID mbfid, CONST void *msg, INT msgsz, TMO tmout );
169: IMPORT INT _tk_rcv_mbf( ID mbfid, void *msg, TMO tmout );
170: IMPORT ER _tk_ref_mbf( ID mbfid, T_RMBF *pk_rmbf );
171: IMPORT ER _tk_snd_mbf_u( ID mbfid, CONST void *msg, INT msgsz, TMO_U tmout_u );
172: IMPORT INT _tk_rcv_mbf_u( ID mbfid, void *msg, TMO_U tmout_u );
173:
174: IMPORT INT _td_lst_mbf( ID list[], INT nent );
175: IMPORT ER _td_ref_mbf( ID mbfid, TD_RMBF *rmbf );
176: IMPORT INT _td_smbf_que( ID mbfid, ID list[], INT nent );
177: IMPORT INT _td_rmbf_que( ID mbfid, ID list[], INT nent );
178: #endif
179:
180: #ifdef NUM_PORID
181: IMPORT ID _tk_cre_por( CONST T_CPOR *pk_cpor );
182: IMPORT ER _tk_del_por( ID porid );
183: IMPORT INT _tk_cal_por( ID porid, UINT calptn, void *msg, INT cmsgsz, TMO tmout );
184: IMPORT INT _tk_acp_por( ID porid, UINT acpptn, RNO *p_rdvno, void *msg, TMO tmout );
185: IMPORT ER _tk_fwd_por( ID porid, UINT calptn, RNO rdvno, CONST void *msg, INT cmsgsz );
186: IMPORT ER _tk_rpl_rdv( RNO rdvno, CONST void *msg, INT rmsgsz );
187: IMPORT ER _tk_ref_por( ID porid, T_RPOR *pk_rpor );
188: IMPORT INT _tk_cal_por_u( ID porid, UINT calptn, void *msg, INT cmsgsz, TMO_U tmout_u );
189: IMPORT INT _tk_acp_por_u( ID porid, UINT acpptn, RNO *p_rdvno, void *msg, TMO_U tmout_u );
190:
191: IMPORT INT _td_lst_por( ID list[], INT nent );
192: IMPORT ER _td_ref_por( ID porid, TD_RPOR *rpor );
193: IMPORT INT _td_cal_que( ID porid, ID list[], INT nent );
194: IMPORT INT _td_acp_que( ID porid, ID list[], INT nent );
195: #endif
196:
197: IMPORT ER _tk_def_int P2( UINT dintno, CONST T_DINT *pk_dint );
198: IMPORT void _tk_ret_int( void );
199:
200: #ifdef NUM_MPLID
201: IMPORT ID _tk_cre_mpl( CONST T_CMPL *pk_cmpl );
202: IMPORT ER _tk_del_mpl( ID mplid );
203: IMPORT ER _tk_get_mpl( ID mplid, INT blksz, void **p_blk, TMO tmout );
204: IMPORT ER _tk_rel_mpl( ID mplid, void *blk );
205: IMPORT ER _tk_ref_mpl( ID mplid, T_RMPL *pk_rmpl );
206: IMPORT ER _tk_get_mpl_u( ID mplid, INT blksz, void **p_blk, TMO_U tmout_u );
207:
208: IMPORT INT _td_lst_mpl( ID list[], INT nent );
209: IMPORT ER _td_ref_mpl( ID mplid, TD_RMPL *rmpl );
210: IMPORT INT _td_mpl_que( ID mplid, ID list[], INT nent );
211: #endif
212:
213: #ifdef NUM_MPFID
214: IMPORT ID _tk_cre_mpf( CONST T_CMPF *pk_cmpf );
215: IMPORT ER _tk_del_mpf( ID mpfid );
216: IMPORT ER _tk_get_mpf( ID mpfid, void **p_blf, TMO tmout );
217: IMPORT ER _tk_rel_mpf( ID mpfid, void *blf );
218: IMPORT ER _tk_ref_mpf( ID mpfid, T_RMPF *pk_rmpf );
219: IMPORT ER _tk_get_mpf_u( ID mpfid, void **p_blf, TMO_U tmout_u );
220:
221: IMPORT INT _td_lst_mpf( ID list[], INT nent );
222: IMPORT ER _td_ref_mpf( ID mpfid, TD_RMPF *rmpf );
223: IMPORT INT _td_mpf_que( ID mpfid, ID list[], INT nent );
224: #endif
225:
226: IMPORT ER _tk_set_tim( CONST SYSTIM *pk_tim );
227: IMPORT ER _tk_get_tim( SYSTIM *pk_tim );
228: IMPORT ER _tk_get_otm( SYSTIM *pk_tim );
229: IMPORT ER _tk_dly_tsk( RELTIM dlytim );
230:
231: #ifdef NUM_CYCID
232: IMPORT ID _tk_cre_cyc P1( CONST T_CCYC *pk_ccyc );
233: IMPORT ER _tk_del_cyc( ID cycid );
234: IMPORT ER _tk_sta_cyc( ID cycid );
235: IMPORT ER _tk_stp_cyc( ID cycid );
236: IMPORT ER _tk_ref_cyc( ID cycid, T_RCYC *pk_rcyc );
237: IMPORT ID _tk_cre_cyc_u( CONST T_CCYC_U *pk_ccyc_u );
238: IMPORT ER _tk_ref_cyc_u( ID cycid, T_RCYC_U *pk_rcyc_u );
239:
240: IMPORT INT _td_lst_cyc( ID list[], INT nent );
241: IMPORT ER _td_ref_cyc( ID cycid, TD_RCYC *rcyc );
242: IMPORT ER _td_ref_cyc_u( ID cycid, TD_RCYC_U *rcyc_u );
243: #endif
244:
245: #ifdef NUM_ALMID
246: IMPORT ID _tk_cre_alm P1( CONST T_CALM *pk_calm );
247: IMPORT ER _tk_del_alm( ID almid );
248: IMPORT ER _tk_sta_alm( ID almid, RELTIM almtim );
249: IMPORT ER _tk_stp_alm( ID almid );
250: IMPORT ER _tk_ref_alm( ID almid, T_RALM *pk_ralm );
251: IMPORT ER _tk_sta_alm_u( ID almid, RELTIM_U almtim_u );
252: IMPORT ER _tk_ref_alm_u( ID almid, T_RALM_U *pk_ralm_u );
253:
254: IMPORT INT _td_lst_alm( ID list[], INT nent );
255: IMPORT ER _td_ref_alm( ID almid, TD_RALM *ralm );
256: IMPORT ER _td_ref_alm_u( ID almid, TD_RALM_U *ralm_u );
257: #endif
258:
259: IMPORT ER _tk_ref_ver( T_RVER *pk_rver );
260: IMPORT ER _tk_ref_sys( T_RSYS *pk_rsys );
261: IMPORT ER _tk_def_ssy P2( ID ssid, CONST T_DSSY *pk_dssy );
262: IMPORT ER _tk_sta_ssy( ID ssid, ID resid, INT info );
263: IMPORT ER _tk_cln_ssy( ID ssid, ID resid, INT info );
264: IMPORT ER _tk_evt_ssy( ID ssid, INT evttyp, ID resid, INT info );
265: IMPORT ER _tk_ref_ssy( ID ssid, T_RSSY *pk_rssy );
266: IMPORT ID _tk_cre_res( void );
267: IMPORT ER _tk_del_res( ID resid );
268: IMPORT ER _tk_get_res( ID resid, ID ssid, void **p_resblk );
269: IMPORT ER _tk_set_pow( UINT powmode );
270:
271:
272: IMPORT INT _td_lst_tsk( ID list[], INT nent );
273: IMPORT INT _td_lst_ssy( ID list[], INT nent );
274: IMPORT ER _td_ref_ssy( ID ssid, TD_RSSY *rssy );
275: IMPORT ER _td_ref_tsk( ID tskid, TD_RTSK *rtsk );
276: IMPORT ER _td_ref_tex( ID tskid, TD_RTEX *rtex );
277: IMPORT ER _td_inf_tsk( ID tskid, TD_ITSK *itsk, BOOL clr );
278: IMPORT ER _td_get_reg( ID tskid, T_REGS *regs, T_EIT *eit, T_CREGS *cregs );
279: IMPORT ER _td_set_reg( ID tskid, CONST T_REGS *regs, CONST T_EIT *eit, CONST T_CREGS *cregs );
280: IMPORT ER _td_ref_sys( TD_RSYS *rsys );
281: IMPORT ER _td_get_tim( SYSTIM *tim, UINT *ofs );
282: IMPORT ER _td_get_otm( SYSTIM *tim, UINT *ofs );
283: IMPORT INT _td_rdy_que( PRI pri, ID list[], INT nent );
284: IMPORT ER _td_hok_svc( CONST TD_HSVC *hsvc );
285: IMPORT ER _td_hok_dsp( CONST TD_HDSP *hdsp );
286: IMPORT ER _td_hok_int( CONST TD_HINT *hint );
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: IMPORT ER _td_ref_tsk_u( ID tskid, TD_RTSK_U *rtsk_u );
290: IMPORT ER _td_inf_tsk_u( ID tskid, TD_ITSK_U *itsk_u, BOOL clr );
291: IMPORT ER _td_get_tim_u( SYSTIM_U *tim_u, UINT *ofs );
292: IMPORT ER _td_get_otm_u( SYSTIM_U *tim_u, UINT *ofs );
293:
294:
295: IMPORT INT _tk_get_cfn( UB *name, INT *val, INT max );
296: IMPORT INT _tk_get_cfs( UB *name, UB *buf, INT max );
297:
298: #endif