Changeset 321 for EcnlProtoTool/trunk/asp3_dcre/include/kernel.h
- Timestamp:
- Aug 23, 2017, 9:27:43 AM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
EcnlProtoTool/trunk/asp3_dcre/include/kernel.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r270 r321 9 9 * Graduate School of Information Science, Nagoya Univ., JAPAN 10 10 * 11 * ä¸è¨èä½æ¨©è 12 ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 13 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 14 * å¤ã»åé 15 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 16 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 17 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 18 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 19 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 20 * ç¨ã§ããå½¢ã§åé 21 å¸ããå ´åã«ã¯ï¼åé 22 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 23 * è 24 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 25 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 26 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 27 * ç¨ã§ããªãå½¢ã§åé 28 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 29 * ã¨ï¼ 30 * (a) åé 31 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 32 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 33 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 34 * (b) åé 35 å¸ã®å½¢æ 36 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 37 * å ±åãããã¨ï¼ 38 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 39 * 害ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ããå 41 責ãããã¨ï¼ 42 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 43 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 44 ããã³TOPPERSããã¸ã§ã¯ãã 45 * å 46 責ãããã¨ï¼ 11 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ 12 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 13 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 14 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 15 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 16 * スコード中に含まれていること. 17 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 18 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 19 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 20 * の無保証規定を掲載すること. 21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 22 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 23 * と. 24 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 25 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 26 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 27 * 報告すること. 28 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 29 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 30 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 31 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 32 * 免責すること. 47 33 * 48 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 49 ã 50 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 51 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 52 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 53 * ã®è²¬ä»»ãè² ããªãï¼ 34 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 35 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 36 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 37 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 38 * の責任を負わない. 54 39 * 55 40 * $Id$ … … 57 42 58 43 /* 59 * TOPPERS/ASP ã«ã¼ãã« æ¨æºããããã¡ã¤ã«44 * TOPPERS/ASPカーネル 標準ヘッダファイル 60 45 * 61 * TOPPERS/ASPã«ã¼ãã«ããµãã¼ããããµã¼ãã¹ã³ã¼ã«ã®å®£è¨ã¨ï¼å¿ 62 è¦ãªãã¼ 63 * ã¿åï¼å®æ°ï¼ãã¯ãã®å®ç¾©ãå«ãããããã¡ã¤ã«ï¼ 46 * TOPPERS/ASPカーネルがサポートするサービスコールの宣言と,必要なデー 47 * タ型,定数,マクロの定義を含むヘッダファイル. 64 48 * 65 * ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ66 * ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ããï¼ããã«ããï¼ãã¯ãå®ç¾©ä»¥å¤ã67 * é¤ãããã«ãªã£ã¦ããï¼49 * アセンブリ言語のソースファイルからこのファイルをインクルードする時 50 * は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を 51 * 除くようになっている. 68 52 */ 69 53 … … 76 60 77 61 /* 78 * TOPPERSå 79 ±éã®ãã¼ã¿åã»å®æ°ã»ãã¯ã 62 * TOPPERS共通のデータ型・定数・マクロ 80 63 */ 81 64 #include <t_stddef.h> 82 65 83 66 /* 84 * ã¿ã¼ã²ããä¾åé¨67 * ターゲット依存部 85 68 */ 86 69 #include "target_kernel.h" 87 70 88 71 /* 89 * ãµãã¼ãããæ©è½72 * サポートする機能 90 73 */ 91 74 #ifdef TOPPERS_TARGET_SUPPORT_DIS_INT 92 #define TOPPERS_SUPPORT_DIS_INT /* dis_int ããµãã¼ãããã¦ãã*/75 #define TOPPERS_SUPPORT_DIS_INT /* dis_intがサポートされている */ 93 76 #endif /* TOPPERS_TARGET_SUPPORT_DIS_INT */ 94 77 95 78 #ifdef TOPPERS_TARGET_SUPPORT_ENA_INT 96 #define TOPPERS_SUPPORT_ENA_INT /* ena_int ããµãã¼ãããã¦ãã*/79 #define TOPPERS_SUPPORT_ENA_INT /* ena_intがサポートされている */ 97 80 #endif /* TOPPERS_TARGET_SUPPORT_ENA_INT */ 98 81 99 #define TOPPERS_SUPPORT_DYNAMIC_CRE /* åççææ©è½æ¡å¼µ*/82 #define TOPPERS_SUPPORT_DYNAMIC_CRE /* 動的生成機能拡張 */ 100 83 101 84 #ifndef TOPPERS_MACRO_ONLY 102 85 103 86 /* 104 * ãã¼ã¿åã®å®ç¾©105 */ 106 107 /* 108 * ããããã¿ã¼ã³ããªãã¸ã§ã¯ãçªå·ã®åå®ç¾©109 */ 110 typedef uint_t FLGPTN; /* ã¤ãã³ããã©ã°ã®ããããã¿ã¼ã³*/111 typedef uint_t INTNO; /* å²è¾¼ã¿çªå·*/112 typedef uint_t INHNO; /* å²è¾¼ã¿ãã³ãã©çªå·*/113 typedef uint_t EXCNO; /* CPU ä¾å¤ãã³ãã©çªå·*/114 115 /* 116 * å¦çåä½ã®åå®ç¾©87 * データ型の定義 88 */ 89 90 /* 91 * ビットパターンやオブジェクト番号の型定義 92 */ 93 typedef uint_t FLGPTN; /* イベントフラグのビットパターン */ 94 typedef uint_t INTNO; /* 割込み番号 */ 95 typedef uint_t INHNO; /* 割込みハンドラ番号 */ 96 typedef uint_t EXCNO; /* CPU例外ハンドラ番号 */ 97 98 /* 99 * 処理単位の型定義 117 100 */ 118 101 typedef void (*TASK)(intptr_t exinf); … … 125 108 126 109 /* 127 * ã¡ã¢ãªé å確ä¿ã®ããã®åå®ç¾©110 * メモリ領域確保のための型定義 128 111 */ 129 112 #ifndef TOPPERS_STK_T 130 113 #define TOPPERS_STK_T intptr_t 131 114 #endif /* TOPPERS_STK_T */ 132 typedef TOPPERS_STK_T STK_T; /* ã¹ã¿ãã¯é åã確ä¿ããããã®å*/115 typedef TOPPERS_STK_T STK_T; /* スタック領域を確保するための型 */ 133 116 134 117 #ifndef TOPPERS_MPF_T 135 118 #define TOPPERS_MPF_T intptr_t 136 119 #endif /* TOPPERS_MPF_T */ 137 typedef TOPPERS_MPF_T MPF_T; /* åºå®é·ã¡ã¢ãªãã¼ã«é åã確ä¿ããããã®å */ 138 139 /* 140 * ã¿ã¤ã ã¤ãã³ãã®éç¥æ¹æ³ã®ãã±ããå½¢å¼ã®å®ç¾© 141 */ 142 typedef struct { 143 intptr_t exinf; /* ã¿ã¤ã ã¤ãã³ããã³ãã©ã®æ¡å¼µæ 144 å ± */ 145 TMEHDR tmehdr; /* ã¿ã¤ã ã¤ãã³ããã³ãã©ã®å 146 é çªå° */ 120 typedef TOPPERS_MPF_T MPF_T; /* 固定長メモリプール領域を確保するための型 */ 121 122 /* 123 * タイムイベントの通知方法のパケット形式の定義 124 */ 125 typedef struct { 126 intptr_t exinf; /* タイムイベントハンドラの拡張情報 */ 127 TMEHDR tmehdr; /* タイムイベントハンドラの先頭番地 */ 147 128 } T_NFY_HDR; 148 129 149 130 typedef struct { 150 intptr_t *p_var; /* å¤æ°ã®çªå°*/151 intptr_t value; /* è¨å®ããå¤*/131 intptr_t *p_var; /* 変数の番地 */ 132 intptr_t value; /* 設定する値 */ 152 133 } T_NFY_VAR; 153 134 154 135 typedef struct { 155 intptr_t *p_var; /* å¤æ°ã®çªå°*/136 intptr_t *p_var; /* 変数の番地 */ 156 137 } T_NFY_IVAR; 157 138 158 139 typedef struct { 159 ID tskid; /* ã¿ã¹ã¯ID */140 ID tskid; /* タスクID */ 160 141 } T_NFY_TSK; 161 142 162 143 typedef struct { 163 ID semid; /* ã»ããã©ID */144 ID semid; /* セマフォID */ 164 145 } T_NFY_SEM; 165 146 166 147 typedef struct { 167 ID flgid; /* ã¤ãã³ããã©ã°ID */168 FLGPTN flgptn; /* ã»ããããããããã¿ã¼ã³*/148 ID flgid; /* イベントフラグID */ 149 FLGPTN flgptn; /* セットするビットパターン */ 169 150 } T_NFY_FLG; 170 151 171 152 typedef struct { 172 ID dtqid; /* ãã¼ã¿ãã¥ã¼ID */173 intptr_t data; /* éä¿¡ããå¤*/153 ID dtqid; /* データキューID */ 154 intptr_t data; /* 送信する値 */ 174 155 } T_NFY_DTQ; 175 156 176 157 typedef struct { 177 intptr_t *p_var; /* å¤æ°ã®çªå°*/158 intptr_t *p_var; /* 変数の番地 */ 178 159 } T_ENFY_VAR; 179 160 180 161 typedef struct { 181 ID dtqid; /* ãã¼ã¿ãã¥ã¼ID */162 ID dtqid; /* データキューID */ 182 163 } T_ENFY_DTQ; 183 164 184 165 typedef struct { 185 MODE nfymode; /* éç¥å¦çã¢ã¼ã */ 186 union { /* ã¿ã¤ã ã¤ãã³ãã®éç¥ã«é¢ããä»éæ 187 å ± */ 166 MODE nfymode; /* 通知処理モード */ 167 union { /* タイムイベントの通知に関する付随情報 */ 188 168 T_NFY_HDR handler; 189 169 T_NFY_VAR setvar; … … 195 175 T_NFY_DTQ snddtq; 196 176 } nfy; 197 union { /* ã¨ã©ã¼ã®éç¥ã«é¢ããä»éæ 198 å ± */ 177 union { /* エラーの通知に関する付随情報 */ 199 178 T_ENFY_VAR setvar; 200 179 T_NFY_IVAR incvar; … … 208 187 209 188 /* 210 * ãã±ããå½¢å¼ã®å®ç¾©189 * パケット形式の定義 211 190 */ 212 191 typedef struct t_ctsk { 213 ATR tskatr; /* ã¿ã¹ã¯å±æ§ */ 214 intptr_t exinf; /* ã¿ã¹ã¯ã®æ¡å¼µæ 215 å ± */ 216 TASK task; /* ã¿ã¹ã¯ã®ã¡ã¤ã³ã«ã¼ãã³ã®å 217 é çªå° */ 218 PRI itskpri; /* ã¿ã¹ã¯ã®èµ·åæåªå 219 度 */ 220 size_t stksz; /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®ãµã¤ãº */ 221 STK_T *stk; /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®å 222 é çªå° */ 192 ATR tskatr; /* タスク属性 */ 193 intptr_t exinf; /* タスクの拡張情報 */ 194 TASK task; /* タスクのメインルーチンの先頭番地 */ 195 PRI itskpri; /* タスクの起動時優先度 */ 196 size_t stksz; /* タスクのスタック領域のサイズ */ 197 STK_T *stk; /* タスクのスタック領域の先頭番地 */ 223 198 } T_CTSK; 224 199 225 200 typedef struct t_rtsk { 226 STAT tskstat; /* ã¿ã¹ã¯ç¶æ 227 */ 228 PRI tskpri; /* ã¿ã¹ã¯ã®ç¾å¨åªå 229 度 */ 230 PRI tskbpri; /* ã¿ã¹ã¯ã®ãã¼ã¹åªå 231 度 */ 232 STAT tskwait; /* å¾ 233 ã¡è¦å */ 234 ID wobjid; /* å¾ 235 ã¡å¯¾è±¡ã®ãªãã¸ã§ã¯ãã®ID */ 236 TMO lefttmo; /* ã¿ã¤ã ã¢ã¦ãããã¾ã§ã®æé */ 237 uint_t actcnt; /* èµ·åè¦æ±ãã¥ã¼ã¤ã³ã°æ° */ 238 uint_t wupcnt; /* èµ·åºè¦æ±ãã¥ã¼ã¤ã³ã°æ° */ 239 bool_t raster; /* ã¿ã¹ã¯çµäºè¦æ±ç¶æ 240 */ 241 bool_t dister; /* ã¿ã¹ã¯çµäºç¦æ¢ç¶æ 242 */ 201 STAT tskstat; /* タスク状態 */ 202 PRI tskpri; /* タスクの現在優先度 */ 203 PRI tskbpri; /* タスクのベース優先度 */ 204 STAT tskwait; /* 待ち要因 */ 205 ID wobjid; /* 待ち対象のオブジェクトのID */ 206 TMO lefttmo; /* タイムアウトするまでの時間 */ 207 uint_t actcnt; /* 起動要求キューイング数 */ 208 uint_t wupcnt; /* 起床要求キューイング数 */ 209 bool_t raster; /* タスク終了要求状態 */ 210 bool_t dister; /* タスク終了禁止状態 */ 243 211 } T_RTSK; 244 212 245 213 typedef struct t_csem { 246 ATR sematr; /* ã»ããã©å±æ§*/247 uint_t isemcnt; /* ã»ããã©ã®åæè³æºæ°*/248 uint_t maxsem; /* ã»ããã©ã®æ大è³æºæ°*/214 ATR sematr; /* セマフォ属性 */ 215 uint_t isemcnt; /* セマフォの初期資源数 */ 216 uint_t maxsem; /* セマフォの最大資源数 */ 249 217 } T_CSEM; 250 218 251 219 typedef struct t_rsem { 252 ID wtskid; /* ã»ããã©ã®å¾ 253 ã¡è¡åã®å 254 é ã®ã¿ã¹ã¯ã®IDçªå· */ 255 uint_t semcnt; /* ã»ããã©ã®ç¾å¨ã®è³æºæ° */ 220 ID wtskid; /* セマフォの待ち行列の先頭のタスクのID番号 */ 221 uint_t semcnt; /* セマフォの現在の資源数 */ 256 222 } T_RSEM; 257 223 258 224 typedef struct t_cflg { 259 ATR flgatr; /* ã¤ãã³ããã©ã°å±æ§*/260 FLGPTN iflgptn; /* ã¤ãã³ããã©ã°ã®åæããããã¿ã¼ã³*/225 ATR flgatr; /* イベントフラグ属性 */ 226 FLGPTN iflgptn; /* イベントフラグの初期ビットパターン */ 261 227 } T_CFLG; 262 228 263 229 typedef struct t_rflg { 264 ID wtskid; /* ã¤ãã³ããã©ã°ã®å¾ 265 ã¡è¡åã®å 266 é ã®ã¿ã¹ã¯ã®IDçªå· */ 267 FLGPTN flgptn; /* ã¤ãã³ããã©ã°ã®ç¾å¨ã®ããããã¿ã¼ã³ */ 230 ID wtskid; /* イベントフラグの待ち行列の先頭のタスクのID番号 */ 231 FLGPTN flgptn; /* イベントフラグの現在のビットパターン */ 268 232 } T_RFLG; 269 233 270 234 typedef struct t_cdtq { 271 ATR dtqatr; /* ãã¼ã¿ãã¥ã¼å±æ§ */ 272 uint_t dtqcnt; /* ãã¼ã¿ãã¥ã¼ç®¡çé åã«æ ¼ç´ã§ãããã¼ã¿æ° */ 273 void *dtqmb; /* ãã¼ã¿ãã¥ã¼ç®¡çé åã®å 274 é çªå° */ 235 ATR dtqatr; /* データキュー属性 */ 236 uint_t dtqcnt; /* データキュー管理領域に格納できるデータ数 */ 237 void *dtqmb; /* データキュー管理領域の先頭番地 */ 275 238 } T_CDTQ; 276 239 277 240 typedef struct t_rdtq { 278 ID stskid; /* ãã¼ã¿ãã¥ã¼ã®éä¿¡å¾ 279 ã¡è¡åã®å 280 é ã®ã¿ã¹ã¯ã®IDçªå· */ 281 ID rtskid; /* ãã¼ã¿ãã¥ã¼ã®åä¿¡å¾ 282 ã¡è¡åã®å 283 é ã®ã¿ã¹ã¯ã®IDçªå· */ 284 uint_t sdtqcnt; /* ãã¼ã¿ãã¥ã¼ç®¡çé åã«æ ¼ç´ããã¦ãããã¼ã¿ã®æ° */ 241 ID stskid; /* データキューの送信待ち行列の先頭のタスクのID番号 */ 242 ID rtskid; /* データキューの受信待ち行列の先頭のタスクのID番号 */ 243 uint_t sdtqcnt; /* データキュー管理領域に格納されているデータの数 */ 285 244 } T_RDTQ; 286 245 287 246 typedef struct t_cpdq { 288 ATR pdqatr; /* åªå 289 度ãã¼ã¿ãã¥ã¼å±æ§ */ 290 uint_t pdqcnt; /* åªå 291 度ãã¼ã¿ãã¥ã¼ç®¡çé åã«æ ¼ç´ã§ãããã¼ã¿æ° */ 292 PRI maxdpri; /* åªå 293 度ãã¼ã¿ãã¥ã¼ã«éä¿¡ã§ãããã¼ã¿åªå 294 度ã®æ 295 å¤§å¤ */ 296 void *pdqmb; /* åªå 297 度ãã¼ã¿ãã¥ã¼ç®¡çé åã®å 298 é çªå° */ 247 ATR pdqatr; /* 優先度データキュー属性 */ 248 uint_t pdqcnt; /* 優先度データキュー管理領域に格納できるデータ数 */ 249 PRI maxdpri; /* 優先度データキューに送信できるデータ優先度の最 250 大値 */ 251 void *pdqmb; /* 優先度データキュー管理領域の先頭番地 */ 299 252 } T_CPDQ; 300 253 301 254 typedef struct t_rpdq { 302 ID stskid; /* åªå 303 度ãã¼ã¿ãã¥ã¼ã®éä¿¡å¾ 304 ã¡è¡åã®å 305 é ã®ã¿ã¹ã¯ 306 ã®IDçªå· */ 307 ID rtskid; /* åªå 308 度ãã¼ã¿ãã¥ã¼ã®åä¿¡å¾ 309 ã¡è¡åã®å 310 é ã®ã¿ã¹ã¯ 311 ã®IDçªå· */ 312 uint_t spdqcnt; /* åªå 313 度ãã¼ã¿ãã¥ã¼ç®¡çé åã«æ ¼ç´ããã¦ãããã¼ 314 ã¿ã®æ° */ 255 ID stskid; /* 優先度データキューの送信待ち行列の先頭のタスク 256 のID番号 */ 257 ID rtskid; /* 優先度データキューの受信待ち行列の先頭のタスク 258 のID番号 */ 259 uint_t spdqcnt; /* 優先度データキュー管理領域に格納されているデー 260 タの数 */ 315 261 } T_RPDQ; 316 262 317 263 typedef struct t_cmtx { 318 ATR mtxatr; /* ãã¥ã¼ããã¯ã¹å±æ§ */ 319 PRI ceilpri; /* ãã¥ã¼ããã¯ã¹ã®ä¸éåªå 320 度 */ 264 ATR mtxatr; /* ミューテックス属性 */ 265 PRI ceilpri; /* ミューテックスの上限優先度 */ 321 266 } T_CMTX; 322 267 323 268 typedef struct t_rmtx { 324 ID htskid; /* ãã¥ã¼ããã¯ã¹ãããã¯ãã¦ããã¿ã¹ã¯ã®IDçªå· */ 325 ID wtskid; /* ãã¥ã¼ããã¯ã¹ã®å¾ 326 ã¡è¡åã®å 327 é ã®ã¿ã¹ã¯ã®IDçªå· */ 269 ID htskid; /* ミューテックスをロックしているタスクのID番号 */ 270 ID wtskid; /* ミューテックスの待ち行列の先頭のタスクのID番号 */ 328 271 } T_RMTX; 329 272 330 273 typedef struct t_cmpf { 331 ATR mpfatr; /* åºå®é·ã¡ã¢ãªãã¼ã«å±æ§ */ 332 uint_t blkcnt; /* ç²å¾ã§ããåºå®é·ã¡ã¢ãªãããã¯ã®æ° */ 333 uint_t blksz; /* åºå®é·ã¡ã¢ãªãããã¯ã®ãµã¤ãº */ 334 MPF_T *mpf; /* åºå®é·ã¡ã¢ãªãã¼ã«é åã®å 335 é çªå° */ 336 void *mpfmb; /* åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åã®å 337 é çªå° */ 274 ATR mpfatr; /* 固定長メモリプール属性 */ 275 uint_t blkcnt; /* 獲得できる固定長メモリブロックの数 */ 276 uint_t blksz; /* 固定長メモリブロックのサイズ */ 277 MPF_T *mpf; /* 固定長メモリプール領域の先頭番地 */ 278 void *mpfmb; /* 固定長メモリプール管理領域の先頭番地 */ 338 279 } T_CMPF; 339 280 340 281 typedef struct t_rmpf { 341 ID wtskid; /* åºå®é·ã¡ã¢ãªãã¼ã«ã®å¾ 342 ã¡è¡åã®å 343 é ã®ã¿ã¹ã¯ã® 344 IDçªå· */ 345 uint_t fblkcnt; /* åºå®é·ã¡ã¢ãªãã¼ã«é åã®ç©ºãã¡ã¢ãªé åã«å²ã 346 ä»ãããã¨ãã§ããåºå®é·ã¡ã¢ãªãããã¯ã®æ° */ 282 ID wtskid; /* 固定長メモリプールの待ち行列の先頭のタスクの 283 ID番号 */ 284 uint_t fblkcnt; /* 固定長メモリプール領域の空きメモリ領域に割り 285 付けることができる固定長メモリブロックの数 */ 347 286 } T_RMPF; 348 287 349 288 typedef struct t_ccyc { 350 ATR cycatr; /* å¨æéç¥å±æ§*/351 T_NFYINFO nfyinfo; /* å¨æéç¥ã®éç¥æ¹æ³*/352 RELTIM cyctim; /* å¨æéç¥ã®éç¥å¨æ*/353 RELTIM cycphs; /* å¨æéç¥ã®éç¥ä½ç¸*/289 ATR cycatr; /* 周期通知属性 */ 290 T_NFYINFO nfyinfo; /* 周期通知の通知方法 */ 291 RELTIM cyctim; /* 周期通知の通知周期 */ 292 RELTIM cycphs; /* 周期通知の通知位相 */ 354 293 } T_CCYC; 355 294 356 295 typedef struct t_rcyc { 357 STAT cycstat; /* å¨æéç¥ã®åä½ç¶æ 358 */ 359 RELTIM lefttim; /* 次åéç¥æå»ã¾ã§ã®ç¸å¯¾æé */ 296 STAT cycstat; /* 周期通知の動作状態 */ 297 RELTIM lefttim; /* 次回通知時刻までの相対時間 */ 360 298 } T_RCYC; 361 299 362 300 typedef struct t_calm { 363 ATR almatr; /* ã¢ã©ã¼ã éç¥å±æ§*/364 T_NFYINFO nfyinfo; /* ã¢ã©ã¼ã éç¥ã®éç¥æ¹æ³*/301 ATR almatr; /* アラーム通知属性 */ 302 T_NFYINFO nfyinfo; /* アラーム通知の通知方法 */ 365 303 } T_CALM; 366 304 367 305 typedef struct t_ralm { 368 STAT almstat; /* ã¢ã©ã¼ã éç¥ã®åä½ç¶æ 369 */ 370 RELTIM lefttim; /* éç¥æå»ã¾ã§ã®ç¸å¯¾æé */ 306 STAT almstat; /* アラーム通知の動作状態 */ 307 RELTIM lefttim; /* 通知時刻までの相対時間 */ 371 308 } T_RALM; 372 309 373 310 typedef struct t_cisr { 374 ATR isratr; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å±æ§ */ 375 intptr_t exinf; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®æ¡å¼µæ 376 å ± */ 377 INTNO intno; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãç»é²ããå²è¾¼ã¿çªå· */ 378 ISR isr; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å 379 é çªå° */ 380 PRI isrpri; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå 381 度 */ 311 ATR isratr; /* 割込みサービスルーチン属性 */ 312 intptr_t exinf; /* 割込みサービスルーチンの拡張情報 */ 313 INTNO intno; /* 割込みサービスルーチンを登録する割込み番号 */ 314 ISR isr; /* 割込みサービスルーチンの先頭番地 */ 315 PRI isrpri; /* 割込みサービスルーチン優先度 */ 382 316 } T_CISR; 383 317 384 318 /* 385 * ãµã¼ãã¹ã³ã¼ã«ã®å®£è¨386 */ 387 388 /* 389 * ã¿ã¹ã¯ç®¡çæ©è½319 * サービスコールの宣言 320 */ 321 322 /* 323 * タスク管理機能 390 324 */ 391 325 extern ER_UINT acre_tsk(const T_CTSK *pk_ctsk) throw(); … … 400 334 401 335 /* 402 * ã¿ã¹ã¯ä»å±åææ©è½336 * タスク付属同期機能 403 337 */ 404 338 extern ER slp_tsk(void) throw(); … … 412 346 413 347 /* 414 * ã¿ã¹ã¯çµäºæ©è½348 * タスク終了機能 415 349 */ 416 350 extern ER ext_tsk(void) throw(); … … 422 356 423 357 /* 424 * åæã»éä¿¡æ©è½358 * 同期・通信機能 425 359 */ 426 360 extern ER_ID acre_sem(const T_CSEM *pk_csem) throw(); … … 481 415 482 416 /* 483 * ã¡ã¢ãªãã¼ã«ç®¡çæ©è½417 * メモリプール管理機能 484 418 */ 485 419 extern ER_ID acre_mpf(const T_CMPF *pk_cmpf) throw(); … … 493 427 494 428 /* 495 * æé管çæ©è½429 * 時間管理機能 496 430 */ 497 431 extern ER set_tim(SYSTIM systim) throw(); … … 513 447 514 448 /* 515 * ã·ã¹ãã ç¶æ 516 管çæ©è½ 449 * システム状態管理機能 517 450 */ 518 451 extern ER rot_rdq(PRI tskpri) throw(); … … 532 465 533 466 /* 534 * å²è¾¼ã¿ç®¡çæ©è½467 * 割込み管理機能 535 468 */ 536 469 extern ER_ID acre_isr(const T_CISR *pk_cisr) throw(); … … 542 475 543 476 /* 544 * CPU ä¾å¤ç®¡çæ©è½477 * CPU例外管理機能 545 478 */ 546 479 extern bool_t xsns_dpn(void *p_excinf) throw(); … … 549 482 550 483 /* 551 * éã¿ã¹ã¯ã³ã³ããã¹ãããå¼ã³åºãããµã¼ãã¹ã³ã¼ã«484 * 非タスクコンテキストから呼び出せるサービスコール 552 485 */ 553 486 #define iact_tsk(tskid) act_tsk(tskid) … … 578 511 579 512 /* 580 * ãªãã¸ã§ã¯ãå±æ§ã®å®ç¾© 581 */ 582 #define TA_ACT UINT_C(0x01) /* ã¿ã¹ã¯ãèµ·åãããç¶æ 583 ã§çæ */ 584 #define TA_NOACTQUE UINT_C(0x02) /* èµ·åè¦æ±ããã¥ã¼ã¤ã³ã°ããªã */ 585 586 #define TA_TPRI UINT_C(0x01) /* ã¿ã¹ã¯ã®å¾ 587 ã¡è¡åãåªå 588 度é ã« */ 589 590 #define TA_WMUL UINT_C(0x02) /* è¤æ°ã®å¾ 591 ã¡ã¿ã¹ã¯ */ 592 #define TA_CLR UINT_C(0x04) /* ã¤ãã³ããã©ã°ã®ã¯ãªã¢æå® */ 593 594 #define TA_CEILING UINT_C(0x03) /* åªå 595 度ä¸éãããã³ã« */ 596 597 #define TA_STA UINT_C(0x02) /* å¨æéç¥ãåä½ç¶æ 598 ã§çæ */ 599 600 #define TA_NONKERNEL UINT_C(0x02) /* ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ */ 601 602 #define TA_ENAINT UINT_C(0x01) /* å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ãã¯ãªã¢ */ 603 #define TA_EDGE UINT_C(0x02) /* ã¨ãã¸ããªã¬ */ 604 605 /* 606 * ãµã¼ãã¹ã³ã¼ã«ã®åä½ã¢ã¼ãã®å®ç¾© 607 */ 608 #define TWF_ORW UINT_C(0x01) /* ã¤ãã³ããã©ã°ã®ORå¾ 609 ã¡ */ 610 #define TWF_ANDW UINT_C(0x02) /* ã¤ãã³ããã©ã°ã®ANDå¾ 611 ã¡ */ 612 613 /* 614 * éç¥å¦çã¢ã¼ãã®å®ç¾© 615 */ 616 #define TNFY_HANDLER UINT_C(0x00) /* ã¿ã¤ã ã¤ãã³ããã³ãã©ã®å¼åºã */ 617 #define TNFY_SETVAR UINT_C(0x01) /* å¤æ°ã®è¨å® */ 618 #define TNFY_INCVAR UINT_C(0x02) /* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ã */ 619 #define TNFY_ACTTSK UINT_C(0x03) /* ã¿ã¹ã¯ã®èµ·å */ 620 #define TNFY_WUPTSK UINT_C(0x04) /* ã¿ã¹ã¯ã®èµ·åº */ 621 #define TNFY_SIGSEM UINT_C(0x05) /* ã»ããã©ã®è³æºã®è¿å´ */ 622 #define TNFY_SETFLG UINT_C(0x06) /* ã¤ãã³ããã©ã°ã®ã»ãã */ 623 #define TNFY_SNDDTQ UINT_C(0x07) /* ãã¼ã¿ãã¥ã¼ã¸ã®éä¿¡ */ 624 625 #define TENFY_SETVAR UINT_C(0x10) /* å¤æ°ã®è¨å® */ 626 #define TENFY_INCVAR UINT_C(0x20) /* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ã */ 627 #define TENFY_ACTTSK UINT_C(0x30) /* ã¿ã¹ã¯ã®èµ·å */ 628 #define TENFY_WUPTSK UINT_C(0x40) /* ã¿ã¹ã¯ã®èµ·åº */ 629 #define TENFY_SIGSEM UINT_C(0x50) /* ã»ããã©ã®è¿å´ */ 630 #define TENFY_SETFLG UINT_C(0x60) /* ã¤ãã³ããã©ã°ã®ã»ãã */ 631 #define TENFY_SNDDTQ UINT_C(0x70) /* ãã¼ã¿ãã¥ã¼ã¸ã®éä¿¡ */ 632 633 /* 634 * ãªãã¸ã§ã¯ãã®ç¶æ 635 ã®å®ç¾© 636 */ 637 #define TTS_RUN UINT_C(0x01) /* å®è¡ç¶æ 638 */ 639 #define TTS_RDY UINT_C(0x02) /* å®è¡å¯è½ç¶æ 640 */ 641 #define TTS_WAI UINT_C(0x04) /* å¾ 642 ã¡ç¶æ 643 */ 644 #define TTS_SUS UINT_C(0x08) /* å¼·å¶å¾ 645 ã¡ç¶æ 646 */ 647 #define TTS_WAS UINT_C(0x0c) /* äºéå¾ 648 ã¡ç¶æ 649 */ 650 #define TTS_DMT UINT_C(0x10) /* ä¼æ¢ç¶æ 651 */ 652 653 #define TTW_SLP UINT_C(0x0001) /* èµ·åºå¾ 654 ã¡ */ 655 #define TTW_DLY UINT_C(0x0002) /* æéçµéå¾ 656 ã¡ */ 657 #define TTW_SEM UINT_C(0x0004) /* ã»ããã©ã®è³æºç²å¾å¾ 658 ã¡ */ 659 #define TTW_FLG UINT_C(0x0008) /* ã¤ãã³ããã©ã°å¾ 660 ã¡ */ 661 #define TTW_SDTQ UINT_C(0x0010) /* ãã¼ã¿ãã¥ã¼ã¸ã®éä¿¡å¾ 662 ã¡ */ 663 #define TTW_RDTQ UINT_C(0x0020) /* ãã¼ã¿ãã¥ã¼ããã®åä¿¡å¾ 664 ã¡ */ 665 #define TTW_SPDQ UINT_C(0x0100) /* åªå 666 度ãã¼ã¿ãã¥ã¼ã¸ã®éä¿¡å¾ 667 ã¡ */ 668 #define TTW_RPDQ UINT_C(0x0200) /* åªå 669 度ãã¼ã¿ãã¥ã¼ããã®åä¿¡å¾ 670 ã¡ */ 671 #define TTW_MTX UINT_C(0x0080) /* ãã¥ã¼ããã¯ã¹ã®ããã¯å¾ 672 ã¡ç¶æ 673 */ 674 #define TTW_MPF UINT_C(0x2000) /* åºå®é·ã¡ã¢ãªãããã¯ã®ç²å¾å¾ 675 ã¡ */ 676 677 #define TCYC_STP UINT_C(0x01) /* å¨æéç¥ãåä½ãã¦ããªã */ 678 #define TCYC_STA UINT_C(0x02) /* å¨æéç¥ãåä½ãã¦ãã */ 679 680 #define TALM_STP UINT_C(0x01) /* ã¢ã©ã¼ã éç¥ãåä½ãã¦ããªã */ 681 #define TALM_STA UINT_C(0x02) /* ã¢ã©ã¼ã éç¥ãåä½ãã¦ãã */ 682 683 /* 684 * ãã®ä»ã®å®æ°ã®å®ç¾© 685 */ 686 #define TSK_SELF 0 /* èªã¿ã¹ã¯æå® */ 687 #define TSK_NONE 0 /* 該å½ããã¿ã¹ã¯ããªã */ 688 689 #define TPRI_SELF 0 /* èªã¿ã¹ã¯ã®ãã¼ã¹åªå 690 度 */ 691 #define TPRI_INI 0 /* ã¿ã¹ã¯ã®èµ·åæåªå 692 度 */ 693 694 #define TIPM_ENAALL 0 /* å²è¾¼ã¿åªå 695 度ãã¹ã¯å 696 ¨è§£é¤ */ 697 698 /* 699 * æ§æå®æ°ã¨ãã¯ã 700 */ 701 702 /* 703 * åªå 704 度ã®ç¯å² 705 */ 706 #define TMIN_TPRI 1 /* ã¿ã¹ã¯åªå 707 度ã®æå°å¤ï¼æé«å¤ï¼*/ 708 #define TMAX_TPRI 16 /* ã¿ã¹ã¯åªå 709 度ã®æ大å¤ï¼æä½å¤ï¼*/ 710 #define TMIN_DPRI 1 /* ãã¼ã¿åªå 711 度ã®æå°å¤ï¼æé«å¤ï¼*/ 712 #define TMAX_DPRI 16 /* ãã¼ã¿åªå 713 度ã®æ大å¤ï¼æä½å¤ï¼*/ 714 #define TMIN_ISRPRI 1 /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå 715 度ã®æå°å¤ */ 716 #define TMAX_ISRPRI 16 /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå 717 度ã®æå¤§å¤ */ 718 719 /* 720 * ãã¼ã¸ã§ã³æ 721 å ± 722 */ 723 #define TKERNEL_MAKER UINT_C(0x0118) /* ã«ã¼ãã«ã®ã¡ã¼ã«ã¼ã³ã¼ã */ 724 #define TKERNEL_PRID UINT_C(0x0007) /* ã«ã¼ãã«ã®èå¥çªå· */ 725 #define TKERNEL_SPVER UINT_C(0xf631) /* ã«ã¼ãã«ä»æ§ã®ãã¼ã¸ã§ã³çªå· */ 726 #define TKERNEL_PRVER UINT_C(0x3010) /* ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå· */ 727 728 /* 729 * ãã¥ã¼ã¤ã³ã°åæ°ã®æå¤§å¤ 730 */ 731 #define TMAX_ACTCNT UINT_C(1) /* èµ·åè¦æ±ãã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ */ 732 #define TMAX_WUPCNT UINT_C(1) /* èµ·åºè¦æ±ãã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ */ 733 734 /* 735 * ããããã¿ã¼ã³ã®ãããæ° 736 */ 737 #ifndef TBIT_FLGPTN /* ã¤ãã³ããã©ã°ã®ãããæ° */ 513 * オブジェクト属性の定義 514 */ 515 #define TA_ACT UINT_C(0x01) /* タスクを起動された状態で生成 */ 516 #define TA_NOACTQUE UINT_C(0x02) /* 起動要求をキューイングしない */ 517 518 #define TA_TPRI UINT_C(0x01) /* タスクの待ち行列を優先度順に */ 519 520 #define TA_WMUL UINT_C(0x02) /* 複数の待ちタスク */ 521 #define TA_CLR UINT_C(0x04) /* イベントフラグのクリア指定 */ 522 523 #define TA_CEILING UINT_C(0x03) /* 優先度上限プロトコル */ 524 525 #define TA_STA UINT_C(0x02) /* 周期通知を動作状態で生成 */ 526 527 #define TA_NONKERNEL UINT_C(0x02) /* カーネル管理外の割込み */ 528 529 #define TA_ENAINT UINT_C(0x01) /* 割込み要求禁止フラグをクリア */ 530 #define TA_EDGE UINT_C(0x02) /* エッジトリガ */ 531 532 /* 533 * サービスコールの動作モードの定義 534 */ 535 #define TWF_ORW UINT_C(0x01) /* イベントフラグのOR待ち */ 536 #define TWF_ANDW UINT_C(0x02) /* イベントフラグのAND待ち */ 537 538 /* 539 * 通知処理モードの定義 540 */ 541 #define TNFY_HANDLER UINT_C(0x00) /* タイムイベントハンドラの呼出し */ 542 #define TNFY_SETVAR UINT_C(0x01) /* 変数の設定 */ 543 #define TNFY_INCVAR UINT_C(0x02) /* 変数のインクリメント */ 544 #define TNFY_ACTTSK UINT_C(0x03) /* タスクの起動 */ 545 #define TNFY_WUPTSK UINT_C(0x04) /* タスクの起床 */ 546 #define TNFY_SIGSEM UINT_C(0x05) /* セマフォの資源の返却 */ 547 #define TNFY_SETFLG UINT_C(0x06) /* イベントフラグのセット */ 548 #define TNFY_SNDDTQ UINT_C(0x07) /* データキューへの送信 */ 549 550 #define TENFY_SETVAR UINT_C(0x10) /* 変数の設定 */ 551 #define TENFY_INCVAR UINT_C(0x20) /* 変数のインクリメント */ 552 #define TENFY_ACTTSK UINT_C(0x30) /* タスクの起動 */ 553 #define TENFY_WUPTSK UINT_C(0x40) /* タスクの起床 */ 554 #define TENFY_SIGSEM UINT_C(0x50) /* セマフォの返却 */ 555 #define TENFY_SETFLG UINT_C(0x60) /* イベントフラグのセット */ 556 #define TENFY_SNDDTQ UINT_C(0x70) /* データキューへの送信 */ 557 558 /* 559 * オブジェクトの状態の定義 560 */ 561 #define TTS_RUN UINT_C(0x01) /* 実行状態 */ 562 #define TTS_RDY UINT_C(0x02) /* 実行可能状態 */ 563 #define TTS_WAI UINT_C(0x04) /* 待ち状態 */ 564 #define TTS_SUS UINT_C(0x08) /* 強制待ち状態 */ 565 #define TTS_WAS UINT_C(0x0c) /* 二重待ち状態 */ 566 #define TTS_DMT UINT_C(0x10) /* 休止状態 */ 567 568 #define TTW_SLP UINT_C(0x0001) /* 起床待ち */ 569 #define TTW_DLY UINT_C(0x0002) /* 時間経過待ち */ 570 #define TTW_SEM UINT_C(0x0004) /* セマフォの資源獲得待ち */ 571 #define TTW_FLG UINT_C(0x0008) /* イベントフラグ待ち */ 572 #define TTW_SDTQ UINT_C(0x0010) /* データキューへの送信待ち */ 573 #define TTW_RDTQ UINT_C(0x0020) /* データキューからの受信待ち */ 574 #define TTW_SPDQ UINT_C(0x0100) /* 優先度データキューへの送信待ち */ 575 #define TTW_RPDQ UINT_C(0x0200) /* 優先度データキューからの受信待ち */ 576 #define TTW_MTX UINT_C(0x0080) /* ミューテックスのロック待ち状態 */ 577 #define TTW_MPF UINT_C(0x2000) /* 固定長メモリブロックの獲得待ち */ 578 579 #define TCYC_STP UINT_C(0x01) /* 周期通知が動作していない */ 580 #define TCYC_STA UINT_C(0x02) /* 周期通知が動作している */ 581 582 #define TALM_STP UINT_C(0x01) /* アラーム通知が動作していない */ 583 #define TALM_STA UINT_C(0x02) /* アラーム通知が動作している */ 584 585 /* 586 * その他の定数の定義 587 */ 588 #define TSK_SELF 0 /* 自タスク指定 */ 589 #define TSK_NONE 0 /* 該当するタスクがない */ 590 591 #define TPRI_SELF 0 /* 自タスクのベース優先度 */ 592 #define TPRI_INI 0 /* タスクの起動時優先度 */ 593 594 #define TIPM_ENAALL 0 /* 割込み優先度マスク全解除 */ 595 596 /* 597 * 構成定数とマクロ 598 */ 599 600 /* 601 * 優先度の範囲 602 */ 603 #define TMIN_TPRI 1 /* タスク優先度の最小値(最高値)*/ 604 #define TMAX_TPRI 16 /* タスク優先度の最大値(最低値)*/ 605 #define TMIN_DPRI 1 /* データ優先度の最小値(最高値)*/ 606 #define TMAX_DPRI 16 /* データ優先度の最大値(最低値)*/ 607 #define TMIN_ISRPRI 1 /* 割込みサービスルーチン優先度の最小値 */ 608 #define TMAX_ISRPRI 16 /* 割込みサービスルーチン優先度の最大値 */ 609 610 /* 611 * バージョン情報 612 */ 613 #define TKERNEL_MAKER UINT_C(0x0118) /* カーネルのメーカーコード */ 614 #define TKERNEL_PRID UINT_C(0x0007) /* カーネルの識別番号 */ 615 #define TKERNEL_SPVER UINT_C(0xf631) /* カーネル仕様のバージョン番号 */ 616 #define TKERNEL_PRVER UINT_C(0x3010) /* カーネルのバージョン番号 */ 617 618 /* 619 * キューイング回数の最大値 620 */ 621 #define TMAX_ACTCNT UINT_C(1) /* 起動要求キューイング数の最大値 */ 622 #define TMAX_WUPCNT UINT_C(1) /* 起床要求キューイング数の最大値 */ 623 624 /* 625 * ビットパターンのビット数 626 */ 627 #ifndef TBIT_FLGPTN /* イベントフラグのビット数 */ 738 628 #define TBIT_FLGPTN (sizeof(FLGPTN) * CHAR_BIT) 739 629 #endif /* TBIT_FLGPTN */ 740 630 741 631 /* 742 * ã·ã¹ãã æå»ã®èª¿æ´ã§ããç¯å²ï¼åä½ï¼Î¼ç§ï¼743 */ 744 #define TMIN_ADJTIM -1000000 /* ã·ã¹ãã æå»ã®æå°èª¿æ´æé*/745 #define TMAX_ADJTIM 1000000 /* ã·ã¹ãã æå»ã®æ大調æ´æé*/746 747 /* 748 * ã¡ã¢ãªé å確ä¿ã®ããã®ãã¯ã632 * システム時刻の調整できる範囲(単位:μ秒) 633 */ 634 #define TMIN_ADJTIM -1000000 /* システム時刻の最小調整時間 */ 635 #define TMAX_ADJTIM 1000000 /* システム時刻の最大調整時間 */ 636 637 /* 638 * メモリ領域確保のためのマクロ 749 639 * 750 * 以ä¸ã®TOPPERS_COUNT_SZã¨TOPPERS_ROUND_SZã®å®ç¾©ã¯ï¼unitã2ã®å·¾ä¹ã§ã751 * ããã¨ãä»®å®ãã¦ããï¼640 * 以下のTOPPERS_COUNT_SZとTOPPERS_ROUND_SZの定義は,unitが2の巾乗であ 641 * ることを仮定している. 752 642 */ 753 643 #ifndef TOPPERS_COUNT_SZ … … 776 666 777 667 /* 778 * ãã®ä»ã®æ§æå®æ°779 */ 780 #define TMAX_MAXSEM UINT_MAX /* ã»ããã©ã®æ大è³æºæ°ã®æ大å¤*/668 * その他の構成定数 669 */ 670 #define TMAX_MAXSEM UINT_MAX /* セマフォの最大資源数の最大値 */ 781 671 782 672 #ifdef __cplusplus
Note:
See TracChangeset
for help on using the changeset viewer.