/*****************************************************************************/
/* リアルタイム・マルチタスクカーネル 「ai-TRON」*/
/* Copyright (C) 2000 by 今井彰彦 */
/*****************************************************************************/
/* エラーコード表 */
/* ユーザー参照有り */

#ifndef	__ROSERR_H__
#define	__ROSERR_H__

/*****************************************************************************/
/* 定義されるのは全部負の数 */
/* なぜなら、ITRONの規約で正の数は正常終了を表すとあるからである */
/* 一部μITRON V4.0準拠 */

typedef enum {
	/* 以下システムコール用リターン値 */
	E_OK	 = (0),		/* 正常終了 */
	/**/
	E_TER	 = (-0x101),	/* 終了要求発生 */
	E_CEX	 = (-0x303),	/* CPU例外発生 */
	E_SYS	 = (-0x405),	/* システムエラー発生 */
	E_NOSMEM = (-0x509),	/* システムメモリ不足/これ以上登録出来ない */
	E_NOMEM	 = (-0x50a),	/* メモリ不足 */
	E_NOSPT	 = (-0x611),	/* 未サポート機能 */
	E_TNOSPT = (-0x613),	/* タイマ関係の未サポート機能 */
	E_RSFN	 = (-0x614),	/* 予約機能コード番号 */
	E_RSSFN	 = (-0x615),	/* 予約サブ機能コード／予約デバイス番号 */
	E_RSMD	 = (-0x616),	/* 予約モード、予約オプション */
	E_RSID	 = (-0x617),	/* 予約ID番号 */
	E_RSATR	 = (-0x618),	/* 予約属性 */
	E_XNOSPT = (-0x619),	/* このコンテキストでの実行をサポートしてない */
	E_PAR	 = (-0x721),	/* パラメータエラー */
	E_ILADR	 = (-0x722),	/* 不正アドレス */
	E_IDOVR	 = (-0x723),	/* ID範囲外 */
	E_SZOVR	 = (-0x724),	/* パラメータサイズが制限外 */
	E_PPRI	 = (-0x725),	/* 不正プロセス優先度 */
	E_TPRI	 = (-0x726),	/* 不正タスク優先度 */
	E_ILTIME = (-0x727),	/* 不正時間指定 */
	E_ILFN	 = (-0x728),	/* 不正機能コード番号 */
	E_ILMSG	 = (-0x729),	/* 不正メッセージ形式 */
	E_VECN	 = (-0x72a),	/* 不正ベクトル番号 */
	E_IMS	 = (-0x72b),	/* 不正IMASK */
	E_ILSFN	 = (-0x72c),	/* 不正サブ機能コード番号 */
	/**/
	E_SELF	 = (-0x831),	/* 自タスク指定 */
	E_NOPRC	 = (-0x832),	/* プロセスが存在してない */
	E_EXS	 = (-0x833),	/* オブジェクトが既にある */
	E_NOEXS	 = (-0x834),	/* オブジェクトが存在しない */
	E_DMT	 = (-0x835),	/* タスクがDORMANT状態 */
	E_NODMT	 = (-0x836),	/* タスクがDORMANT状態でない */
	E_NOCYC	 = (-0x837),	/* タスクに対してcyc_wup()が発行されてない */
	E_NOSUS	 = (-0x838),	/* タスクがSUSPEND状態でない */
	E_ILSEM	 = (-0x839),	/* セマフォに対する不正操作 */
	E_ILAKEY = (-0x83a),	/* セマフォアクセスキーが不正 */
	E_ILBLK	 = (-0x83b),	/* 不正メモリブロックの返却、操作 */
	E_NORDV	 = (-0x83c),	/* 現在ランデブ中のタスクではない */
	E_NOWAI	 = (-0x83e),	/* タスクが待ち状態でない */
	E_OBJ	 = (-0x83f),	/* オブジェクト状態に関するその他のエラー */
	/**/
	E_MACV	 = (-0x941),	/* メモリアクセス権違反 */
	E_OACV	 = (-0x942),	/* オブジェクトやハンドラのアクセス権違反 */
	E_ULEVV	 = (-0x943),	/* ユーザーレベル違反 */
	/**/
	E_CTX	 = (-0xa45),	/* ﾀｽｸ切替禁止中待ち系ｼｽﾃﾑｺｰﾙ/割込ﾀｽｸ中通常ｼｽﾃﾑｺｰﾙ */
	/**/
	E_QOVR	 = (-0xb49),	/* キューイング・オーバーフロー */
	E_OOVR	 = (-0xb4a),	/* オブジェクト数オーバー */
	/**/
	E_DLT	 = (-0xc51),	/* 待ちオブジェクトが削除された */
	E_INHDR	 = (-0xc52),	/* 初期化ハンドラエラー */
	/**/
	E_TMOUT	 = (-0xd55),	/* タイムアウト */
	E_RLWAI	 = (-0xd56),	/* 待ち状態強制解除 */
	/**/
	E_PLFAIL = (-0xe59),	/* ポーリング失敗 */
	E_AROVR	 = (-0xe5a),	/* 用意した領域サイズが小さすぎる */
	E_MPURG	 = (-0xe5b),	/* メモリブロックが削除された */
	E_MRELOC = (-0xe5c),	/* メモリブロックが再配置された */
	/* μITRON V4.0で定義されたもの */
	E_ILUSE	 = (-28),	/* サービスコール不正使用 */
	E_NOID	 = (-34),	/* ID番号不足 */
	E_CLS	 = (-52),	/* 待ちオブジェクトの状態変化 */
	E_WBLK	 = (-57),	/* ノンブロッキング受付け */
	E_BOVR	 = (-58),	/* バッファーオーバーフロー */
	/**/
	/* 以下内部関数用リターン値 */
	E_OK_SETQUE = (1),		/* 正常終了で起動キューに登録する */
	E_OK_DELQUE = (2),		/* 正常終了で起動キューから削除する */
	E_OK_DELSETQUE = (3),		/* 正常終了で一旦起動キューから削除して再登録する */
	E_OK_SUSPEND = (4),		/* 正常終了で.status=SUSPEND&.wait=TMO_NOWAITにする */
	E_RLWAI_SETQUE = (-E_RLWAI)	/* 待ち状態強制解除で起動キューに登録する */
} ER;

#endif	/* __ROSERR_H__ */
/*
	PECLS library Ver.2
	(Parallel Execute Control Learning System)
		Copyright (C) 1994,95,96,98 M.Suzuki
	エラーコード
	・・・からもらってきた部分（一部は変更している）
	ITRONの定義通りだから、特に著作権が問題になることはなかろう
*/
