Changeset 167 for UsbWattMeter/trunk/asp_dcre/include/t_stddef.h
- Timestamp:
- Mar 8, 2016, 8:37:45 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
UsbWattMeter/trunk/asp_dcre/include/t_stddef.h
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr; charset=SHIFT_JIS
r164 r167 8 8 * Graduate School of Information Science, Nagoya Univ., JAPAN 9 9 * 10 * ãLì ÒÍCȺÌ(1)`(4)Ìðð½·êÉÀèC{\tgEF 11 * Ai{\tgEFAðüϵ½àÌðÜÞDȺ¯¶jðgpE¡»Eü 12 * ÏEÄzziȺCpÆÄÔj·é±Æð³Åø·éD 13 * (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì 14 * \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[ 15 * XR[hÉÜÜêĢ鱯D 16 * (2) {\tgEFAðCCu`®ÈÇC¼Ì\tgEFAJÉg 17 * pÅ«é`ÅÄzz·éêÉÍCÄzzɺ¤hL 18 gip 19 * Ò}j 20 AÈÇjÉCãLÌì \¦C±Ìpð¨æÑºL 21 * Ì³ÛØKèðfÚ·é±ÆD 22 * (3) {\tgEFAðC@íÉgÝÞÈÇC¼Ì\tgEFAJÉg 23 * pūȢ`ÅÄzz·éêÉÍCÌ¢¸ê©Ìðð½·± 24 * ÆD 25 * (a) Äzzɺ¤hL 26 gipÒ}j 27 AÈÇjÉCãLÌ 28 * ì \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD 29 * (b) ÄzzÌ`ÔðCÊÉèßéû@ÉæÁÄCTOPPERSvWFNgÉ 30 * ñ·é±ÆD 31 * (4) {\tgEFAÌpÉæè¼ÚIܽÍÔÚIɶ¶é¢©Èé¹ 32 * Q©çàCãLì Ò¨æÑTOPPERSvWFNgðÆÓ·é±ÆD 33 * ܽC{\tgEFAÌ[UܽÍGh[U©çÌ¢©Èé 34 * RÉîÿ©çàCãLì Ò¨æÑTOPPERSvWFNgð 35 * ÆÓ·é±ÆD 36 * 37 * {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì Ò¨ 38 * æÑTOPPERSvWFNgÍC{\tgEFAÉÖµÄCÁèÌgpÚI 39 * ÉηéK«àÜßÄC¢©ÈéÛØàsíÈ¢DܽC{\tgEF 40 * AÌpÉæè¼ÚIܽÍÔÚIɶ¶½¢©Èé¹QÉÖµÄàC» 41 * ÌÓCðíÈ¢D 10 * 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ 11 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 12 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 13 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 14 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 15 * スコード中に含まれていること. 16 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 17 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 18 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 19 * の無保証規定を掲載すること. 20 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 21 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 22 * と. 23 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 24 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 25 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 26 * 報告すること. 27 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 28 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 29 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 30 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 31 * 免責すること. 32 * 33 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 34 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 35 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 36 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 37 * の責任を負わない. 42 38 * 43 39 * @(#) $Id$ … … 45 41 46 42 /* 47 * TOPPERS ¤Êwb_t@C48 * 49 * TOPPERS ÖAÌ·×ÄÌ\[Xt@CÅCN[h·×«wb_t@C50 * DeíÌJ[lâ\tgEFAiŤÊÉp¢é±ÆðzèµÄ¢51 * éDTOPPERSÌeíÌJ[lâ\tgEFAiŤÊÉp¢éf[^^C52 * èC}NÌè`ÈÇðÜÞD53 * 54 * AZu¾êÌ\[Xt@C©ç±Ìt@CðCN[h·é55 * ÍCTOPPERS_MACRO_ONLYðè`µÄ¨D±êÉæèC}Nè`ÈOð56 * æ¤ÉÈÁÄ¢éD57 * 58 * ±Ìt@CðCN[h·éOÉCN[hµÄ¨×«t@C59 * ÍÈ¢D43 * TOPPERS共通ヘッダファイル 44 * 45 * TOPPERS関連のすべてのソースファイルでインクルードすべきヘッダファイ 46 * ル.各種のカーネルやソフトウェア部品で共通に用いることを想定してい 47 * る.TOPPERSの各種のカーネルやソフトウェア部品で共通に用いるデータ型, 48 * 定数,マクロの定義などを含む. 49 * 50 * アセンブリ言語のソースファイルからこのファイルをインクルードする時 51 * は,TOPPERS_MACRO_ONLYを定義しておく.これにより,マクロ定義以外を 52 * 除くようになっている. 53 * 54 * このファイルをインクルードする前にインクルードしておくべきファイル 55 * はない. 60 56 */ 61 57 … … 68 64 69 65 /* 70 * ^[Qbg˶66 * ターゲット依存部 71 67 */ 72 68 #include "target_stddef.h" 73 69 74 70 /* 75 * C ¾ê/EC++Åthrow()Éηé½ßÌè`71 * C言語/EC++でthrow()に対処するための定義 76 72 */ 77 73 #if !defined(__cplusplus) || defined(__embedded_cplusplus) … … 82 78 83 79 /* 84 * ^[Qbg˶Ìf[^^Ì}NÌftHgè`80 * ターゲット依存のデータ型のマクロのデフォルト定義 85 81 */ 86 82 #ifndef TOPPERS_bool 87 #define TOPPERS_bool int /* u[^*/83 #define TOPPERS_bool int /* ブール型 */ 88 84 #endif /* TOPPERS_bool */ 89 85 90 86 #ifndef TOPPERS_size 91 #define TOPPERS_size uintptr_t /* TCY^*/87 #define TOPPERS_size uintptr_t /* サイズ型 */ 92 88 #endif /* TOPPERS_size */ 93 89 … … 95 91 struct TOPPERS_dummy_t { int TOPPERS_dummy_field; }; 96 92 typedef void (*TOPPERS_fp_t)(struct TOPPERS_dummy_t); 97 #define TOPPERS_fp TOPPERS_fp_t /* vOÌN®Ôn*/93 #define TOPPERS_fp TOPPERS_fp_t /* プログラムの起動番地 */ 98 94 #endif /* TOPPERS_fp */ 99 95 100 96 /* 101 * ¤Êf[^^102 */ 103 typedef TOPPERS_bool bool_t; /* ^Ul*/104 105 typedef signed int int_t; /* ©RÈTCYÌt«®*/106 typedef unsigned int uint_t; /* ©RÈTCY̳µ®*/107 108 typedef signed long long_t; /* ·ßÌTCYÌt«®*/109 typedef unsigned long ulong_t; /* ·ßÌTCY̳µ®*/110 111 typedef int_t FN; /* @\R[h*/112 typedef int_t ER; /* G[R[h*/113 typedef int_t ID; /* IuWFNgÌIDÔ*/114 typedef uint_t ATR; /* IuWFNgÌ®«*/115 typedef uint_t STAT; /* IuWFNgÌóÔ*/116 typedef uint_t MODE; /* T[rXR[Ì®ì[h*/117 typedef int_t PRI; /* Dæx*/118 typedef TOPPERS_size SIZE; /* ÌæÌTCY*/119 120 typedef int_t TMO; /* ^CAEgwè*/121 typedef uint_t RELTIM; /* ÎÔ*/122 typedef ulong_t SYSTIM; /* VXe*/123 typedef ulong_t SYSUTM; /* «\]¿pVXe*/124 125 typedef TOPPERS_fp FP; /* vOÌN®Ôn*/126 127 typedef int_t ER_BOOL; /* G[R[hܽÍ^Ul*/128 typedef int_t ER_ID; /* G[R[hܽÍIDÔ*/129 typedef int_t ER_UINT; /* G[R[hܽͳµ®*/130 131 typedef uintptr_t MB_T; /* ÇÌæðmÛ·é½ßÌf[^^*/132 133 typedef uint32_t ACPTN; /* ANZXÂp^[*/134 typedef struct acvct { /* ANZXÂxN^*/135 ACPTN acptn1; /* Êíì1ÌANZXÂp^[*/136 ACPTN acptn2; /* Êíì2ÌANZXÂp^[*/137 ACPTN acptn3; /* ÇìÌANZXÂp^[*/138 ACPTN acptn4; /* QÆìÌANZXÂp^[*/97 * 共通データ型 98 */ 99 typedef TOPPERS_bool bool_t; /* 真偽値 */ 100 101 typedef signed int int_t; /* 自然なサイズの符号付き整数 */ 102 typedef unsigned int uint_t; /* 自然なサイズの符号無し整数 */ 103 104 typedef signed long long_t; /* 長めのサイズの符号付き整数 */ 105 typedef unsigned long ulong_t; /* 長めのサイズの符号無し整数 */ 106 107 typedef int_t FN; /* 機能コード */ 108 typedef int_t ER; /* エラーコード */ 109 typedef int_t ID; /* オブジェクトのID番号 */ 110 typedef uint_t ATR; /* オブジェクトの属性 */ 111 typedef uint_t STAT; /* オブジェクトの状態 */ 112 typedef uint_t MODE; /* サービスコールの動作モード */ 113 typedef int_t PRI; /* 優先度 */ 114 typedef TOPPERS_size SIZE; /* メモリ領域のサイズ */ 115 116 typedef int_t TMO; /* タイムアウト指定 */ 117 typedef uint_t RELTIM; /* 相対時間 */ 118 typedef ulong_t SYSTIM; /* システム時刻 */ 119 typedef ulong_t SYSUTM; /* 性能評価用システム時刻 */ 120 121 typedef TOPPERS_fp FP; /* プログラムの起動番地 */ 122 123 typedef int_t ER_BOOL; /* エラーコードまたは真偽値 */ 124 typedef int_t ER_ID; /* エラーコードまたはID番号 */ 125 typedef int_t ER_UINT; /* エラーコードまたは符号無し整数 */ 126 127 typedef uintptr_t MB_T; /* 管理領域を確保するためのデータ型 */ 128 129 typedef uint32_t ACPTN; /* アクセス許可パターン */ 130 typedef struct acvct { /* アクセス許可ベクタ */ 131 ACPTN acptn1; /* 通常操作1のアクセス許可パターン */ 132 ACPTN acptn2; /* 通常操作2のアクセス許可パターン */ 133 ACPTN acptn3; /* 管理操作のアクセス許可パターン */ 134 ACPTN acptn4; /* 参照操作のアクセス許可パターン */ 139 135 } ACVCT; 140 136 … … 142 138 143 139 /* 144 * ®èðìé}N140 * 整数定数を作るマクロ 145 141 */ 146 142 #ifndef UINT_C 147 #define UINT_C(val) (val ## U) /* uint_t ^Ìèðìé}N*/143 #define UINT_C(val) (val ## U) /* uint_t型の定数を作るマクロ */ 148 144 #endif /* UINT_C */ 149 145 150 146 #ifndef ULONG_C 151 #define ULONG_C(val) (val ## UL) /* ulong_t ^Ìèðìé}N*/147 #define ULONG_C(val) (val ## UL) /* ulong_t型の定数を作るマクロ */ 152 148 #endif /* ULONG_C */ 153 149 154 150 /* 155 * êÊè151 * 一般定数 156 152 */ 157 153 #ifndef NULL 158 #define NULL 0 /* ³ø|C^*/154 #define NULL 0 /* 無効ポインタ */ 159 155 #endif /* NULL */ 160 156 161 157 #ifndef true 162 #define true 1 /* ^*/158 #define true 1 /* 真 */ 163 159 #endif /* true */ 164 160 165 161 #ifndef false 166 #define false 0 /* U*/162 #define false 0 /* 偽 */ 167 163 #endif /* false */ 168 164 169 #define E_OK 0 /* ³íI¹ */ 170 171 /* 172 * CG[R[h 173 */ 174 #define E_SYS (-5) /* VXeG[ */ 175 #define E_NOSPT (-9) /* ¢T|[g@\ */ 176 #define E_RSFN (-10) /* \ñ@\R[h */ 177 #define E_RSATR (-11) /* \ñ®« */ 178 #define E_PAR (-17) /* p[^G[ */ 179 #define E_ID (-18) /* s³IDÔ */ 180 #define E_CTX (-25) /* ReLXgG[ */ 181 #define E_MACV (-26) /* ANZXá½ */ 182 #define E_OACV (-27) /* IuWFNgANZXá½ */ 183 #define E_ILUSE (-28) /* T[rXR[s³gp */ 184 #define E_NOMEM (-33) /* s« */ 185 #define E_NOID (-34) /* IDÔs« */ 186 #define E_NORES (-35) /* ¹s« */ 187 #define E_OBJ (-41) /* IuWFNgóÔG[ */ 188 #define E_NOEXS (-42) /* IuWFNg¢¶¬ */ 189 #define E_QOVR (-43) /* L 190 [COI[o[t[ */ 191 #define E_RLWAI (-49) /* Ò¿óÔ̧ð */ 192 #define E_TMOUT (-50) /* |[O¸sܽÍ^CAEg */ 193 #define E_DLT (-51) /* Ò¿IuWFNgÌí */ 194 #define E_CLS (-52) /* Ò¿IuWFNgÌóÔÏ» */ 195 #define E_WBLK (-57) /* mubLOót¯ */ 196 #define E_BOVR (-58) /* obt@I[o[t[ */ 197 198 /* 199 * IuWFNg®« 200 */ 201 #define TA_NULL UINT_C(0) /* IuWFNg®«ðwèµÈ¢ */ 202 203 /* 204 * ^CAEgwè 205 */ 206 #define TMO_POL 0 /* |[O */ 207 #define TMO_FEVR (-1) /* ivÒ¿ */ 208 #define TMO_NBLK (-2) /* mubLO */ 209 210 /* 211 * ANZXÂp^[ 212 */ 213 #define TACP_KERNEL (0U) /* J[lhC¾¯ÉANZXð */ 214 #define TACP_SHARED (~0U) /* ·×ÄÌhC©çANZXð */ 215 216 /* 217 * ^ÉÖ·éîñðæèo·½ßÌ}N 218 * 219 * ȺÌALIGN_TYPEÌè`ÍCACgÌPʪ2ÌÐæÅ é±Æð 220 * ¼èµÄ¢éD 165 #define E_OK 0 /* 正常終了 */ 166 167 /* 168 * メインエラーコード 169 */ 170 #define E_SYS (-5) /* システムエラー */ 171 #define E_NOSPT (-9) /* 未サポート機能 */ 172 #define E_RSFN (-10) /* 予約機能コード */ 173 #define E_RSATR (-11) /* 予約属性 */ 174 #define E_PAR (-17) /* パラメータエラー */ 175 #define E_ID (-18) /* 不正ID番号 */ 176 #define E_CTX (-25) /* コンテキストエラー */ 177 #define E_MACV (-26) /* メモリアクセス違反 */ 178 #define E_OACV (-27) /* オブジェクトアクセス違反 */ 179 #define E_ILUSE (-28) /* サービスコール不正使用 */ 180 #define E_NOMEM (-33) /* メモリ不足 */ 181 #define E_NOID (-34) /* ID番号不足 */ 182 #define E_NORES (-35) /* 資源不足 */ 183 #define E_OBJ (-41) /* オブジェクト状態エラー */ 184 #define E_NOEXS (-42) /* オブジェクト未生成 */ 185 #define E_QOVR (-43) /* キューイングオーバーフロー */ 186 #define E_RLWAI (-49) /* 待ち状態の強制解除 */ 187 #define E_TMOUT (-50) /* ポーリング失敗またはタイムアウト */ 188 #define E_DLT (-51) /* 待ちオブジェクトの削除 */ 189 #define E_CLS (-52) /* 待ちオブジェクトの状態変化 */ 190 #define E_WBLK (-57) /* ノンブロッキング受付け */ 191 #define E_BOVR (-58) /* バッファオーバーフロー */ 192 193 /* 194 * オブジェクト属性 195 */ 196 #define TA_NULL UINT_C(0) /* オブジェクト属性を指定しない */ 197 198 /* 199 * タイムアウト指定 200 */ 201 #define TMO_POL 0 /* ポーリング */ 202 #define TMO_FEVR (-1) /* 永久待ち */ 203 #define TMO_NBLK (-2) /* ノンブロッキング */ 204 205 /* 206 * アクセス許可パターン 207 */ 208 #define TACP_KERNEL (0U) /* カーネルドメインだけにアクセスを許可 */ 209 #define TACP_SHARED (~0U) /* すべてのドメインからアクセスを許可 */ 210 211 /* 212 * 型に関する情報を取り出すためのマクロ 213 * 214 * 以下のALIGN_TYPEの定義は,アラインメントの単位が2の巾乗であることを 215 * 仮定している. 221 216 */ 222 217 #ifndef offsetof … … 228 223 #endif /* alignof */ 229 224 230 #ifndef ALIGN_TYPE /* ACgÌ`FbN*/225 #ifndef ALIGN_TYPE /* アラインメントのチェック */ 231 226 #define ALIGN_TYPE(addr, type) \ 232 227 ((((uintptr_t)(addr)) & (alignof(type) - 1)) == 0U) … … 234 229 235 230 /* 236 * assert }N231 * assertマクロ 237 232 */ 238 233 #undef assert … … 249 244 250 245 /* 251 * G[R[h¶¬Eªð}N252 * 253 * ȺÌ}Nè`ÍCt«®ª2ÌâÅ\»³êĨèCEVtg254 * Zqi>>jªZpVtg³ê鱯ð¼èµÄ¢éD»¤ÅÈ¢JÂ255 * «ÅÍCtarget_stddef.hűêçÌè`ð㫵ȯêÎÈçÈ¢D256 * 257 * MERCD }NÌè`ÍCCG[R[hªÅ 鱯ð¼èµÄ¢éD258 * »¤ÅÈ¢êC2ÂÌè`ªêvµÈÈéD246 * エラーコード生成・分解マクロ 247 * 248 * 以下のマクロ定義は,符号付き整数が2の補数で表現されており,右シフト 249 * 演算子(>>)が算術シフトされることを仮定している.そうでない開発環 250 * 境では,target_stddef.hでこれらの定義を上書きしなければならない. 251 * 252 * MERCDマクロの定義は,メインエラーコードが負であることを仮定している. 253 * そうでない場合,2つの定義が一致しなくなる. 259 254 */ 260 255 #ifndef ERCD … … 276 271 277 272 /* 278 * ANZXÂp^[¶¬}N279 */ 280 #define TACP(domid) (1U << ((domid) - 1)) /* domid ¾¯ÉANZXðÂ*/281 282 /* 283 * ÎÔiRELTIMjÉwèÅ«éÅål273 * アクセス許可パターン生成マクロ 274 */ 275 #define TACP(domid) (1U << ((domid) - 1)) /* domidだけにアクセスを許可 */ 276 277 /* 278 * 相対時間(RELTIM)に指定できる最大値 284 279 */ 285 280 #if UINT_MAX < LONG_MAX -
Property svn:mime-type
changed from
Note:
See TracChangeset
for help on using the changeset viewer.