source: asp3_tinet_ecnl_arm/trunk/asp3_dcre/tecsgen/tecs/TECSInfo/TECSInfo.cdl@ 374

Last change on this file since 374 was 374, checked in by coas-nagasima, 5 years ago

mbed関連を更新
シリアルドライバをmbedのHALを使うよう変更
ファイルディスクリプタの処理を更新

  • Property charset set to UTF-8
  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain
File size: 25.5 KB
Line 
1/*
2 * Copyright (C) 2008-2017 by TOPPERS Project
3 *
4 * 上記著作権者
5は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
6 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
7 * 変・再é…
8å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
9 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
10 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
11 * スコード中に含まれていること.
12 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
13 * 用できる形で再é…
14å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
15å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
16 * 者
17マニュアルなど)に,上記の著作権表示,この利用条件および下記
18 * の無保証規定を掲載すること.
19 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
20 * 用できない形で再é…
21å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
22 * と.
23 * (a) 再é…
24å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
25マニュアルなど)に,上記の著
26 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
27 * (b) 再é…
28å¸ƒã®å½¢æ…
29‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
30 * 報告すること.
31 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
32 * 害からも,上記著作権者
33およびTOPPERSプロジェクトをå…
34è²¬ã™ã‚‹ã“と.
35 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
36 * 由に基づく請求からも,上記著作権者
37およびTOPPERSプロジェクトを
38 * å…
39è²¬ã™ã‚‹ã“と.
40 *
41 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
42お
43 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
44 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
45 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
46 * の責任を負わない.
47 *
48 * @(#) $Id$
49 */
50
51import_C( "t_stddef.h" );
52
53/* Constants of Kinds */
54const int8_t TECSTypeKind_BoolType = 1;
55const int8_t TECSTypeKind_IntType = 2;
56const int8_t TECSTypeKind_FloatType = 3;
57const int8_t TECSTypeKind_PtrType = 4;
58const int8_t TECSTypeKind_ArrayType = 5;
59const int8_t TECSTypeKind_DefinedType = 6;
60const int8_t TECSTypeKind_StructType = 7;
61const int8_t TECSTypeKind_EnumType = 8;
62const int8_t TECSTypeKind_VoidType = 9;
63const int8_t TECSTypeKind_DescriptorType = 10;
64
65/* Parameter Direction */
66const int8_t PARAM_DIR_IN = 1;
67const int8_t PARAM_DIR_OUT = 2;
68const int8_t PARAM_DIR_INOUT = 3;
69const int8_t PARAM_DIR_SEND = 4;
70const int8_t PARAM_DIR_RECEIVE = 5;
71
72/* VarDecl declType */
73const int8_t DECLTYPE_STMEMBER = 1; /* Struct Member */
74const int8_t DECLTYPE_ATTR = 2;
75const int8_t DECLTYPE_VAR = 3;
76
77/* VarDecl place info */
78const int8_t VARDECL_PLACE_STRUCT = 1;
79const int8_t VARDECL_PLACE_NON = 2;
80const int8_t VARDECL_PLACE_CB = 3;
81const int8_t VARDECL_PLACE_INIB = 4;
82
83/* CallInfo place info */
84const int8_t CALL_PLACE_NON = 1;
85const int8_t CALL_PLACE_INIB_DES = 2;
86const int8_t CALL_PLACE_CB_DES = 3;
87const int8_t CALL_PLACE_INIB_IDX = 4;
88const int8_t CALL_PLACE_CB_IDX = 5;
89
90namespace nTECSInfo {
91
92 /******* SIGNATURES *******/
93
94 /* Type Information of attr, var, param, return */
95 signature sTypeInfo {
96 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
97 // 長さが max_len を超
98えた場合は E_NOMEM を返す.
99 // (max_len-1) 文字コピーする。name[max_len-1] = NULL
100 uint16_t getNameLength(void);
101 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
102 uint32_t getSize(void); // size of the value in bytes
103 int8_t getKind(void); // see Constants of Kinds
104 uint32_t getNType(void);
105 // kind == ARRAY の場合サイズ、POINTER, TYPEDEF の場合1、それ以外は0
106 ER getTypeInfo( [out]Descriptor(sTypeInfo) *desc );
107 // kind == POINTER, TYPEDEF の場合、desc に有効な値を返す
108 uint32_t getNMember(void);
109 // STRUCT の場合メンバー数
110 ER getMemberInfo( [in]uint32_t ith, [out]Descriptor(sVarDeclInfo) *desc );
111 // kind == STRUCT の場合、desc に有効な値を返す
112 // ith はメンバーの添数 0<=ith<*num
113 // ith が範囲外の場合 E_NORES を返す
114// void getSignatureInfo( [out]Descriptor(sSignatureInfo) *desc );
115// // kind == DESCRIPTOR の場合、desc に有効な値を返す
116 };
117
118 /* ATTR, VAR, struct member Information */
119 signature sVarDeclInfo {
120 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
121 // 長さが max_len を超
122えた場合は E_NOMEM を返す.
123 // (max_len-1) 文字コピーする。name[max_len-1] = NULL
124 uint16_t getNameLength(void);
125 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
126 void getLocationInfo( [out]uint32_t *offset,
127 [out]int8_t *place ); // VARDECL_PLACE_*
128 void getTypeInfo( [out]Descriptor( sTypeInfo ) *desc );
129 void getSizeIsExpr( [out,string(max_len)]char_t *expr_str, [in]int32_t max_len );
130 // size_is 計算式を文字列で返す. size_is 未指定の場合 *expr_str = NULL が返される
131 ER getSizeIs( [out]uint32_t *size, [in]const void *p_cb);
132 // p_cb を与えると、size を返す (size_is 指定がない場合,E_NOSPT を返す)
133 };
134
135 /* PARAM Information */
136 signature sParamInfo {
137 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
138 // 長さが max_len を超
139えた場合は E_NOMEM を返す.
140 // (max_len-1) 文字コピーする。name[max_len-1] = NULL
141 uint16_t getNameLength(void);
142 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
143 ER getTypeInfo( [out]Descriptor(sTypeInfo) *desc);
144 ER getDir( [out]int8_t *dir );
145 };
146
147 /* FUNCTION Information */
148 signature sFunctionInfo {
149 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
150 // 長さが max_len を超
151えた場合は E_NOMEM を返す.
152 // (max_len-1) 文字コピーする。name[max_len-1] = NULL
153 uint16_t getNameLength(void);
154 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
155 void getReturnTypeInfo( [out]Descriptor( sTypeInfo ) *desc );
156 uint32_t getNParam(void);
157 ER getParamInfo( [in]uint32_t ith, [out]Descriptor(sParamInfo) *param );
158 // 0 <= ith < *num
159 // ith が範囲外の場合 E_NORES を返す
160 };
161
162 /* SIGNATURE Information */
163 signature sSignatureInfo {
164 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
165 // 長さが max_len を超
166えた場合は E_NOMEM を返す.
167 // (max_len-1) 文字コピーする。name[max_len-1] = NULL
168 uint16_t getNameLength(void);
169 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
170 uint32_t getNFunction(void);
171 ER getFunctionInfo( [in]uint32_t ith, [out]Descriptor( sFunctionInfo ) *desc );
172 // 0 <= ith < *num
173 // ith が範囲外の場合 E_NORES を返す
174 };
175
176 /* CALL Information */
177 signature sCallInfo {
178 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
179 // 長さが max_len を超
180えた場合は E_NOMEM を返す.
181 // (max_len-1) 文字コピーする。name[max_len-1]= NULL
182 uint16_t getNameLength(void);
183 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
184 void getSignatureInfo( [out]Descriptor( sSignatureInfo ) *desc );
185 uint32_t getArraySize(void);
186 void getSpecifierInfo( [out]bool_t *b_optional,
187 [out]bool_t *b_dynamic,
188 [out]bool_t *b_ref_desc,
189 [out]bool_t *b_omit );
190 void getInternalInfo( [out]bool_t *b_allocator_port,
191 [out]bool_t *b_require_port );
192 void getLocationInfo( [out]uint32_t *offset, // CALL_PLACE_*
193 [out]int8_t *place ); // CALL_PLACE_*
194 void getOptimizeInfo( [out]bool_t *b_VMT_useless, // VMT (関数テーブル) 不要最適化 (関数直接呼出し)
195 [out]bool_t *b_skelton_useless, // スケルトン関数不要 (
196 [out]bool_t *b_cell_unique ); // 単一のセル
197 };
198
199 /* ENTRY Information */
200 signature sEntryInfo {
201 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
202 // 長さが max_len を超
203えた場合は E_NOMEM を返す.
204 // (max_len-1) 文字コピーする。name[max_len-1]=NULL
205 uint16_t getNameLength(void);
206 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
207 void getSignatureInfo( [out]Descriptor( sSignatureInfo ) *desc );
208 uint32_t getArraySize(void);
209 bool_t isInline(void);
210 };
211
212 /* CELLTYPE Information */
213 signature sCelltypeInfo {
214 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
215 // 長さが max_len を超
216えた場合は E_NOMEM を返す.
217 // (max_len-1) 文字コピーする。name[max_len-1]=NULL
218 uint16_t getNameLength(void);
219 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
220 uint32_t getNAttr(void);
221 ER getAttrInfo( [in]uint32_t ith, [out]Descriptor(sVarDeclInfo)*desc );
222 uint32_t getNVar(void);
223 ER getVarInfo( [in]uint32_t ith, [out]Descriptor(sVarDeclInfo)*desc );
224 // ith が範囲外の場合 E_NORES を返す
225 uint32_t getNCall(void);
226 ER getCallInfo( [in]uint32_t ith, [out]Descriptor(sCallInfo)*desc );
227 // ith が範囲外の場合 E_NORES を返す
228 uint32_t getNEntry(void);
229 ER getEntryInfo( [in]uint32_t ith, [out]Descriptor(sEntryInfo)*desc );
230 // ith が範囲外の場合 E_NORES を返す
231 bool_t isSingleton(void);
232 bool_t isIDX_is_ID(void);
233 uint32_t sizeOfCB(void);
234 uint32_t sizeOfINIB(void);
235 };
236
237 /* CELL Information */
238 [deviate]
239 signature sCellInfo {
240 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
241 // 長さが max_len を超
242えた場合は E_NOMEM を返す.
243 // (max_len-1) 文字コピーする。name[max_len-1]=NULL
244 uint16_t getNameLength(void);
245 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
246 uint32_t getNRawEntryDescriptorInfo( void );
247 ER getRawEntryDescriptorInfo( [in]int_t index, [out]Descriptor(sRawEntryDescriptorInfo) *desc );
248 // index は、受け口を指定 (CelltypeInfo の cEntryInfo の序数に一致する)
249 void getCelltypeInfo( [out]Descriptor( sCelltypeInfo ) *desc );
250 void getCBP( [out]void **cbp ); // out: 逸脱
251 void getINIBP( [out]void **inibp ); // out: 逸脱
252 };
253
254 [deviate]
255 signature sRawEntryDescriptorInfo {
256 uint16_t getNRawEntryDescriptorInfo( void ); // 受け口é…
257åˆ—の場合、要素数を返す。非é…
258åˆ—の場合 1。
259 ER getRawDescriptor( [in]int_t ith, [out]void **rawDesc );
260 // ith がé…
261åˆ—範囲外の場合、E_NOEXS を返す
262 };
263
264 /* NAMESPACE Information */
265 signature sNamespaceInfo {
266 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
267 // 長さが max_len を超
268えた場合は E_NOMEM を返す.
269 // (max_len-1) 文字コピーする。name[max_len-1]=NULL
270 uint16_t getNameLength(void);
271 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
272 uint32_t getNNamespace(void);
273 ER getNamespaceInfo( [in]uint32_t ith, [out]Descriptor(sNamespaceInfo) *des );
274 // ith が範囲外の場合 E_NORES を返す
275 uint32_t getNSignature(void);
276 ER getSignatureInfo( [in]uint32_t ith, [out]Descriptor(sSignatureInfo) *des );
277 // ith が範囲外の場合 E_NORES を返す
278 uint32_t getNCelltype(void);
279 ER getCelltypeInfo( [in]uint32_t ith, [out]Descriptor(sCelltypeInfo) *des );
280 // ith が範囲外の場合 E_NORES を返す
281 };
282
283 /* REGION Information */
284 signature sRegionInfo {
285 ER getName( [out,string(max_len)]char_t *name, [in]int_t max_len );
286 // 長さが max_len を超
287えた場合は E_NOMEM を返す.
288 // (max_len-1) 文字コピーする。name[max_len-1]=NULL
289 uint16_t getNameLength(void);
290 // 終端文字 (NULL) を含む長さ (strlen と仕様が異なることに注意)
291 uint32_t getNCell(void);
292 ER getCellInfo( [in]uint32_t ith, [out]Descriptor(sCellInfo) *des );
293 // ith が範囲外の場合 E_NORES を返す
294 uint32_t getNRegion(void);
295 ER getRegionInfo( [in]uint32_t ith, [out]Descriptor(sRegionInfo) *des );
296 // ith が範囲外の場合 E_NORES を返す
297 };
298
299 /* TECS Information */
300 signature sTECSInfo {
301 ER findNamespace([in,string]const char_t *namespace_path, [out]Descriptor( sNamespaceInfo )*nsDesc);
302 ER findRegion( [in,string]const char_t *namespace_path, [out]Descriptor( sRegionInfo )*regionDesc);
303 ER findSignature([in,string]const char_t *namespace_path, [out]Descriptor( sSignatureInfo )*signatureDesc);
304 ER findCelltype( [in,string]const char_t *namespace_path, [out]Descriptor( sCelltypeInfo )*celltypeDesc);
305 ER findCell( [in,string]const char_t *namespace_path, [out]Descriptor( sCellInfo )*cellDesc);
306 ER findRawEntryDescriptor(
307 [in,string]const char_t *namespace_path,
308 [in] int_t ith,
309 [out]Descriptor( sRawEntryDescriptorInfo )*rawEntryDescDesc,
310 [out]Descriptor( sEntryInfo )*entryDesc);
311 ER findRawEntryDescriptor_unsafe( // このメソッドは、非é…
312åˆ—の場合のみしようできる
313 [in,string]const char_t *namespace_path,
314 [out]void **rawDesc );
315 };
316
317 /******* CELLTYPES *******/
318
319 /*
320 * tTECSInfo セルタイプのセルは、ユーザーが設置する.
321 *
322 * このセルから、tTECSInfoSub への結合は、プラグインにより自動的に
323 * 行われるため、ユーザーは、このセルを設置するだけでよい.
324 * (プロトタイプを用いていないのは、このセルを任意のリージョンに置
325 * くことを想定してのもの)
326 */
327 [singleton,
328 generate( TECSInfoPlugin, "" )]
329 celltype tTECSInfo {
330 [inline]
331 entry sTECSInfo eTECSInfo;
332 call sTECSInfo cTECSInfo;
333 FACTORY{
334 write( "global_tecsgen.h", "#define setRawEntryDescriptor( callDesc, callPortSignature, rawEntryDesc ) (callDesc).vdes = (struct tag_ ## callPortSignature ## _VDES *) rawEntryDesc" );
335 };
336 };
337
338 /*
339 * tTECSInfoSub セルタイプのセルは、プラグインにより自動生成される.
340 * プラグインは、生成を行う前にエラーが発生している場合、セルを生成しない.
341 * (TECSInfoSub セルが未定義のエラーも出ることになる。不完å…
342¨ãªçŠ¶æ…
343‹
344 * で生成しようとすると、Ruby 例外を発生する可能性があるため、生成
345 * しない)
346 */
347 [singleton]
348 celltype tTECSInfoSub {
349 entry sTECSInfo eTECSInfo;
350 [ref_desc]
351 call sNamespaceInfo cNamespaceInfo; // root namespace
352 [ref_desc]
353 call sRegionInfo cRegionInfo; // root region
354 // 内
355部処理用の呼び口 (何度も使いまわすので、使う直前に(再)設定すること)
356 [dynamic,optional]
357 call sNamespaceInfo cNamespaceInfoTemp;
358 [dynamic,optional]
359 call sRegionInfo cRegionInfoTemp;
360 [dynamic,optional]
361 call sSignatureInfo cSignatureInfoTemp;
362 [dynamic,optional]
363 call sCelltypeInfo cCelltypeInfoTemp;
364 [dynamic,optional]
365 call sCellInfo cCellInfoTemp;
366 [dynamic,optional]
367 call sEntryInfo cEntryInfoTemp;
368 [dynamic,optional]
369 call sRawEntryDescriptorInfo cRawEntryDescriptorInfoTemp;
370
371 attr {
372 int32_t name_len = 256;
373 int32_t path_len = 1024;
374 };
375 var {
376 [size_is(name_len)]
377 char_t *name1;
378 [size_is(name_len)]
379 char_t *name2;
380 [size_is(path_len)]
381 char_t *path;
382 };
383 };
384
385 celltype tNamespaceInfo {
386 attr {
387 char *name;
388 };
389
390 entry sNamespaceInfo eNamespaceInfo;
391 [ref_desc,optional]
392 call sSignatureInfo cSignatureInfo[];
393 [ref_desc,optional]
394 call sCelltypeInfo cCelltypeInfo[];
395 [ref_desc,optional]
396 call sNamespaceInfo cNamespaceInfo[];
397 };
398
399 /* SIGNATURE information */
400 celltype tSignatureInfo{
401 attr {
402 char *name;
403 };
404
405 entry sSignatureInfo eSignatureInfo;
406 [ref_desc,optional]
407 call sFunctionInfo cFunctionInfo[];
408 };
409 celltype tFunctionInfo {
410 attr {
411 char_t *name;
412 bool_t bOneway;
413 };
414 entry sFunctionInfo eFunctionInfo;
415 [ref_desc,optional]
416 call sParamInfo cParamInfo[];
417 [ref_desc]
418 call sTypeInfo cReturnTypeInfo;
419 };
420 celltype tParamInfo {
421 attr {
422 char_t *name;
423 int8_t dir;
424 char_t *sizeIsExpr;
425 char_t *countIsExpr;
426 char_t *stringExpr;
427 };
428 entry sParamInfo eParamInfo;
429 [ref_desc]
430 call sTypeInfo cTypeInfo;
431 };
432
433 /* CELLTYPE information */
434 celltype tCelltypeInfo{
435 attr {
436 char_t *name;
437 bool_t b_singleton;
438 bool_t b_IDX_is_ID_act;
439 uint32_t sizeOfCB; // size in bytes, 0 if not exist
440 uint32_t sizeOfINIB; // size in bytes, 0 if not exist
441 uint32_t n_cellInLinkUnit; // CellInLinkUnit == 0 の時 セルタイプコードは、リンクされていない
442 uint32_t n_cellInSystem; // すべてのリンクユニットを含めたセルの個数.
443 // この数が 0になるものは、CelltypeInfo は省略される.
444 };
445 [ref_desc,optional]
446 call sEntryInfo cEntryInfo[];
447 [ref_desc,optional]
448 call sCallInfo cCallInfo[];
449 [ref_desc,optional]
450 call sVarDeclInfo cAttrInfo[];
451 [ref_desc,optional]
452 call sVarDeclInfo cVarInfo[];
453
454 entry sCelltypeInfo eCelltypeInfo;
455 };
456 celltype tCallInfo {
457 attr {
458 char_t *name;
459 uint32_t offset;
460 uint32_t array_size;
461 bool_t b_optional;
462 bool_t b_omit;
463 bool_t b_dynamic;
464 bool_t b_ref_desc;
465 bool_t b_allocator_port;
466 bool_t b_require_port;
467 int8_t place;
468 bool_t b_VMT_useless; // VMT (関数テーブル) 不要最適化 (関数直接呼出し)
469 bool_t b_skelton_useless; // スケルトン関数不要 (
470 bool_t b_cell_unique; // 単一のセル
471 };
472 entry sCallInfo eCallInfo;
473 [ref_desc]
474 call sSignatureInfo cSignatureInfo;
475 FACTORY {
476 write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
477 };
478 };
479 celltype tEntryInfo {
480 attr {
481 char_t *name;
482 bool_t b_inline;
483 uint32_t array_size;
484 };
485 entry sEntryInfo eEntryInfo;
486 [ref_desc]
487 call sSignatureInfo cSignatureInfo;
488 FACTORY {
489 write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
490 };
491 };
492 /* Variable Declarator (attr, var, struct member) */
493 celltype tVarDeclInfo {
494 attr {
495 char_t *name;
496 char_t *sizeIsExpr;
497 int8_t declType; /* valid when attr, var */
498 int8_t place;
499 uint32_t offset;
500 };
501 entry sVarDeclInfo eVarDeclInfo;
502 [ref_desc]
503 call sTypeInfo cTypeInfo;
504 };
505
506 /* REGION & CELL information */
507 celltype tRegionInfo {
508 attr {
509 char *name;
510 };
511
512 entry sRegionInfo eRegionInfo;
513 [ref_desc,optional]
514 call sCellInfo cCellInfo[];
515 [ref_desc,optional]
516 call sRegionInfo cRegionInfo[];
517 };
518 celltype tCellInfo {
519 attr {
520 char_t *name;
521 void *cbp;
522 void *inibp;
523 };
524 [ref_desc]
525 call sCelltypeInfo cCelltypeInfo;
526 [ref_desc,optional]
527 call sRawEntryDescriptorInfo cRawEntryDescriptor[];
528 entry sCellInfo eCellInfo;
529 };
530 celltype tRawEntryDescriptorInfo {
531 attr {
532 int_t size; // 非é…
533åˆ—の場合 0
534 [size_is(size)]
535 void **rawEntryDescriptor;
536 };
537 entry sRawEntryDescriptorInfo eRawEntryDescriptor;
538 // [ref_desc]
539 // call sEntryInfo cEntryInfo;
540 };
541
542 /* celltypes of TYPEs */
543 celltype tVoidTypeInfo {
544 attr {
545 char_t *name;
546 int8_t typeKind;
547 uint32_t size; /* bytes */
548 bool_t b_const;
549 bool_t b_volatile;
550 };
551 entry sTypeInfo eTypeInfo;
552 };
553 celltype tBoolTypeInfo {
554 attr {
555 char_t *name;
556 int8_t typeKind;
557 uint32_t size; /* bytes */
558 bool_t b_const;
559 bool_t b_volatile;
560 };
561 entry sTypeInfo eTypeInfo;
562 };
563 celltype tIntTypeInfo {
564 attr {
565 char_t *name;
566 int8_t typeKind;
567 uint32_t size; /* bytes */
568 bool_t b_const;
569 bool_t b_volatile;
570 };
571 entry sTypeInfo eTypeInfo;
572 };
573 celltype tFloatTypeInfo {
574 attr {
575 char_t *name;
576 int8_t typeKind;
577 uint32_t size; /* bytes */
578 bool_t b_const;
579 bool_t b_volatile;
580 };
581 entry sTypeInfo eTypeInfo;
582 };
583 celltype tStructTypeInfo {
584 attr {
585 char_t *name;
586 int8_t typeKind;
587 uint32_t size; /* bytes */
588 bool_t b_const;
589 bool_t b_volatile;
590 };
591 entry sTypeInfo eTypeInfo;
592 [ref_desc]
593 call sVarDeclInfo cVarDeclInfo[];
594 };
595 celltype tPtrTypeInfo {
596 attr {
597 char_t *name;
598 int8_t typeKind;
599 uint32_t size; /* bytes */
600 bool_t b_const;
601 bool_t b_volatile;
602 };
603 entry sTypeInfo eTypeInfo;
604 [ref_desc]
605 call sTypeInfo cTypeInfo;
606 FACTORY {
607 write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
608 };
609 };
610 celltype tArrayTypeInfo {
611 attr {
612 char_t *name;
613 int8_t typeKind;
614 uint32_t size; /* bytes */
615 bool_t b_const;
616 bool_t b_volatile;
617 };
618 entry sTypeInfo eTypeInfo;
619 [ref_desc]
620 call sTypeInfo cTypeInfo;
621 FACTORY {
622 write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
623 };
624 };
625 celltype tDefinedTypeInfo {
626 attr {
627 char_t *name;
628 int8_t typeKind;
629 uint32_t size; /* bytes */
630 bool_t b_const;
631 bool_t b_volatile;
632 };
633 entry sTypeInfo eTypeInfo;
634 [ref_desc]
635 call sTypeInfo cTypeInfo;
636 };
637 celltype tDescriptorTypeInfo {
638 attr {
639 char_t *name;
640 int8_t typeKind;
641 uint32_t size; /* bytes */
642 bool_t b_const;
643 bool_t b_volatile;
644 };
645 entry sTypeInfo eTypeInfo;
646 [ref_desc]
647 call sSignatureInfo cSignatureInfo;
648 FACTORY {
649 write( "$ct_global$_factory.h", "#include \"include_all_signature_header.h\"" );
650 };
651 };
652};
Note: See TracBrowser for help on using the repository browser.