Changeset 389 for azure_iot_hub/trunk/asp3_dcre/include/kernel.h
- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/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
r388 r389 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 82 #ifdef TOPPERS_TARGET_SUPPORT_CLR_INT 100 #define TOPPERS_SUPPORT_CLR_INT /* clr_int ããµãã¼ãããã¦ãã*/83 #define TOPPERS_SUPPORT_CLR_INT /* clr_intがサポートされている */ 101 84 #endif /* TOPPERS_TARGET_SUPPORT_CLR_INT */ 102 85 103 86 #ifdef TOPPERS_TARGET_SUPPORT_RAS_INT 104 #define TOPPERS_SUPPORT_RAS_INT /* ras_int ããµãã¼ãããã¦ãã*/87 #define TOPPERS_SUPPORT_RAS_INT /* ras_intがサポートされている */ 105 88 #endif /* TOPPERS_TARGET_SUPPORT_RAS_INT */ 106 89 107 90 #ifdef TOPPERS_TARGET_SUPPORT_PRB_INT 108 #define TOPPERS_SUPPORT_PRB_INT /* prb_int ããµãã¼ãããã¦ãã*/91 #define TOPPERS_SUPPORT_PRB_INT /* prb_intがサポートされている */ 109 92 #endif /* TOPPERS_TARGET_SUPPORT_PRB_INT */ 110 93 111 #define TOPPERS_SUPPORT_DYNAMIC_CRE /* åççææ©è½æ¡å¼µ*/94 #define TOPPERS_SUPPORT_DYNAMIC_CRE /* 動的生成機能拡張 */ 112 95 113 96 #ifndef TOPPERS_MACRO_ONLY 114 97 115 98 /* 116 * ãã¼ã¿åã®å®ç¾©117 */ 118 119 /* 120 * ããããã¿ã¼ã³ããªãã¸ã§ã¯ãçªå·ã®åå®ç¾©121 */ 122 typedef uint_t FLGPTN; /* ã¤ãã³ããã©ã°ã®ããããã¿ã¼ã³*/123 typedef uint_t INTNO; /* å²è¾¼ã¿çªå·*/124 typedef uint_t INHNO; /* å²è¾¼ã¿ãã³ãã©çªå·*/125 typedef uint_t EXCNO; /* CPU ä¾å¤ãã³ãã©çªå·*/126 127 /* 128 * å¦çåä½ã®åå®ç¾©99 * データ型の定義 100 */ 101 102 /* 103 * ビットパターンやオブジェクト番号の型定義 104 */ 105 typedef uint_t FLGPTN; /* イベントフラグのビットパターン */ 106 typedef uint_t INTNO; /* 割込み番号 */ 107 typedef uint_t INHNO; /* 割込みハンドラ番号 */ 108 typedef uint_t EXCNO; /* CPU例外ハンドラ番号 */ 109 110 /* 111 * 処理単位の型定義 129 112 */ 130 113 typedef void (*TASK)(intptr_t exinf); … … 137 120 138 121 /* 139 * ã¡ã¢ãªé å確ä¿ã®ããã®åå®ç¾©122 * メモリ領域確保のための型定義 140 123 */ 141 124 #ifndef TOPPERS_STK_T 142 125 #define TOPPERS_STK_T intptr_t 143 126 #endif /* TOPPERS_STK_T */ 144 typedef TOPPERS_STK_T STK_T; /* ã¹ã¿ãã¯é åã確ä¿ããããã®å*/127 typedef TOPPERS_STK_T STK_T; /* スタック領域を確保するための型 */ 145 128 146 129 #ifndef TOPPERS_MPF_T 147 130 #define TOPPERS_MPF_T intptr_t 148 131 #endif /* TOPPERS_MPF_T */ 149 typedef TOPPERS_MPF_T MPF_T; /* åºå®é·ã¡ã¢ãªãã¼ã«é åã確ä¿ããããã®å */ 150 151 /* 152 * ã¿ã¤ã ã¤ãã³ãã®éç¥æ¹æ³ã®ãã±ããå½¢å¼ã®å®ç¾© 153 */ 154 typedef struct { 155 intptr_t exinf; /* ã¿ã¤ã ã¤ãã³ããã³ãã©ã®æ¡å¼µæ 156 å ± */ 157 TMEHDR tmehdr; /* ã¿ã¤ã ã¤ãã³ããã³ãã©ã®å 158 é çªå° */ 132 typedef TOPPERS_MPF_T MPF_T; /* 固定長メモリプール領域を確保するための型 */ 133 134 /* 135 * タイムイベントの通知方法のパケット形式の定義 136 */ 137 typedef struct { 138 intptr_t exinf; /* タイムイベントハンドラの拡張情報 */ 139 TMEHDR tmehdr; /* タイムイベントハンドラの先頭番地 */ 159 140 } T_NFY_HDR; 160 141 161 142 typedef struct { 162 intptr_t *p_var; /* å¤æ°ã®çªå°*/163 intptr_t value; /* è¨å®ããå¤*/143 intptr_t *p_var; /* 変数の番地 */ 144 intptr_t value; /* 設定する値 */ 164 145 } T_NFY_VAR; 165 146 166 147 typedef struct { 167 intptr_t *p_var; /* å¤æ°ã®çªå°*/148 intptr_t *p_var; /* 変数の番地 */ 168 149 } T_NFY_IVAR; 169 150 170 151 typedef struct { 171 ID tskid; /* ã¿ã¹ã¯ID */152 ID tskid; /* タスクID */ 172 153 } T_NFY_TSK; 173 154 174 155 typedef struct { 175 ID semid; /* ã»ããã©ID */156 ID semid; /* セマフォID */ 176 157 } T_NFY_SEM; 177 158 178 159 typedef struct { 179 ID flgid; /* ã¤ãã³ããã©ã°ID */180 FLGPTN flgptn; /* ã»ããããããããã¿ã¼ã³*/160 ID flgid; /* イベントフラグID */ 161 FLGPTN flgptn; /* セットするビットパターン */ 181 162 } T_NFY_FLG; 182 163 183 164 typedef struct { 184 ID dtqid; /* ãã¼ã¿ãã¥ã¼ID */185 intptr_t data; /* éä¿¡ããå¤*/165 ID dtqid; /* データキューID */ 166 intptr_t data; /* 送信する値 */ 186 167 } T_NFY_DTQ; 187 168 188 169 typedef struct { 189 intptr_t *p_var; /* å¤æ°ã®çªå°*/170 intptr_t *p_var; /* 変数の番地 */ 190 171 } T_ENFY_VAR; 191 172 192 173 typedef struct { 193 ID dtqid; /* ãã¼ã¿ãã¥ã¼ID */174 ID dtqid; /* データキューID */ 194 175 } T_ENFY_DTQ; 195 176 196 177 typedef struct { 197 MODE nfymode; /* éç¥å¦çã¢ã¼ã */ 198 union { /* ã¿ã¤ã ã¤ãã³ãã®éç¥ã«é¢ããä»éæ 199 å ± */ 178 MODE nfymode; /* 通知処理モード */ 179 union { /* タイムイベントの通知に関する付随情報 */ 200 180 T_NFY_HDR handler; 201 181 T_NFY_VAR setvar; … … 207 187 T_NFY_DTQ snddtq; 208 188 } nfy; 209 union { /* ã¨ã©ã¼ã®éç¥ã«é¢ããä»éæ 210 å ± */ 189 union { /* エラーの通知に関する付随情報 */ 211 190 T_ENFY_VAR setvar; 212 191 T_NFY_IVAR incvar; … … 220 199 221 200 /* 222 * ãã±ããå½¢å¼ã®å®ç¾©201 * パケット形式の定義 223 202 */ 224 203 typedef struct t_ctsk { 225 ATR tskatr; /* ã¿ã¹ã¯å±æ§ */ 226 intptr_t exinf; /* ã¿ã¹ã¯ã®æ¡å¼µæ 227 å ± */ 228 TASK task; /* ã¿ã¹ã¯ã®ã¡ã¤ã³ã«ã¼ãã³ã®å 229 é çªå° */ 230 PRI itskpri; /* ã¿ã¹ã¯ã®èµ·åæåªå 231 度 */ 232 size_t stksz; /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®ãµã¤ãº */ 233 STK_T *stk; /* ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®å 234 é çªå° */ 204 ATR tskatr; /* タスク属性 */ 205 intptr_t exinf; /* タスクの拡張情報 */ 206 TASK task; /* タスクのメインルーチンの先頭番地 */ 207 PRI itskpri; /* タスクの起動時優先度 */ 208 size_t stksz; /* タスクのスタック領域のサイズ */ 209 STK_T *stk; /* タスクのスタック領域の先頭番地 */ 235 210 } T_CTSK; 236 211 237 212 typedef struct t_rtsk { 238 STAT tskstat; /* ã¿ã¹ã¯ç¶æ 239 */ 240 PRI tskpri; /* ã¿ã¹ã¯ã®ç¾å¨åªå 241 度 */ 242 PRI tskbpri; /* ã¿ã¹ã¯ã®ãã¼ã¹åªå 243 度 */ 244 STAT tskwait; /* å¾ 245 ã¡è¦å */ 246 ID wobjid; /* å¾ 247 ã¡å¯¾è±¡ã®ãªãã¸ã§ã¯ãã®ID */ 248 TMO lefttmo; /* ã¿ã¤ã ã¢ã¦ãããã¾ã§ã®æé */ 249 uint_t actcnt; /* èµ·åè¦æ±ãã¥ã¼ã¤ã³ã°æ° */ 250 uint_t wupcnt; /* èµ·åºè¦æ±ãã¥ã¼ã¤ã³ã°æ° */ 251 bool_t raster; /* ã¿ã¹ã¯çµäºè¦æ±ç¶æ 252 */ 253 bool_t dister; /* ã¿ã¹ã¯çµäºç¦æ¢ç¶æ 254 */ 213 STAT tskstat; /* タスク状態 */ 214 PRI tskpri; /* タスクの現在優先度 */ 215 PRI tskbpri; /* タスクのベース優先度 */ 216 STAT tskwait; /* 待ち要因 */ 217 ID wobjid; /* 待ち対象のオブジェクトのID */ 218 TMO lefttmo; /* タイムアウトするまでの時間 */ 219 uint_t actcnt; /* 起動要求キューイング数 */ 220 uint_t wupcnt; /* 起床要求キューイング数 */ 221 bool_t raster; /* タスク終了要求状態 */ 222 bool_t dister; /* タスク終了禁止状態 */ 255 223 } T_RTSK; 256 224 257 225 typedef struct t_csem { 258 ATR sematr; /* ã»ããã©å±æ§*/259 uint_t isemcnt; /* ã»ããã©ã®åæè³æºæ°*/260 uint_t maxsem; /* ã»ããã©ã®æ大è³æºæ°*/226 ATR sematr; /* セマフォ属性 */ 227 uint_t isemcnt; /* セマフォの初期資源数 */ 228 uint_t maxsem; /* セマフォの最大資源数 */ 261 229 } T_CSEM; 262 230 263 231 typedef struct t_rsem { 264 ID wtskid; /* ã»ããã©ã®å¾ 265 ã¡è¡åã®å 266 é ã®ã¿ã¹ã¯ã®IDçªå· */ 267 uint_t semcnt; /* ã»ããã©ã®ç¾å¨ã®è³æºæ° */ 232 ID wtskid; /* セマフォの待ち行列の先頭のタスクのID番号 */ 233 uint_t semcnt; /* セマフォの現在の資源数 */ 268 234 } T_RSEM; 269 235 270 236 typedef struct t_cflg { 271 ATR flgatr; /* ã¤ãã³ããã©ã°å±æ§*/272 FLGPTN iflgptn; /* ã¤ãã³ããã©ã°ã®åæããããã¿ã¼ã³*/237 ATR flgatr; /* イベントフラグ属性 */ 238 FLGPTN iflgptn; /* イベントフラグの初期ビットパターン */ 273 239 } T_CFLG; 274 240 275 241 typedef struct t_rflg { 276 ID wtskid; /* ã¤ãã³ããã©ã°ã®å¾ 277 ã¡è¡åã®å 278 é ã®ã¿ã¹ã¯ã®IDçªå· */ 279 FLGPTN flgptn; /* ã¤ãã³ããã©ã°ã®ç¾å¨ã®ããããã¿ã¼ã³ */ 242 ID wtskid; /* イベントフラグの待ち行列の先頭のタスクのID番号 */ 243 FLGPTN flgptn; /* イベントフラグの現在のビットパターン */ 280 244 } T_RFLG; 281 245 282 246 typedef struct t_cdtq { 283 ATR dtqatr; /* ãã¼ã¿ãã¥ã¼å±æ§ */ 284 uint_t dtqcnt; /* ãã¼ã¿ãã¥ã¼ç®¡çé åã«æ ¼ç´ã§ãããã¼ã¿æ° */ 285 void *dtqmb; /* ãã¼ã¿ãã¥ã¼ç®¡çé åã®å 286 é çªå° */ 247 ATR dtqatr; /* データキュー属性 */ 248 uint_t dtqcnt; /* データキュー管理領域に格納できるデータ数 */ 249 void *dtqmb; /* データキュー管理領域の先頭番地 */ 287 250 } T_CDTQ; 288 251 289 252 typedef struct t_rdtq { 290 ID stskid; /* ãã¼ã¿ãã¥ã¼ã®éä¿¡å¾ 291 ã¡è¡åã®å 292 é ã®ã¿ã¹ã¯ã®IDçªå· */ 293 ID rtskid; /* ãã¼ã¿ãã¥ã¼ã®åä¿¡å¾ 294 ã¡è¡åã®å 295 é ã®ã¿ã¹ã¯ã®IDçªå· */ 296 uint_t sdtqcnt; /* ãã¼ã¿ãã¥ã¼ç®¡çé åã«æ ¼ç´ããã¦ãããã¼ã¿ã®æ° */ 253 ID stskid; /* データキューの送信待ち行列の先頭のタスクのID番号 */ 254 ID rtskid; /* データキューの受信待ち行列の先頭のタスクのID番号 */ 255 uint_t sdtqcnt; /* データキュー管理領域に格納されているデータの数 */ 297 256 } T_RDTQ; 298 257 299 258 typedef struct t_cpdq { 300 ATR pdqatr; /* åªå 301 度ãã¼ã¿ãã¥ã¼å±æ§ */ 302 uint_t pdqcnt; /* åªå 303 度ãã¼ã¿ãã¥ã¼ç®¡çé åã«æ ¼ç´ã§ãããã¼ã¿æ° */ 304 PRI maxdpri; /* åªå 305 度ãã¼ã¿ãã¥ã¼ã«éä¿¡ã§ãããã¼ã¿åªå 306 度ã®æ 307 å¤§å¤ */ 308 void *pdqmb; /* åªå 309 度ãã¼ã¿ãã¥ã¼ç®¡çé åã®å 310 é çªå° */ 259 ATR pdqatr; /* 優先度データキュー属性 */ 260 uint_t pdqcnt; /* 優先度データキュー管理領域に格納できるデータ数 */ 261 PRI maxdpri; /* 優先度データキューに送信できるデータ優先度の最 262 大値 */ 263 void *pdqmb; /* 優先度データキュー管理領域の先頭番地 */ 311 264 } T_CPDQ; 312 265 313 266 typedef struct t_rpdq { 314 ID stskid; /* åªå 315 度ãã¼ã¿ãã¥ã¼ã®éä¿¡å¾ 316 ã¡è¡åã®å 317 é ã®ã¿ã¹ã¯ 318 ã®IDçªå· */ 319 ID rtskid; /* åªå 320 度ãã¼ã¿ãã¥ã¼ã®åä¿¡å¾ 321 ã¡è¡åã®å 322 é ã®ã¿ã¹ã¯ 323 ã®IDçªå· */ 324 uint_t spdqcnt; /* åªå 325 度ãã¼ã¿ãã¥ã¼ç®¡çé åã«æ ¼ç´ããã¦ãããã¼ 326 ã¿ã®æ° */ 267 ID stskid; /* 優先度データキューの送信待ち行列の先頭のタスク 268 のID番号 */ 269 ID rtskid; /* 優先度データキューの受信待ち行列の先頭のタスク 270 のID番号 */ 271 uint_t spdqcnt; /* 優先度データキュー管理領域に格納されているデー 272 タの数 */ 327 273 } T_RPDQ; 328 274 329 275 typedef struct t_cmtx { 330 ATR mtxatr; /* ãã¥ã¼ããã¯ã¹å±æ§ */ 331 PRI ceilpri; /* ãã¥ã¼ããã¯ã¹ã®ä¸éåªå 332 度 */ 276 ATR mtxatr; /* ミューテックス属性 */ 277 PRI ceilpri; /* ミューテックスの上限優先度 */ 333 278 } T_CMTX; 334 279 335 280 typedef struct t_rmtx { 336 ID htskid; /* ãã¥ã¼ããã¯ã¹ãããã¯ãã¦ããã¿ã¹ã¯ã®IDçªå· */ 337 ID wtskid; /* ãã¥ã¼ããã¯ã¹ã®å¾ 338 ã¡è¡åã®å 339 é ã®ã¿ã¹ã¯ã®IDçªå· */ 281 ID htskid; /* ミューテックスをロックしているタスクのID番号 */ 282 ID wtskid; /* ミューテックスの待ち行列の先頭のタスクのID番号 */ 340 283 } T_RMTX; 341 284 342 285 typedef struct t_cmpf { 343 ATR mpfatr; /* åºå®é·ã¡ã¢ãªãã¼ã«å±æ§ */ 344 uint_t blkcnt; /* ç²å¾ã§ããåºå®é·ã¡ã¢ãªãããã¯ã®æ° */ 345 uint_t blksz; /* åºå®é·ã¡ã¢ãªãããã¯ã®ãµã¤ãº */ 346 MPF_T *mpf; /* åºå®é·ã¡ã¢ãªãã¼ã«é åã®å 347 é çªå° */ 348 void *mpfmb; /* åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åã®å 349 é çªå° */ 286 ATR mpfatr; /* 固定長メモリプール属性 */ 287 uint_t blkcnt; /* 獲得できる固定長メモリブロックの数 */ 288 uint_t blksz; /* 固定長メモリブロックのサイズ */ 289 MPF_T *mpf; /* 固定長メモリプール領域の先頭番地 */ 290 void *mpfmb; /* 固定長メモリプール管理領域の先頭番地 */ 350 291 } T_CMPF; 351 292 352 293 typedef struct t_rmpf { 353 ID wtskid; /* åºå®é·ã¡ã¢ãªãã¼ã«ã®å¾ 354 ã¡è¡åã®å 355 é ã®ã¿ã¹ã¯ã® 356 IDçªå· */ 357 uint_t fblkcnt; /* åºå®é·ã¡ã¢ãªãã¼ã«é åã®ç©ºãã¡ã¢ãªé åã«å²ã 358 ä»ãããã¨ãã§ããåºå®é·ã¡ã¢ãªãããã¯ã®æ° */ 294 ID wtskid; /* 固定長メモリプールの待ち行列の先頭のタスクの 295 ID番号 */ 296 uint_t fblkcnt; /* 固定長メモリプール領域の空きメモリ領域に割り 297 付けることができる固定長メモリブロックの数 */ 359 298 } T_RMPF; 360 299 361 300 typedef struct t_ccyc { 362 ATR cycatr; /* å¨æéç¥å±æ§*/363 T_NFYINFO nfyinfo; /* å¨æéç¥ã®éç¥æ¹æ³*/364 RELTIM cyctim; /* å¨æéç¥ã®éç¥å¨æ*/365 RELTIM cycphs; /* å¨æéç¥ã®éç¥ä½ç¸*/301 ATR cycatr; /* 周期通知属性 */ 302 T_NFYINFO nfyinfo; /* 周期通知の通知方法 */ 303 RELTIM cyctim; /* 周期通知の通知周期 */ 304 RELTIM cycphs; /* 周期通知の通知位相 */ 366 305 } T_CCYC; 367 306 368 307 typedef struct t_rcyc { 369 STAT cycstat; /* å¨æéç¥ã®åä½ç¶æ 370 */ 371 RELTIM lefttim; /* 次åéç¥æå»ã¾ã§ã®ç¸å¯¾æé */ 308 STAT cycstat; /* 周期通知の動作状態 */ 309 RELTIM lefttim; /* 次回通知時刻までの相対時間 */ 372 310 } T_RCYC; 373 311 374 312 typedef struct t_calm { 375 ATR almatr; /* ã¢ã©ã¼ã éç¥å±æ§*/376 T_NFYINFO nfyinfo; /* ã¢ã©ã¼ã éç¥ã®éç¥æ¹æ³*/313 ATR almatr; /* アラーム通知属性 */ 314 T_NFYINFO nfyinfo; /* アラーム通知の通知方法 */ 377 315 } T_CALM; 378 316 379 317 typedef struct t_ralm { 380 STAT almstat; /* ã¢ã©ã¼ã éç¥ã®åä½ç¶æ 381 */ 382 RELTIM lefttim; /* éç¥æå»ã¾ã§ã®ç¸å¯¾æé */ 318 STAT almstat; /* アラーム通知の動作状態 */ 319 RELTIM lefttim; /* 通知時刻までの相対時間 */ 383 320 } T_RALM; 384 321 385 322 typedef struct t_cisr { 386 ATR isratr; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å±æ§ */ 387 intptr_t exinf; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®æ¡å¼µæ 388 å ± */ 389 INTNO intno; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãç»é²ããå²è¾¼ã¿çªå· */ 390 ISR isr; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å 391 é çªå° */ 392 PRI isrpri; /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå 393 度 */ 323 ATR isratr; /* 割込みサービスルーチン属性 */ 324 intptr_t exinf; /* 割込みサービスルーチンの拡張情報 */ 325 INTNO intno; /* 割込みサービスルーチンを登録する割込み番号 */ 326 ISR isr; /* 割込みサービスルーチンの先頭番地 */ 327 PRI isrpri; /* 割込みサービスルーチン優先度 */ 394 328 } T_CISR; 395 329 396 330 /* 397 * ãµã¼ãã¹ã³ã¼ã«ã®å®£è¨398 */ 399 400 /* 401 * ã¿ã¹ã¯ç®¡çæ©è½331 * サービスコールの宣言 332 */ 333 334 /* 335 * タスク管理機能 402 336 */ 403 337 extern ER_ID acre_tsk(const T_CTSK *pk_ctsk) throw(); … … 412 346 413 347 /* 414 * ã¿ã¹ã¯ä»å±åææ©è½348 * タスク付属同期機能 415 349 */ 416 350 extern ER slp_tsk(void) throw(); … … 424 358 425 359 /* 426 * ã¿ã¹ã¯çµäºæ©è½360 * タスク終了機能 427 361 */ 428 362 extern ER ext_tsk(void) throw(); … … 434 368 435 369 /* 436 * åæã»éä¿¡æ©è½370 * 同期・通信機能 437 371 */ 438 372 extern ER_ID acre_sem(const T_CSEM *pk_csem) throw(); … … 493 427 494 428 /* 495 * ã¡ã¢ãªãã¼ã«ç®¡çæ©è½429 * メモリプール管理機能 496 430 */ 497 431 extern ER_ID acre_mpf(const T_CMPF *pk_cmpf) throw(); … … 505 439 506 440 /* 507 * æé管çæ©è½441 * 時間管理機能 508 442 */ 509 443 extern ER set_tim(SYSTIM systim) throw(); … … 525 459 526 460 /* 527 * ã·ã¹ãã ç¶æ 528 管çæ©è½ 461 * システム状態管理機能 529 462 */ 530 463 extern ER rot_rdq(PRI tskpri) throw(); … … 544 477 545 478 /* 546 * å²è¾¼ã¿ç®¡çæ©è½479 * 割込み管理機能 547 480 */ 548 481 extern ER_ID acre_isr(const T_CISR *pk_cisr) throw(); … … 557 490 558 491 /* 559 * CPU ä¾å¤ç®¡çæ©è½492 * CPU例外管理機能 560 493 */ 561 494 extern bool_t xsns_dpn(void *p_excinf) throw(); … … 564 497 565 498 /* 566 * éã¿ã¹ã¯ã³ã³ããã¹ãããå¼ã³åºãããµã¼ãã¹ã³ã¼ã«499 * 非タスクコンテキストから呼び出せるサービスコール 567 500 */ 568 501 #define iact_tsk(tskid) act_tsk(tskid) … … 596 529 597 530 /* 598 * ãªãã¸ã§ã¯ãå±æ§ã®å®ç¾© 599 */ 600 #define TA_ACT UINT_C(0x01) /* ã¿ã¹ã¯ãèµ·åãããç¶æ 601 ã§çæ */ 602 #define TA_NOACTQUE UINT_C(0x02) /* èµ·åè¦æ±ããã¥ã¼ã¤ã³ã°ããªã */ 603 604 #define TA_TPRI UINT_C(0x01) /* ã¿ã¹ã¯ã®å¾ 605 ã¡è¡åãåªå 606 度é ã« */ 607 608 #define TA_WMUL UINT_C(0x02) /* è¤æ°ã®å¾ 609 ã¡ã¿ã¹ã¯ */ 610 #define TA_CLR UINT_C(0x04) /* ã¤ãã³ããã©ã°ã®ã¯ãªã¢æå® */ 611 612 #define TA_CEILING UINT_C(0x03) /* åªå 613 度ä¸éãããã³ã« */ 614 615 #define TA_STA UINT_C(0x02) /* å¨æéç¥ãåä½ç¶æ 616 ã§çæ */ 617 618 #define TA_NONKERNEL UINT_C(0x02) /* ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ */ 619 620 #define TA_ENAINT UINT_C(0x01) /* å²è¾¼ã¿è¦æ±ç¦æ¢ãã©ã°ãã¯ãªã¢ */ 621 #define TA_EDGE UINT_C(0x02) /* ã¨ãã¸ããªã¬ */ 622 623 /* 624 * ãµã¼ãã¹ã³ã¼ã«ã®åä½ã¢ã¼ãã®å®ç¾© 625 */ 626 #define TWF_ORW UINT_C(0x01) /* ã¤ãã³ããã©ã°ã®ORå¾ 627 ã¡ */ 628 #define TWF_ANDW UINT_C(0x02) /* ã¤ãã³ããã©ã°ã®ANDå¾ 629 ã¡ */ 630 631 /* 632 * éç¥å¦çã¢ã¼ãã®å®ç¾© 633 */ 634 #define TNFY_HANDLER UINT_C(0x00) /* ã¿ã¤ã ã¤ãã³ããã³ãã©ã®å¼åºã */ 635 #define TNFY_SETVAR UINT_C(0x01) /* å¤æ°ã®è¨å® */ 636 #define TNFY_INCVAR UINT_C(0x02) /* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ã */ 637 #define TNFY_ACTTSK UINT_C(0x03) /* ã¿ã¹ã¯ã®èµ·å */ 638 #define TNFY_WUPTSK UINT_C(0x04) /* ã¿ã¹ã¯ã®èµ·åº */ 639 #define TNFY_SIGSEM UINT_C(0x05) /* ã»ããã©ã®è³æºã®è¿å´ */ 640 #define TNFY_SETFLG UINT_C(0x06) /* ã¤ãã³ããã©ã°ã®ã»ãã */ 641 #define TNFY_SNDDTQ UINT_C(0x07) /* ãã¼ã¿ãã¥ã¼ã¸ã®éä¿¡ */ 642 643 #define TENFY_SETVAR UINT_C(0x10) /* å¤æ°ã®è¨å® */ 644 #define TENFY_INCVAR UINT_C(0x20) /* å¤æ°ã®ã¤ã³ã¯ãªã¡ã³ã */ 645 #define TENFY_ACTTSK UINT_C(0x30) /* ã¿ã¹ã¯ã®èµ·å */ 646 #define TENFY_WUPTSK UINT_C(0x40) /* ã¿ã¹ã¯ã®èµ·åº */ 647 #define TENFY_SIGSEM UINT_C(0x50) /* ã»ããã©ã®è¿å´ */ 648 #define TENFY_SETFLG UINT_C(0x60) /* ã¤ãã³ããã©ã°ã®ã»ãã */ 649 #define TENFY_SNDDTQ UINT_C(0x70) /* ãã¼ã¿ãã¥ã¼ã¸ã®éä¿¡ */ 650 651 /* 652 * ãªãã¸ã§ã¯ãã®ç¶æ 653 ã®å®ç¾© 654 */ 655 #define TTS_RUN UINT_C(0x01) /* å®è¡ç¶æ 656 */ 657 #define TTS_RDY UINT_C(0x02) /* å®è¡å¯è½ç¶æ 658 */ 659 #define TTS_WAI UINT_C(0x04) /* å¾ 660 ã¡ç¶æ 661 */ 662 #define TTS_SUS UINT_C(0x08) /* å¼·å¶å¾ 663 ã¡ç¶æ 664 */ 665 #define TTS_WAS UINT_C(0x0c) /* äºéå¾ 666 ã¡ç¶æ 667 */ 668 #define TTS_DMT UINT_C(0x10) /* ä¼æ¢ç¶æ 669 */ 670 671 #define TTW_SLP UINT_C(0x0001) /* èµ·åºå¾ 672 ã¡ */ 673 #define TTW_DLY UINT_C(0x0002) /* æéçµéå¾ 674 ã¡ */ 675 #define TTW_SEM UINT_C(0x0004) /* ã»ããã©ã®è³æºç²å¾å¾ 676 ã¡ */ 677 #define TTW_FLG UINT_C(0x0008) /* ã¤ãã³ããã©ã°å¾ 678 ã¡ */ 679 #define TTW_SDTQ UINT_C(0x0010) /* ãã¼ã¿ãã¥ã¼ã¸ã®éä¿¡å¾ 680 ã¡ */ 681 #define TTW_RDTQ UINT_C(0x0020) /* ãã¼ã¿ãã¥ã¼ããã®åä¿¡å¾ 682 ã¡ */ 683 #define TTW_SPDQ UINT_C(0x0100) /* åªå 684 度ãã¼ã¿ãã¥ã¼ã¸ã®éä¿¡å¾ 685 ã¡ */ 686 #define TTW_RPDQ UINT_C(0x0200) /* åªå 687 度ãã¼ã¿ãã¥ã¼ããã®åä¿¡å¾ 688 ã¡ */ 689 #define TTW_MTX UINT_C(0x0080) /* ãã¥ã¼ããã¯ã¹ã®ããã¯å¾ 690 ã¡ç¶æ 691 */ 692 #define TTW_MPF UINT_C(0x2000) /* åºå®é·ã¡ã¢ãªãããã¯ã®ç²å¾å¾ 693 ã¡ */ 694 695 #define TCYC_STP UINT_C(0x01) /* å¨æéç¥ãåä½ãã¦ããªã */ 696 #define TCYC_STA UINT_C(0x02) /* å¨æéç¥ãåä½ãã¦ãã */ 697 698 #define TALM_STP UINT_C(0x01) /* ã¢ã©ã¼ã éç¥ãåä½ãã¦ããªã */ 699 #define TALM_STA UINT_C(0x02) /* ã¢ã©ã¼ã éç¥ãåä½ãã¦ãã */ 700 701 /* 702 * ãã®ä»ã®å®æ°ã®å®ç¾© 703 */ 704 #define TSK_SELF 0 /* èªã¿ã¹ã¯æå® */ 705 #define TSK_NONE 0 /* 該å½ããã¿ã¹ã¯ããªã */ 706 707 #define TPRI_SELF 0 /* èªã¿ã¹ã¯ã®ãã¼ã¹åªå 708 度 */ 709 #define TPRI_INI 0 /* ã¿ã¹ã¯ã®èµ·åæåªå 710 度 */ 711 712 #define TIPM_ENAALL 0 /* å²è¾¼ã¿åªå 713 度ãã¹ã¯å 714 ¨è§£é¤ */ 715 716 /* 717 * æ§æå®æ°ã¨ãã¯ã 718 */ 719 720 /* 721 * åªå 722 度ã®ç¯å² 723 */ 724 #define TMIN_TPRI 1 /* ã¿ã¹ã¯åªå 725 度ã®æå°å¤ï¼æé«å¤ï¼*/ 726 #define TMAX_TPRI 16 /* ã¿ã¹ã¯åªå 727 度ã®æ大å¤ï¼æä½å¤ï¼*/ 728 #define TMIN_DPRI 1 /* ãã¼ã¿åªå 729 度ã®æå°å¤ï¼æé«å¤ï¼*/ 730 #define TMAX_DPRI 16 /* ãã¼ã¿åªå 731 度ã®æ大å¤ï¼æä½å¤ï¼*/ 732 #define TMIN_ISRPRI 1 /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå 733 度ã®æå°å¤ */ 734 #define TMAX_ISRPRI 16 /* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå 735 度ã®æå¤§å¤ */ 736 737 /* 738 * ãã¼ã¸ã§ã³æ 739 å ± 740 */ 741 #define TKERNEL_MAKER UINT_C(0x0118) /* ã«ã¼ãã«ã®ã¡ã¼ã«ã¼ã³ã¼ã */ 742 #define TKERNEL_PRID UINT_C(0x0007) /* ã«ã¼ãã«ã®èå¥çªå· */ 743 #define TKERNEL_SPVER UINT_C(0xf631) /* ã«ã¼ãã«ä»æ§ã®ãã¼ã¸ã§ã³çªå· */ 744 #define TKERNEL_PRVER UINT_C(0x3020) /* ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå· */ 745 746 /* 747 * ãã¥ã¼ã¤ã³ã°åæ°ã®æå¤§å¤ 748 */ 749 #define TMAX_ACTCNT UINT_C(1) /* èµ·åè¦æ±ãã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ */ 750 #define TMAX_WUPCNT UINT_C(1) /* èµ·åºè¦æ±ãã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ */ 751 752 /* 753 * ããããã¿ã¼ã³ã®ãããæ° 754 */ 755 #ifndef TBIT_FLGPTN /* ã¤ãã³ããã©ã°ã®ãããæ° */ 531 * オブジェクト属性の定義 532 */ 533 #define TA_ACT UINT_C(0x01) /* タスクを起動された状態で生成 */ 534 #define TA_NOACTQUE UINT_C(0x02) /* 起動要求をキューイングしない */ 535 536 #define TA_TPRI UINT_C(0x01) /* タスクの待ち行列を優先度順に */ 537 538 #define TA_WMUL UINT_C(0x02) /* 複数の待ちタスク */ 539 #define TA_CLR UINT_C(0x04) /* イベントフラグのクリア指定 */ 540 541 #define TA_CEILING UINT_C(0x03) /* 優先度上限プロトコル */ 542 543 #define TA_STA UINT_C(0x02) /* 周期通知を動作状態で生成 */ 544 545 #define TA_NONKERNEL UINT_C(0x02) /* カーネル管理外の割込み */ 546 547 #define TA_ENAINT UINT_C(0x01) /* 割込み要求禁止フラグをクリア */ 548 #define TA_EDGE UINT_C(0x02) /* エッジトリガ */ 549 550 /* 551 * サービスコールの動作モードの定義 552 */ 553 #define TWF_ORW UINT_C(0x01) /* イベントフラグのOR待ち */ 554 #define TWF_ANDW UINT_C(0x02) /* イベントフラグのAND待ち */ 555 556 /* 557 * 通知処理モードの定義 558 */ 559 #define TNFY_HANDLER UINT_C(0x00) /* タイムイベントハンドラの呼出し */ 560 #define TNFY_SETVAR UINT_C(0x01) /* 変数の設定 */ 561 #define TNFY_INCVAR UINT_C(0x02) /* 変数のインクリメント */ 562 #define TNFY_ACTTSK UINT_C(0x03) /* タスクの起動 */ 563 #define TNFY_WUPTSK UINT_C(0x04) /* タスクの起床 */ 564 #define TNFY_SIGSEM UINT_C(0x05) /* セマフォの資源の返却 */ 565 #define TNFY_SETFLG UINT_C(0x06) /* イベントフラグのセット */ 566 #define TNFY_SNDDTQ UINT_C(0x07) /* データキューへの送信 */ 567 568 #define TENFY_SETVAR UINT_C(0x10) /* 変数の設定 */ 569 #define TENFY_INCVAR UINT_C(0x20) /* 変数のインクリメント */ 570 #define TENFY_ACTTSK UINT_C(0x30) /* タスクの起動 */ 571 #define TENFY_WUPTSK UINT_C(0x40) /* タスクの起床 */ 572 #define TENFY_SIGSEM UINT_C(0x50) /* セマフォの返却 */ 573 #define TENFY_SETFLG UINT_C(0x60) /* イベントフラグのセット */ 574 #define TENFY_SNDDTQ UINT_C(0x70) /* データキューへの送信 */ 575 576 /* 577 * オブジェクトの状態の定義 578 */ 579 #define TTS_RUN UINT_C(0x01) /* 実行状態 */ 580 #define TTS_RDY UINT_C(0x02) /* 実行可能状態 */ 581 #define TTS_WAI UINT_C(0x04) /* 待ち状態 */ 582 #define TTS_SUS UINT_C(0x08) /* 強制待ち状態 */ 583 #define TTS_WAS UINT_C(0x0c) /* 二重待ち状態 */ 584 #define TTS_DMT UINT_C(0x10) /* 休止状態 */ 585 586 #define TTW_SLP UINT_C(0x0001) /* 起床待ち */ 587 #define TTW_DLY UINT_C(0x0002) /* 時間経過待ち */ 588 #define TTW_SEM UINT_C(0x0004) /* セマフォの資源獲得待ち */ 589 #define TTW_FLG UINT_C(0x0008) /* イベントフラグ待ち */ 590 #define TTW_SDTQ UINT_C(0x0010) /* データキューへの送信待ち */ 591 #define TTW_RDTQ UINT_C(0x0020) /* データキューからの受信待ち */ 592 #define TTW_SPDQ UINT_C(0x0100) /* 優先度データキューへの送信待ち */ 593 #define TTW_RPDQ UINT_C(0x0200) /* 優先度データキューからの受信待ち */ 594 #define TTW_MTX UINT_C(0x0080) /* ミューテックスのロック待ち状態 */ 595 #define TTW_MPF UINT_C(0x2000) /* 固定長メモリブロックの獲得待ち */ 596 597 #define TCYC_STP UINT_C(0x01) /* 周期通知が動作していない */ 598 #define TCYC_STA UINT_C(0x02) /* 周期通知が動作している */ 599 600 #define TALM_STP UINT_C(0x01) /* アラーム通知が動作していない */ 601 #define TALM_STA UINT_C(0x02) /* アラーム通知が動作している */ 602 603 /* 604 * その他の定数の定義 605 */ 606 #define TSK_SELF 0 /* 自タスク指定 */ 607 #define TSK_NONE 0 /* 該当するタスクがない */ 608 609 #define TPRI_SELF 0 /* 自タスクのベース優先度 */ 610 #define TPRI_INI 0 /* タスクの起動時優先度 */ 611 612 #define TIPM_ENAALL 0 /* 割込み優先度マスク全解除 */ 613 614 /* 615 * 構成定数とマクロ 616 */ 617 618 /* 619 * 優先度の範囲 620 */ 621 #define TMIN_TPRI 1 /* タスク優先度の最小値(最高値)*/ 622 #define TMAX_TPRI 16 /* タスク優先度の最大値(最低値)*/ 623 #define TMIN_DPRI 1 /* データ優先度の最小値(最高値)*/ 624 #define TMAX_DPRI 16 /* データ優先度の最大値(最低値)*/ 625 #define TMIN_ISRPRI 1 /* 割込みサービスルーチン優先度の最小値 */ 626 #define TMAX_ISRPRI 16 /* 割込みサービスルーチン優先度の最大値 */ 627 628 /* 629 * バージョン情報 630 */ 631 #define TKERNEL_MAKER UINT_C(0x0118) /* カーネルのメーカーコード */ 632 #define TKERNEL_PRID UINT_C(0x0007) /* カーネルの識別番号 */ 633 #define TKERNEL_SPVER UINT_C(0xf631) /* カーネル仕様のバージョン番号 */ 634 #define TKERNEL_PRVER UINT_C(0x3020) /* カーネルのバージョン番号 */ 635 636 /* 637 * キューイング回数の最大値 638 */ 639 #define TMAX_ACTCNT UINT_C(1) /* 起動要求キューイング数の最大値 */ 640 #define TMAX_WUPCNT UINT_C(1) /* 起床要求キューイング数の最大値 */ 641 642 /* 643 * ビットパターンのビット数 644 */ 645 #ifndef TBIT_FLGPTN /* イベントフラグのビット数 */ 756 646 #define TBIT_FLGPTN (sizeof(FLGPTN) * CHAR_BIT) 757 647 #endif /* TBIT_FLGPTN */ 758 648 759 649 /* 760 * ã·ã¹ãã æå»ã®èª¿æ´ã§ããç¯å²ï¼åä½ï¼Î¼ç§ï¼761 */ 762 #define TMIN_ADJTIM -1000000 /* ã·ã¹ãã æå»ã®æå°èª¿æ´æé*/763 #define TMAX_ADJTIM 1000000 /* ã·ã¹ãã æå»ã®æ大調æ´æé*/764 765 /* 766 * ã¡ã¢ãªé å確ä¿ã®ããã®ãã¯ã650 * システム時刻の調整できる範囲(単位:μ秒) 651 */ 652 #define TMIN_ADJTIM -1000000 /* システム時刻の最小調整時間 */ 653 #define TMAX_ADJTIM 1000000 /* システム時刻の最大調整時間 */ 654 655 /* 656 * メモリ領域確保のためのマクロ 767 657 * 768 * 以ä¸ã®TOPPERS_COUNT_SZã¨TOPPERS_ROUND_SZã®å®ç¾©ã¯ï¼unitã2ã®å·¾ä¹ã§ã769 * ããã¨ãä»®å®ãã¦ããï¼658 * 以下のTOPPERS_COUNT_SZとTOPPERS_ROUND_SZの定義は,unitが2の巾乗であ 659 * ることを仮定している. 770 660 */ 771 661 #ifndef TOPPERS_COUNT_SZ … … 794 684 795 685 /* 796 * ãã®ä»ã®æ§æå®æ°797 */ 798 #define TMAX_MAXSEM UINT_MAX /* ã»ããã©ã®æ大è³æºæ°ã®æ大å¤*/686 * その他の構成定数 687 */ 688 #define TMAX_MAXSEM UINT_MAX /* セマフォの最大資源数の最大値 */ 799 689 800 690 #ifdef __cplusplus
Note:
See TracChangeset
for help on using the changeset viewer.