⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 check.h

📁 日本著名的的嵌入式实时操作系统T-Kernel的源码及用户手册。
💻 H
字号:
/* *---------------------------------------------------------------------- *    T-Kernel * *    Copyright (C) 2004 by Ken Sakamura. All rights reserved. *    T-Kernel is distributed under the T-License. *---------------------------------------------------------------------- * *    Version:   1.01.00 *    Released by T-Engine Forum(http://www.t-engine.org) at 2004/6/28. * *---------------------------------------------------------------------- *//* *	check.h (T-Kernel/OS) *	Macro for Error Check  */#ifndef _CHECK_#define _CHECK_/* * Check object ID range (E_ID) */#ifdef CHK_ID#define CHECK_TSKID(tskid) {					\	if (!CHK_TSKID(tskid)) {				\		return E_ID;					\	}							\}#define CHECK_TSKID_SELF(tskid) {				\	if ( !( (!in_indp() && (tskid) == TSK_SELF)		\		|| CHK_TSKID(tskid) ) ) {			\		return E_ID;					\	}							\}#define CHECK_SEMID(semid) {					\	if (!CHK_SEMID(semid)) {				\		return E_ID;					\	}							\}#define CHECK_FLGID(flgid) {					\	if (!CHK_FLGID(flgid)) {				\		return E_ID;					\	}							\}#define CHECK_MBXID(mbxid) {					\	if (!CHK_MBXID(mbxid)) {				\		return E_ID;					\	}							\}#define CHECK_MBFID(mbfid) {					\	if (!CHK_MBFID(mbfid)) {				\		return E_ID;					\	}							\}#define CHECK_PORID(porid) {					\	if (!CHK_PORID(porid)) {				\		return E_ID;					\	}							\}#define CHECK_MTXID(pisid) {					\	if (!CHK_MTXID(pisid)) {				\		return E_ID;					\	}							\}#define CHECK_MPLID(mplid) {					\	if (!CHK_MPLID(mplid)) {				\		return E_ID;					\	}							\}#define CHECK_MPFID(mpfid) {					\	if (!CHK_MPFID(mpfid)) {				\		return E_ID;					\	}							\}#define CHECK_CYCID(cycid) {					\	if (!CHK_CYCID(cycid)) {				\		return E_ID;					\	}							\}#define CHECK_ALMID(almid) {					\	if (!CHK_ALMID(almid)) {				\		return E_ID;					\	}							\}#define CHECK_RESID(resid) {					\	if (!CHK_RESID(resid)) {				\		return E_ID;					\	}							\}#define CHECK_RESID_ANY(resid) {				\	if (!(CHK_RESID(resid) || (resid) == 0)) {		\		return E_ID;					\	}							\}#define CHECK_SSYID(ssid) {					\	if (!CHK_SSYID(ssid)) {					\		return E_ID;					\	}							\}#define CHECK_SSYID_ALL(ssid) {					\	if (!(CHK_SSYID(ssid) || (ssid) == 0)) {		\		return E_ID;					\	}							\}#else /* CHK_ID */#define CHECK_TSKID(tskid)#define CHECK_TSKID_SELF(tskid)#define CHECK_SEMID(semid)#define CHECK_FLGID(flgid)#define CHECK_MBXID(mbxid)#define CHECK_MBFID(mbfid)#define CHECK_PORID(porid)#define CHECK_MTXID(pisid)#define CHECK_MPLID(mplid)#define CHECK_MPFID(mpfid)#define CHECK_CYCID(cycid)#define CHECK_ALMID(almid)#define CHECK_RESID(resid)#define CHECK_RESID_ANY(resid)#define CHECK_SSYID(ssid)#define CHECK_SSYID_ALL(ssid)#endif /* CHK_ID *//* * Check whether its own task is specified (E_OBJ) */#ifdef CHK_SELF#define CHECK_NONSELF(tskid) {					\	if (!in_indp() && (tskid) == ctxtsk->tskid) {		\		return E_OBJ;					\	}							\}#else /* CHK_SELF */#define CHECK_NONSELF(tskid)#endif /* CHK_SELF *//* * Check task priority value (E_PAR) */#ifdef CHK_PAR#define CHECK_PRI(pri) {					\	if (!CHK_PRI(pri)) {					\		return E_PAR;					\	}							\}#define CHECK_PRI_INI(pri) {					\	if ((pri) != TPRI_INI && !CHK_PRI(pri)) {		\		return E_PAR;					\	}							\}#define CHECK_PRI_RUN(pri) {					\	if ((pri) != TPRI_RUN && !CHK_PRI(pri)) {		\		return E_PAR;					\	}							\}#else /* CHK_PAR */#define CHECK_PRI(pri)#define CHECK_PRI_INI(pri)#define CHECK_PRI_RUN(pri)#endif /* CHK_PAR *//* * Check subsystem priority value (E_PAR) */#ifdef CHK_PAR#define CHECK_SSYPRI(ssypri) {					\	if (!CHK_SSYPRI(ssypri)) {				\		return E_PAR;					\	}							\}#else /* CHK_PAR */#define CHECK_SSYPRI(ssypri)#endif /* CHK_PAR *//* * Check timeout specification value (E_PAR) */#ifdef CHK_PAR#define CHECK_TMOUT(tmout) {					\	if (!((tmout) >= TMO_FEVR)) {				\		return E_PAR;					\	}							\}#else /* CHK_PAR */#define CHECK_TMOUT(tmout)#endif /* CHK_PAR *//* * Check other parameter errors (E_PAR) */#ifdef CHK_PAR#define CHECK_PAR(exp) {					\	if (!(exp)) {						\		return E_PAR;					\	}							\}#else /* CHK_PAR */#define CHECK_PAR(exp)#endif /* CHK_PAR *//* * Check reservation attribute error (E_RSATR) */#ifdef CHK_RSATR#define CHECK_RSATR(atr, maxatr) {				\	if ((atr) & ~(maxatr)) {				\	        return E_RSATR;					\	}							\}#else /* CHK_RSATR */#define CHECK_RSATR(atr, maxatr)#endif /* CHK_RSATR *//* * Check unsupported function (E_NOSPT) */#ifdef CHK_NOSPT#define CHECK_NOSPT(exp) {					\	if (!(exp)) {						\		return E_NOSPT;					\	}							\}#else /* CHK_NOSPT */#define CHECK_NOSPT(exp)#endif /* CHK_NOSPT *//* * Check whether task-independent part is running (E_CTX) */#ifdef CHK_CTX#define CHECK_INTSK() {						\	if (in_indp()) {					\		return E_CTX;					\	}							\}#else /* CHK_CTX */#define CHECK_INTSK()#endif /* CHK_CTX *//* * Check whether dispatch is in disabled state (E_CTX) */#ifdef CHK_CTX#define CHECK_DISPATCH() {					\	if (in_ddsp()) {					\		return E_CTX;					\	}							\}#define CHECK_DISPATCH_POL(tmout) {				\	if ((tmout) != TMO_POL && in_ddsp()) {			\		return E_CTX;					\	}							\}#else /* CHK_CTX */#define CHECK_DISPATCH()#define CHECK_DISPATCH_POL(tmout)#endif /* CHK_CTX *//* * Check other context errors (E_PAR) */#ifdef CHK_CTX#define CHECK_CTX(exp) {					\	if (!(exp)) {						\		return E_CTX;					\	}							\}#else /* CHK_CTX */#define CHECK_CTX(exp)#endif /* CHK_CTX *//* * Check non-existence co-processor error (E_NOCOP) */#ifdef CHK_NOCOP#define	CHECK_NOCOP(atr) {					\	if ( ((atr) & (TA_COP0|TA_COP1|TA_COP2|TA_COP3)) != 0	\	  && ((atr) & available_cop) == 0 ) {			\		return E_NOCOP;					\	}							\}#else#define	CHECK_NOCOP(atr)#endif#endif /* _CHECK_ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -