2 * Hyper Operating System V4 Advance
5 * @brief %jp{itrncfgのパーサー}%en{perser for itrncfg.h}
7 * Copyright (C) 1998-2006 by Project HOS
8 * http://sourceforge.jp/projects/hos/
12 #ifndef _KERNEL__prser_pitrncfg_h__
13 #define _KERNEL__prser_pitrncfg_h__
16 #if _KERNEL_CFG_MEM_ALIGN <= 0
17 #define _KERNEL_MEM_ALIGN (sizeof(void *))
19 #define _KERNEL_MEM_ALIGN _KERNEL_CFG_MEM_ALIGN
23 /* %jp{INT型のbit数を定義する} */
24 #if _KERNEL_CFG_TBIT_INT <= 0 /* default */
25 #define _KERNEL_TBIT_INT _KERNEL_TBIT_PROC_INT
27 #define _KERNEL_TBIT_INT _KERNEL_CFG_TBIT_INT
30 /* %jp{UINT型のbit数を定義する} */
31 #if _KERNEL_CFG_TBIT_UINT <= 0 /* default */
32 #define _KERNEL_TBIT_UINT _KERNEL_TBIT_PROC_UINT
34 #define _KERNEL_TBIT_UINT _KERNEL_CFG_TBIT_UINT
38 /* %jp{VP_INTをポインタ型とするか} */
39 #define _KERNEL_VP_INT_PTR _KERNEL_CFG_VP_INT_PTR
42 /* %jp{BOOL型のbit数を定義する} */
43 #if _KERNEL_CFG_TBIT_BOOL <= 0 /* default */
44 #define _KERNEL_TBIT_BOOL _KERNEL_TBIT_PROC_INT
46 #define _KERNEL_TBIT_BOOL _KERNEL_CFG_TBIT_BOOL
50 /* %jp{FN型のbit数を定義する}%en{Function code} */
51 #if _KERNEL_CFG_TBIT_FN <= 0 /* default */
52 #define _KERNEL_TBIT_FN _KERNEL_TBIT_PROC_INT
54 #define _KERNEL_TBIT_FN _KERNEL_CFG_TBIT_FN
58 /* %jp{ER型のbit数を定義する}%en{Error code(signed integer)} */
59 #if _KERNEL_CFG_TBIT_ER <= 0 /* default */
60 #define _KERNEL_TBIT_ER _KERNEL_TBIT_PROC_INT
62 #define _KERNEL_TBIT_ER _KERNEL_CFG_TBIT_ER
66 /* %jp{ID型のbit数を定義する}%en{Object ID number(signed integer)} */
67 #if _KERNEL_CFG_TBIT_ID <= 0 /* default */
68 #define _KERNEL_TBIT_ID _KERNEL_TBIT_PROC_INT
70 #define _KERNEL_TBIT_ID _KERNEL_CFG_TBIT_ID
74 /* %jp{ATR型のbit数を定義する}%en{Object attribute(unsigned integer)} */
75 #if _KERNEL_CFG_TBIT_ATR <= 0 /* default */
76 #define _KERNEL_TBIT_ATR _KERNEL_TBIT_PROC_UINT
78 #define _KERNEL_TBIT_ATR _KERNEL_CFG_TBIT_ATR
82 /* %jp{STAT型のbit数を定義する}%en{Object state(unsigned integer)} */
83 #if _KERNEL_CFG_TBIT_STAT <= 0 /* default */
84 #define _KERNEL_TBIT_STAT _KERNEL_TBIT_PROC_UINT
86 #define _KERNEL_TBIT_STAT _KERNEL_CFG_TBIT_STAT
90 /* %jp{MODE型のbit数を定義する}%en{Service call operational mode(unsigned integer)} */
91 #if _KERNEL_CFG_TBIT_MODE <= 0 /* default */
92 #define _KERNEL_TBIT_MODE _KERNEL_TBIT_PROC_UINT
94 #define _KERNEL_TBIT_MODE _KERNEL_CFG_TBIT_MODE
98 /* %jp{PRI型のbit数を定義する}%en{Priority(signed integer)} */
99 #if _KERNEL_CFG_TBIT_PRI <= 0 /* default */
100 #define _KERNEL_TBIT_PRI _KERNEL_TBIT_PROC_INT
102 #define _KERNEL_TBIT_PRI _KERNEL_CFG_TBIT_PRI
106 /* %jp{SIZE型のbit数を定義する}%en{Memory area size(unsigned integer)} */
107 #if _KERNEL_CFG_TBIT_SIZE <= 0 /* default */
108 #define _KERNEL_TBIT_SIZE _KERNEL_TBIT_UINTPTR
110 #define _KERNEL_TBIT_SIZE _KERNEL_CFG_TBIT_SIZE
114 /* %jp{TMO型のbit数を定義する}%en{Timeout} */
115 #if _KERNEL_CFG_TBIT_TMO <= 0 /* default */
116 #define _KERNEL_TBIT_TMO _KERNEL_TBIT_PROC_INT
118 #define _KERNEL_TBIT_TMO _KERNEL_CFG_TBIT_TMO
122 /* %jp{RELTIM型のbit数を定義する}%en{Relative time(unsigned integer, unit of time is implementation-defined)} */
123 #if _KERNEL_CFG_TBIT_RELTIM <= 0 /* default */
124 #define _KERNEL_TBIT_RELTIM _KERNEL_TBIT_PROC_UINT
126 #define _KERNEL_TBIT_RELTIM _KERNEL_CFG_TBIT_RELTIM
130 /* %jp{SYSTIM型のbit数を定義する}%en{System time(unsigned integer, unit of time is implementation-defined)} */
131 #define _KERNEL_SYSTIM_STRUCT _KERNEL_CFG_SYSTIM_STRUCT
132 #if _KERNEL_CFG_TBIT_SYSTIM < 0 /* default */
133 #if _KERNEL_SYSTIM_STRUCT /* %jp{構造体化するなら} */
134 #define _KERNEL_TBIT_SYSTIM 48
136 #define _KERNEL_TBIT_SYSTIM 32
139 #define _KERNEL_TBIT_SYSTIM _KERNEL_CFG_TBIT_SYSTIM
143 /* %jp{ER_BOOL型のbit数を定義する}%en{Error code or a boolean value} */
144 #if _KERNEL_CFG_TBIT_ER_BOOL <= 0
145 #if _KERNEL_TBIT_ER >= _KERNEL_TBIT_BOOL
146 #define _KERNEL_TBIT_ER_BOOL _KERNEL_TBIT_ER
148 #define _KERNEL_TBIT_ER_BOOL _KERNEL_TBIT_BOOL
151 #define _KERNEL_TBIT_ER_BOOL _KERNEL_CFG_TBIT_ER_BOOL
155 /* %jp{ER_IDのbit数を定義する}%en{Error code or an object ID number} */
156 #if _KERNEL_CFG_TBIT_ER_ID <= 0
157 #if _KERNEL_TBIT_ER >= _KERNEL_TBIT_ID
158 #define _KERNEL_TBIT_ER_ID _KERNEL_TBIT_ER
160 #define _KERNEL_TBIT_ER_ID _KERNEL_TBIT_ID
163 #define _KERNEL_TBIT_ER_ID _KERNEL_CFG_TBIT_ER_ID
167 /**< %jp{ER_UINTのbit数を定義する}%en{Error code or an unsigned integer} */
168 #if _KERNEL_CFG_TBIT_ER_UINT <= 0
169 #if _KERNEL_TBIT_ER >= _KERNEL_TBIT_UINT
170 #define _KERNEL_TBIT_ER_UINT _KERNEL_TBIT_ER
172 #define _KERNEL_TBIT_ER_UINT _KERNEL_TBIT_UINT
175 #define _KERNEL_TBIT_ER_UINT _KERNEL_CFG_TBIT_ER_UINT
180 /**< %jp{タスク例外要因のパターン(符号無し整数)}%en{Bit pattern for the task exception code(unsigned integer)} */
181 #if _KERNEL_CFG_TBIT_TEXPTN <= 0
182 #define _KERNEL_TBIT_TEXPTN _KERNEL_TBIT_PROC_UINT
184 #define _KERNEL_TBIT_TEXPTN _KERNEL_CFG_TBIT_TEXPTN
188 #if _KERNEL_CFG_TBIT_FLGPTN <= 0
189 #define _KERNEL_TBIT_FLGPTN _KERNEL_TBIT_PROC_UINT
191 #define _KERNEL_TBIT_FLGPTN _KERNEL_CFG_TBIT_FLGPTN
195 #if _KERNEL_CFG_TBIT_RDVPTN <= 0
196 #define _KERNEL_TBIT_RDVPTN _KERNEL_TBIT_PROC_UINT
198 #define _KERNEL_TBIT_RDVPTN _KERNEL_CFG_TBIT_RDVPTN
202 #if _KERNEL_CFG_TBIT_RDVNO <= 0
204 #define _KERNEL_TBIT_RDVNO _KERNEL_TBIT_PROC_UINT
206 #define _KERNEL_TBIT_RDVNO _KERNEL_CFG_TBIT_RDVNO
210 #if _KERNEL_CFG_TBIT_OVRTIM <= 0
211 #define _KERNEL_TBIT_OVRTIM _KERNEL_TBIT_PROC_INT
213 #define _KERNEL_TBIT_OVRTIM _KERNEL_CFG_TBIT_OVRTIM
217 #if _KERNEL_CFG_TBIT_INHNO <= 0
218 #define _KERNEL_TBIT_INHNO _KERNEL_TBIT_PROC_INT
220 #define _KERNEL_TBIT_INHNO _KERNEL_CFG_TBIT_INHNO
224 #if _KERNEL_CFG_TBIT_INTNO <= 0
225 #define _KERNEL_TBIT_INTNO _KERNEL_TBIT_PROC_INT
227 #define _KERNEL_TBIT_INTNO _KERNEL_CFG_TBIT_INTNO
231 #if _KERNEL_CFG_TBIT_EXCNO <= 0
232 #define _KERNEL_TBIT_EXCNO _KERNEL_TBIT_PROC_INT
234 #define _KERNEL_TBIT_EXCNO _KERNEL_CFG_TBIT_EXCNO
239 /* %jp{優先度の範囲}%en{Priority Range} */
240 #if _KERNEL_CFG_TMAX_TPRI <= 0
241 #define _KERNEL_TMAX_TPRI _KERNEL_TMAX_PROC_INT /**< %jp{タスク優先度の最大値}%en{Maximum task priority} */
243 #define _KERNEL_TMAX_TPRI _KERNEL_CFG_TMAX_TPRI /**< %jp{タスク優先度の最大値}%en{Maximum task priority} */
246 #if _KERNEL_CFG_TMAX_MPRI <= 0
247 #define _KERNEL_TMAX_MPRI _KERNEL_TMAX_PROC_INT /**< %jp{メッセージ優先度の最大値}%en{Maximum message priority} */
249 #define _KERNEL_TMAX_MPRI _KERNEL_CFG_TMAX_MPRI /**< %jp{メッセージ優先度の最大値}%en{Maximum message priority} */
253 /* %jp{キューイング/ネスト回数の最大値}%en{Maximum Nesting/Queueing Count} */
254 /*#define _KERNEL_TMAX_ACTCNT _KERNEL_CFG_TMAX_ACTCNT */ /**< %jp{タスク起動要求キューイング数の最大値(-1の時デフォルト値)} */
255 /*#define _KERNEL_TMAX_WUPCNT _KERNEL_CFG_TMAX_WUPCNT */ /**< %jp{タスク起床要求キューイング数の最大値(-1の時デフォルト値)} */
256 /*#define _KERNEL_TMAX_SUSCNT _KERNEL_CFG_TMAX_SUSCNT */ /**< %jp{タスク強制待ち要求ネスト数の最大値(-1の時デフォルト値)} */
258 #if _KERNEL_CFG_TMAX_ACTCNT < 0
259 #define _KERNEL_TMAX_ACTCNT _KERNEL_TMAX_UINT
261 #define _KERNEL_TMAX_ACTCNT _KERNEL_CFG_TMAX_ACTCNT
264 #if _KERNEL_CFG_TMAX_WUPCNT < 0
265 #define _KERNEL_TMAX_WUPCNT _KERNEL_TMAX_UINT
267 #define _KERNEL_TMAX_WUPCNT _KERNEL_CFG_TMAX_WUPCNT
270 #if _KERNEL_CFG_TMAX_SUSCNT < 0
271 #define _KERNEL_TMAX_SUSCNT _KERNEL_TMAX_UINT
273 #define _KERNEL_TMAX_SUSCNT _KERNEL_CFG_TMAX_SUSCNT
280 #if _KERNEL_CFG_TEX_TBIT_TEXPTN < 0 /**< %jp{タスク例外要因のビット数} */
281 #define _KERNEL_TEX_TBIT_TEXPTN _KERNEL_TBIT_TEXPTN
283 #define _KERNEL_TEX_TBIT_TEXPTN _KERNEL_CFG_TEX_TBIT_TEXPTN
286 #if _KERNEL_CFG_FLG_TBIT_FLGPTN < 0 /**< %jp{イベントフラグのビット数} */
287 #define _KERNEL_FLG_TBIT_FLGPTN _KERNEL_TBIT_FLGPTN
289 #define _KERNEL_FLG_TBIT_FLGPTN _KERNEL_CFG_FLG_TBIT_FLGPTN
292 #if _KERNEL_CFG_RDV_TBIT_RDVPTN < 0
293 #define _KERNEL_RDV_TBIT_RDVPTN _KERNEL_TBIT_RDVPTN /**< %jp{ランデブ条件のビット数} */
295 #define _KERNEL_RDV_TBIT_RDVPTN _KERNEL_CFG_RDV_TBIT_RDVPTN
299 /* %jp{セマフォの最大値}%en{Maximum value of the maximum definable semaphore resource count} */
300 #if _KERNEL_CFG_TMAX_MAXSEM <= 0
301 #define _KERNEL_TMAX_MAXSEM _KERNEL_TMAX_PROC_UINT
303 #define _KERNEL_TMAX_MAXSEM _KERNEL_CFG_TMAX_MAXSEM
308 /* %jp{T_RTSKの変更}%en{T_RTSKの変更} */
309 #define _KERNEL_SPT_RTSK_TSKATR _KERNEL_CFG_RTSK_TSKATR /**< %jp{T_RTSKに tskatr を含めるか(HOS独自拡張機能)} */
310 #define _KERNEL_SPT_RTSK_EXINF _KERNEL_CFG_RTSK_EXINF /**< %jp{T_RTSKに exinf を含めるか(HOS独自拡張機能)} */
311 #define _KERNEL_SPT_RTSK_TASK _KERNEL_CFG_RTSK_TASK /**< %jp{T_RTSKに task を含めるか(HOS独自拡張機能)} */
312 #define _KERNEL_SPT_RTSK_ITSKPRI _KERNEL_CFG_RTSK_ITSKPRI /**< %jp{T_RTSKに itskpri を含めるか(HOS独自拡張機能)} */
313 #define _KERNEL_SPT_RTSK_STKSZ _KERNEL_CFG_RTSK_STKSZ /**< %jp{T_RTSKに stksz を含めるか(HOS独自拡張機能)} */
314 #define _KERNEL_SPT_RTSK_STK _KERNEL_CFG_RTSK_STK /**< %jp{T_RTSKに stk を含めるか(HOS独自拡張機能)} */
317 /* %jp{T_RTSTの構成}%en{T_RTST} */
318 #define _KERNEL_SPT_RTST_TSKATR _KERNEL_CFG_RTST_TSKATR /**< %jp{T_RTSTに tskatr を含めるか(HOS独自拡張機能)} */
319 #define _KERNEL_SPT_RTST_EXINF _KERNEL_CFG_RTST_EXINF /**< %jp{T_RTSTに exinf を含めるか(HOS独自拡張機能)} */
320 #define _KERNEL_SPT_RTST_TASK _KERNEL_CFG_RTST_TASK /**< %jp{T_RTSTに task を含めるか(HOS独自拡張機能)} */
321 #define _KERNEL_SPT_RTST_ITSKPRI _KERNEL_CFG_RTST_ITSKPRI /**< %jp{T_RTSTに itskpri を含めるか(HOS独自拡張機能)} */
322 #define _KERNEL_SPT_RTST_STKSZ _KERNEL_CFG_RTST_STKSZ /**< %jp{T_RTSTに stksz を含めるか(HOS独自拡張機能)} */
323 #define _KERNEL_SPT_RTST_STK _KERNEL_CFG_RTST_STK /**< %jp{T_RTSTに stk を含めるか(HOS独自拡張機能)} */
327 #endif /* _KERNEL__prser_pitrncfg_h__ */