gonzui


Format: Advanced Search

tkernel_2/kernel/tkernel/src/isyscall.hbare sourcepermlink (0.07 seconds)

Search this content:

    1: /*
    2:  *----------------------------------------------------------------------
    3:  *    T-Kernel 2.0 Software Package
    4:  *
    5:  *    Copyright 2011 by Ken Sakamura.
    6:  *    This software is distributed under the latest version of T-License 2.x.
    7:  *----------------------------------------------------------------------
    8:  *
    9:  *    Released by T-Engine Forum(http://www.t-engine.org/) at 2011/05/17.
   10:  *    Modified by T-Engine Forum at 2013/04/16.
   11:  *    Modified by TRON Forum(http://www.tron.org/) at 2015/06/01.
   12:  *
   13:  *----------------------------------------------------------------------
   14:  */
   15: 
   16: /*
   17:  *      isyscall.h (T-Kernel/OS)
   18:  *      System Call Int. Format Definition
   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: /* T-Kernel/OS */
   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: /* T-Kernel/DS */
  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: /* T-Kernel/SM */
  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 /* _ISYSCALL_ */