check.h

エラーチェック用マクロ [詳細]

このグラフは、どのファイルから直接、間接的にインクルードされているかを示しています。

ソースコードを見る。

マクロ定義

#define VALID_TPRI(tpri)   (TMIN_TPRI <= (tpri) && (tpri) <= TMAX_TPRI)
 優先度の範囲の判定
#define CHECK_TPRI(tpri)
 タスク優先度のチェック(E_PAR)
#define CHECK_TPRI_INI(tpri)
#define CHECK_TPRI_SELF(tpri)
#define CHECK_TMOUT(tmout)
 タイムアウト指定値のチェック(E_PAR)
#define CHECK_PAR(exp)
 その他のパラメータエラーのチェック(E_PAR)
#define VALID_TSKID(cbtcb, tskid)   (TMIN_ID <= (tskid) && (tskid) <= (cbtcb).max_id)
 オブジェクトIDの範囲の判定
#define VALID_SEMID(cbtcb, semid)   (TMIN_ID <= (semid) && (semid) <= (cbtcb).max_id)
#define VALID_FLGID(cbtcb, flgid)   (TMIN_ID <= (flgid) && (flgid) <= (cbtcb).max_id)
#define VALID_DTQID(cbtcb, dtqid)   (TMIN_ID <= (dtqid) && (dtqid) <= (cbtcb).max_id)
#define VALID_MBXID(cbtcb, mbxid)   (TMIN_ID <= (mbxid) && (mbxid) <= (cbtcb).max_id)
#define VALID_MPFID(cbtcb, mpfid)   (TMIN_ID <= (mpfid) && (mpfid) <= (cbtcb).max_id)
#define VALID_CYCID(cbtcb, cycid)   (TMIN_ID <= (cycid) && (cycid) <= (cbtcb).max_id)
#define CHECK_TSKID(ccb, tskid)
#define CHECK_TSKID_SELF(ccb, tskid)
#define CHECK_SEMID(ccb, semid)
#define CHECK_FLGID(ccb, flgid)
#define CHECK_DTQID(ccb, dtqid)
#define CHECK_MBXID(ccb, mbxid)
#define CHECK_MPFID(ccb, mpfid)
#define CHECK_CYCID(ccb, cycid)
#define CHECK_TSKCTX()
#define CHECK_INTCTX()
#define CHECK_TSKCTX_UNL()
#define CHECK_INTCTX_UNL()
#define CHECK_DISPATCH()
 ディスパッチ保留状態でないかのチェック(E_CTX)
#define CHECK_CTX(exp)
 その他のコンテキストエラーのチェック(E_CTX)
#define CHECK_NONSELF(tcb)
 自タスクを指定していないかのチェック(E_ILUSE)
#define CHECK_ILUSE(exp)
 その他の不正使用エラーのチェック(E_ILUSE)


説明

エラーチェック用マクロ

FDMP化による変更

  • オブジェクトIDの範囲の判定 tmax_xxxではなく,ccb内のエントリを見てチェックを行う.
  • オブジェクトIDのチェック ccbを引数として受け,それを引数にVALID_XXIDを呼び出す.

check.h で定義されています。


マクロ定義

#define CHECK_CTX exp   ) 
 

値:

{                   \
    if (!(exp)) {                       \
        ercd = E_CTX;                   \
        goto exit;                  \
    }                           \
}
その他のコンテキストエラーのチェック(E_CTX)

check.h234 行で定義されています。

#define CHECK_CYCID ccb,
cycid   ) 
 

値:

{                   \
    if (!VALID_CYCID(ccb->cyc, cycid)) {                \
        ercd = E_ID;                    \
        goto exit;                  \
    }                           \
}

check.h180 行で定義されています。

 
#define CHECK_DISPATCH  ) 
 

値:

{                   \
    if (sense_context() || t_sense_lock() || !(enadsp)) {   \
        ercd = E_CTX;                   \
        goto exit;                  \
    }                           \
}
ディスパッチ保留状態でないかのチェック(E_CTX)

check.h224 行で定義されています。

#define CHECK_DTQID ccb,
dtqid   ) 
 

値:

{                   \
    if (!VALID_DTQID(ccb->dtq, dtqid)) {                \
        ercd = E_ID;                    \
        goto exit;                  \
    }                           \
}

check.h159 行で定義されています。

#define CHECK_FLGID ccb,
flgid   ) 
 

値:

{                   \
    if (!VALID_FLGID(ccb->sem, flgid)) {                \
        ercd = E_ID;                    \
        goto exit;                  \
    }                           \
}

check.h152 行で定義されています。

#define CHECK_ILUSE exp   ) 
 

値:

{                   \
    if (!(exp)) {                       \
        ercd = E_ILUSE;                 \
        goto exit;                  \
    }                           \
}
その他の不正使用エラーのチェック(E_ILUSE)

check.h254 行で定義されています。

 
#define CHECK_INTCTX  ) 
 

値:

{                   \
    if (!sense_context()) {                 \
        ercd = E_CTX;                   \
        goto exit;                  \
    }                           \
}

check.h197 行で定義されています。

 
#define CHECK_INTCTX_UNL  ) 
 

値:

{                   \
    if (!sense_context() || i_sense_lock()) {       \
        ercd = E_CTX;                   \
        goto exit;                  \
    }                           \
}

check.h214 行で定義されています。

#define CHECK_MBXID ccb,
mbxid   ) 
 

値:

{                   \
    if (!VALID_MBXID(ccb->mbx, mbxid)) {                \
        ercd = E_ID;                    \
        goto exit;                  \
    }                           \
}

check.h166 行で定義されています。

#define CHECK_MPFID ccb,
mpfid   ) 
 

値:

{                   \
    if (!VALID_MPFID(ccb->mpf, mpfid)) {                \
        ercd = E_ID;                    \
        goto exit;                  \
    }                           \
}

check.h173 行で定義されています。

#define CHECK_NONSELF tcb   ) 
 

値:

{                   \
    if ((tcb) == runtsk) {                  \
        ercd = E_ILUSE;                 \
        goto exit;                  \
    }                           \
}
自タスクを指定していないかのチェック(E_ILUSE)

check.h244 行で定義されています。

#define CHECK_PAR exp   ) 
 

値:

{                   \
    if (!(exp)) {                       \
        ercd = E_PAR;                   \
        goto exit;                  \
    }                           \
}
その他のパラメータエラーのチェック(E_PAR)

check.h97 行で定義されています。

#define CHECK_SEMID ccb,
semid   ) 
 

値:

{                   \
    if (!VALID_SEMID(ccb->sem, semid)) {                \
        ercd = E_ID;                    \
        goto exit;                  \
    }                           \
}

check.h145 行で定義されています。

#define CHECK_TMOUT tmout   ) 
 

値:

{                   \
    if (!(TMO_FEVR <= (tmout))) {               \
        ercd = E_PAR;                   \
        goto exit;                  \
    }                           \
}
タイムアウト指定値のチェック(E_PAR)

check.h87 行で定義されています。

#define CHECK_TPRI tpri   ) 
 

値:

{                   \
    if (!VALID_TPRI(tpri)) {                \
        ercd = E_PAR;                   \
        goto exit;                  \
    }                           \
}
タスク優先度のチェック(E_PAR)

check.h63 行で定義されています。

#define CHECK_TPRI_INI tpri   ) 
 

値:

{                   \
    if (!(VALID_TPRI(tpri) || (tpri) == TPRI_INI)) {    \
        ercd = E_PAR;                   \
        goto exit;                  \
    }                           \
}

check.h70 行で定義されています。

#define CHECK_TPRI_SELF tpri   ) 
 

値:

{                   \
    if (!(VALID_TPRI(tpri) || (tpri) == TPRI_SELF)) {   \
        ercd = E_PAR;                   \
        goto exit;                  \
    }                           \
}

check.h77 行で定義されています。

 
#define CHECK_TSKCTX  ) 
 

値:

{                   \
    if (sense_context()) {                  \
        ercd = E_CTX;                   \
        goto exit;                  \
    }                           \
}

check.h190 行で定義されています。

 
#define CHECK_TSKCTX_UNL  ) 
 

値:

{                   \
    if (sense_context() || t_sense_lock()) {        \
        ercd = E_CTX;                   \
        goto exit;                  \
    }                           \
}

check.h207 行で定義されています。

#define CHECK_TSKID ccb,
tskid   ) 
 

値:

{               \
    if (!VALID_TSKID(ccb->tsk, tskid)) {            \
        ercd = E_ID;                    \
        goto exit;                  \
    }                           \
}

check.h131 行で定義されています。

#define CHECK_TSKID_SELF ccb,
tskid   ) 
 

値:

{           \
    if (!(VALID_TSKID(ccb->tsk, tskid) || (tskid) == TSK_SELF)) {   \
        ercd = E_ID;                    \
        goto exit;                  \
    }                           \
}

check.h138 行で定義されています。

#define VALID_CYCID cbtcb,
cycid   )     (TMIN_ID <= (cycid) && (cycid) <= (cbtcb).max_id)
 

check.h125 行で定義されています。

#define VALID_DTQID cbtcb,
dtqid   )     (TMIN_ID <= (dtqid) && (dtqid) <= (cbtcb).max_id)
 

check.h116 行で定義されています。

#define VALID_FLGID cbtcb,
flgid   )     (TMIN_ID <= (flgid) && (flgid) <= (cbtcb).max_id)
 

check.h113 行で定義されています。

#define VALID_MBXID cbtcb,
mbxid   )     (TMIN_ID <= (mbxid) && (mbxid) <= (cbtcb).max_id)
 

check.h119 行で定義されています。

#define VALID_MPFID cbtcb,
mpfid   )     (TMIN_ID <= (mpfid) && (mpfid) <= (cbtcb).max_id)
 

check.h122 行で定義されています。

#define VALID_SEMID cbtcb,
semid   )     (TMIN_ID <= (semid) && (semid) <= (cbtcb).max_id)
 

check.h110 行で定義されています。

#define VALID_TPRI tpri   )     (TMIN_TPRI <= (tpri) && (tpri) <= TMAX_TPRI)
 

優先度の範囲の判定

check.h57 行で定義されています。

#define VALID_TSKID cbtcb,
tskid   )     (TMIN_ID <= (tskid) && (tskid) <= (cbtcb).max_id)
 

オブジェクトIDの範囲の判定

check.h107 行で定義されています。


Copyright © 2006 by TAKAGI Nobuhisa.
このページは Mon Apr 3 23:49:13 2006 に Doxygen によって生成されました。