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.h の 234 行で定義されています。

#define CHECK_CYCID (  ccb,
cycid   ) 
 

値:

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

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

 
#define CHECK_DISPATCH (   ) 
 

値:

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

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

#define CHECK_DTQID (  ccb,
dtqid   ) 
 

値:

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

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

#define CHECK_FLGID (  ccb,
flgid   ) 
 

値:

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

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

#define CHECK_ILUSE (  exp   ) 
 

値:

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

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

 
#define CHECK_INTCTX (   ) 
 

値:

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

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

 
#define CHECK_INTCTX_UNL (   ) 
 

値:

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

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

#define CHECK_MBXID (  ccb,
mbxid   ) 
 

値:

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

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

#define CHECK_MPFID (  ccb,
mpfid   ) 
 

値:

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

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

#define CHECK_NONSELF (  tcb   ) 
 

値:

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

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

#define CHECK_PAR (  exp   ) 
 

値:

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

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

#define CHECK_SEMID (  ccb,
semid   ) 
 

値:

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

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

#define CHECK_TMOUT (  tmout   ) 
 

値:

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

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

#define CHECK_TPRI (  tpri   ) 
 

値:

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

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

#define CHECK_TPRI_INI (  tpri   ) 
 

値:

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

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

#define CHECK_TPRI_SELF (  tpri   ) 
 

値:

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

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

 
#define CHECK_TSKCTX (   ) 
 

値:

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

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

 
#define CHECK_TSKCTX_UNL (   ) 
 

値:

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

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

#define CHECK_TSKID (  ccb,
tskid   ) 
 

値:

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

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

#define CHECK_TSKID_SELF (  ccb,
tskid   ) 
 

値:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

優先度の範囲の判定

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

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

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

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


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