Changeset 374 for asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs
- Timestamp:
- Apr 5, 2019, 9:26:53 PM (5 years ago)
- Location:
- asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs
- Files:
-
- 46 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/mruby/TECSPointer.h
r359 r374 102 102 { \ 103 103 if( sizeof( type ) > sizeof( mrb_int ) ){ \ 104 if( val > = (((type)1) << (sizeof(mrb_int)*8-1))\105 || val < -(((type)1) << (sizeof(mrb_int)*8-1))) \104 if( val > TYPE ## _MAX \ 105 || val < TYPE ## _MIN ) \ 106 106 /* '=' unecessary for negative value */ \ 107 107 /* ignore warning on int32_t */ \ … … 126 126 { \ 127 127 if( sizeof( type ) > sizeof( mrb_int ) ){ \ 128 if( val >= (((type)1) << (sizeof(mrb_int)*8)))\128 if( val > TYPE ## _MAX ) \ 129 129 /* '=' unecessary for negative value */ \ 130 130 /* ignore warning on int32_t */ \ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/mruby/mrubyVMs.cdl
r359 r374 37 37 38 38 /* 39 * tools/mruby/mruby.c から cInit_initializeBridge( mrb ) を呼び出すように変更したもの 39 * POSIX 環境用の VM 40 * mrbgems の mrbgems/mruby-bin-mruby/tools/mruby/mruby.c を参考に作成したもの 40 41 */ 41 42 namespace nMruby{ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/mruby/tecs_mruby.h
r359 r374 1 1 /* 2 * Copyright (C) 2008-201 7by TOPPERS Project2 * Copyright (C) 2008-2019 by TOPPERS Project 3 3 * 4 4 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ … … 46 46 #include "mruby/irep.h" 47 47 #include "mruby/dump.h" 48 #include "mruby/proc.h" 48 49 49 50 #include "TECSPointer.h" 50 51 #include "TECSStruct.h" 51 52 52 #if ! defined( MRUBY_RELEASE_MAJOR ) || MRUBY_RELEASE_MAJOR == 1 && MRUBY_RELEASE_MINOR < 253 #ifndef MRB_ARGS_REQ54 #define MRB_ARGS_REQ(n) ARGS_REQ(n)55 #define MRB_ARGS_OPT(n) ARGS_OPT(n)56 #define MRB_ARGS_ARG(n1,n2) ARGS_ARG(n1,n2)57 #define MRB_ARGS_REST() ARGS_REST()58 #define MRB_ARGS_POST(n) ARGS_POST(n)59 #define MRB_ARGS_KEY(n1,n2) ARGS_KEY(n1,n2)60 #define MRB_ARGS_BLOCK() ARGS_BLOCK()61 #define MRB_ARGS_ANY() ARGS_ANY()62 #define MRB_ARGS_NONE() ARGS_NONE()63 #endif /* MRB_ARGS_REQ */64 #endif65 53 66 #if ! defined( MRUBY_RELEASE_MAJOR ) 67 #define mrb_float_value( mrb, val ) mrb_float_value( val ) 68 #endif 69 70 #else 54 #else /* TECSGEN */ 71 55 72 56 /* 73 * fake tecsgen because tecsgen cannot accept actual mruby.h in case of below.57 * fake definition because tecsgen cannot accept actual mruby.h in case of below. 74 58 * types: long long, long long int 75 59 * special keyword __attribute__(x), __extension__ … … 78 62 typedef int mrb_irep; 79 63 typedef int mrb_context; 80 struct RClass { int dummy;};81 struct RProc { int dummy;};64 struct RClass {uint32_t gcnext;}; // actual definition: struct RBasic *gcnext 65 struct RProc {uint32_t gcnext;}; // actual definition: struct RBasic *gcnext 82 66 83 67 typedef int CELLCB; 68 69 #define GET_SET_BOOL( Type, type ) 70 #define GET_SET_CHAR( Type, type ) 71 #define GET_SET_INT( Type, type ) 72 #define GET_SET_FLOAT( Type, type ) 73 #define POINTER_CLASS( Type, type ) 74 #define CHECK_AND_GET_POINTER( Type, type ) 84 75 85 76 #endif /* TECSGEN */ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/rpc/TDR.cdl
r337 r374 68 68 ER sendSOP( [in]bool_t b_client ); /* StartOfPacket magic を送信 */ 69 69 ER receiveSOP( [in]bool_t b_client ); /* StartOfPacket magic を受信 */ 70 /* b_client: クライアント側なら true, サーバー側なら false */71 72 /* マジックコードの送受信 */73 // ER sendSHSOP( [in]bool_t b_client ); /* StartOfPacket magic を送信 */74 // ER receiveSHSOP( [in]bool_t b_client ); /* StartOfPacket magic を受信 */75 70 /* b_client: クライアント側なら true, サーバー側なら false */ 76 71 … … 150 145 }; 151 146 152 // Straight Order TECS Data Representation (Straight means no endian-conversion is done)147 // Straight Byte Order TECS Data Representation (Data are always sent in native endian) 153 148 celltype tTDR { 154 149 call sChannel cChannel; -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/rpc/sChannel.cdl
r337 r374 58 58 }; 59 59 60 /* 61 * size に uint16_t ではなく int16_t を用いるのは、下位層が ER_INT を返す場合を想定したもの. 62 * 63 * sChannel は TECS RPC の TDR の下位層である通信チャンネルとのインタフェースである. 64 * 通信チャンネルは、高水準 I/O のように、バッファリングされることを想定する. 65 * TDR からは、int8_t, int16_t, int32_t, int64_t, (int128_t), float32_t, double64_t bool_t, char_t のような基本型(無符号を含む)が渡される。 66 * 配列や構造体の場合であっても要素ごとに渡される。 67 */ -
asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/rpc/tTDR_inline.h
r337 r374 75 75 return(E_ID); 76 76 } 77 (void)p_cellcb; // to avoid unused warning 77 78 78 79 syslog( LOG_INFO, "TDR: resetting channel" ); … … 102 103 return(E_ID); 103 104 } 105 (void)p_cellcb; // to avoid unused warning 104 106 105 107 /* ここに処理本体を記述します #_TEFB_# */ … … 151 153 return(E_ID); 152 154 } 155 (void)p_cellcb; // to avoid unused warning 153 156 154 157 /* ここに処理本体を記述します #_TEFB_# */ … … 157 160 #endif 158 161 159 162 if( b_client ) 160 163 p_sopMagic = &SOP_MAGIC2; 161 164 else … … 198 201 return(E_ID); 199 202 } 203 (void)p_cellcb; // to avoid unused warning 200 204 201 205 /* ここに処理本体を記述します #_TEFB_# */ … … 234 238 return(E_ID); 235 239 } 240 (void)p_cellcb; // to avoid unused warning 236 241 237 242 /* ここに処理本体を記述します #_TEFB_# */ … … 267 272 return(E_ID); 268 273 } 274 (void)p_cellcb; // to avoid unused warning 269 275 270 276 /* ここに処理本体を記述します #_TEFB_# */ … … 287 293 return(E_ID); 288 294 } 295 (void)p_cellcb; // to avoid unused warning 289 296 290 297 /* ここに処理本体を記述します #_TEFB_# */ … … 307 314 return(E_ID); 308 315 } 316 (void)p_cellcb; // to avoid unused warning 309 317 310 318 /* ここに処理本体を記述します #_TEFB_# */ … … 327 335 return(E_ID); 328 336 } 337 (void)p_cellcb; // to avoid unused warning 329 338 330 339 /* ここに処理本体を記述します #_TEFB_# */ … … 347 356 return(E_ID); 348 357 } 358 (void)p_cellcb; // to avoid unused warning 349 359 350 360 /* ここに処理本体を記述します #_TEFB_# */ … … 368 378 return(E_ID); 369 379 } 380 (void)p_cellcb; // to avoid unused warning 370 381 371 382 /* ここに処理本体を記述します #_TEFB_# */ … … 390 401 return(E_ID); 391 402 } 403 (void)p_cellcb; // to avoid unused warning 392 404 393 405 /* ここに処理本体を記述します #_TEFB_# */ … … 412 424 return(E_ID); 413 425 } 426 (void)p_cellcb; // to avoid unused warning 414 427 415 428 /* ここに処理本体を記述します #_TEFB_# */ … … 434 447 return(E_ID); 435 448 } 449 (void)p_cellcb; // to avoid unused warning 436 450 437 451 /* ここに処理本体を記述します #_TEFB_# */ … … 456 470 return(E_ID); 457 471 } 472 (void)p_cellcb; // to avoid unused warning 458 473 459 474 /* ここに処理本体を記述します #_TEFB_# */ … … 477 492 return(E_ID); 478 493 } /* end if VALID_IDX(idx) */ 494 (void)p_cellcb; // to avoid unused warning 479 495 480 496 /* ここに処理本体を記述します #_TEFB_# */ … … 497 513 return(E_ID); 498 514 } /* end if VALID_IDX(idx) */ 515 (void)p_cellcb; // to avoid unused warning 499 516 500 517 /* ここに処理本体を記述します #_TEFB_# */ … … 517 534 return(E_ID); 518 535 } /* end if VALID_IDX(idx) */ 536 (void)p_cellcb; // to avoid unused warning 519 537 520 538 /* ここに処理本体を記述します #_TEFB_# */ … … 537 555 return(E_ID); 538 556 } /* end if VALID_IDX(idx) */ 557 (void)p_cellcb; // to avoid unused warning 539 558 540 559 /* ここに処理本体を記述します #_TEFB_# */ … … 557 576 return(E_ID); 558 577 } /* end if VALID_IDX(idx) */ 578 (void)p_cellcb; // to avoid unused warning 559 579 560 580 /* ここに処理本体を記述します #_TEFB_# */ … … 578 598 return(E_ID); 579 599 } /* end if VALID_IDX(idx) */ 600 (void)p_cellcb; // to avoid unused warning 580 601 581 602 /* ここに処理本体を記述します #_TEFB_# */ … … 600 621 return(E_ID); 601 622 } /* end if VALID_IDX(idx) */ 623 (void)p_cellcb; // to avoid unused warning 602 624 603 625 /* ここに処理本体を記述します #_TEFB_# */ … … 622 644 return(E_ID); 623 645 } /* end if VALID_IDX(idx) */ 646 (void)p_cellcb; // to avoid unused warning 624 647 625 648 /* ここに処理本体を記述します #_TEFB_# */ … … 644 667 return(E_ID); 645 668 } /* end if VALID_IDX(idx) */ 669 (void)p_cellcb; // to avoid unused warning 646 670 647 671 /* ここに処理本体を記述します #_TEFB_# */ … … 666 690 return(E_ID); 667 691 } /* end if VALID_IDX(idx) */ 692 (void)p_cellcb; // to avoid unused warning 668 693 669 694 /* ここに処理本体を記述します #_TEFB_# */ … … 688 713 return(E_ID); 689 714 } /* end if VALID_IDX(idx) */ 715 (void)p_cellcb; // to avoid unused warning 690 716 691 717 /* ここに処理本体を記述します #_TEFB_# */ … … 705 731 ER ercd = E_OK; 706 732 CELLCB *p_cellcb; 707 uint8_t val; 708 if (VALID_IDX(idx)) { 709 p_cellcb = GET_CELLCB(idx); 710 } 711 else { 712 return(E_ID); 713 } /* end if VALID_IDX(idx) */ 733 uint8_t val = 0; 734 if (VALID_IDX(idx)) { 735 p_cellcb = GET_CELLCB(idx); 736 } 737 else { 738 return(E_ID); 739 } /* end if VALID_IDX(idx) */ 740 (void)p_cellcb; // to avoid unused warning 714 741 715 742 /* ここに処理本体を記述します #_TEFB_# */ … … 737 764 return(E_ID); 738 765 } 766 (void)p_cellcb; // to avoid unused warning 739 767 740 768 /* ここに処理本体を記述します #_TEFB_# */ … … 757 785 return(E_ID); 758 786 } 787 (void)p_cellcb; // to avoid unused warning 759 788 760 789 /* ここに処理本体を記述します #_TEFB_# */ … … 778 807 return(E_ID); 779 808 } 809 (void)p_cellcb; // to avoid unused warning 780 810 781 811 /* ここに処理本体を記述します #_TEFB_# */ … … 800 830 return(E_ID); 801 831 } 832 (void)p_cellcb; // to avoid unused warning 802 833 803 834 /* ここに処理本体を記述します #_TEFB_# */ … … 821 852 return(E_ID); 822 853 } 854 (void)p_cellcb; // to avoid unused warning 823 855 824 856 /* ここに処理本体を記述します #_TEFB_# */ … … 863 895 return(E_ID); 864 896 } /* end if VALID_IDX(idx) */ 897 (void)p_cellcb; // to avoid unused warning 865 898 866 899 /* ここに処理本体を記述します #_TEFB_# */ … … 883 916 return(E_ID); 884 917 } 918 (void)p_cellcb; // to avoid unused warning 885 919 886 920 /* ここに処理本体を記述します #_TEFB_# */ … … 903 937 return(E_ID); 904 938 } 939 (void)p_cellcb; // to avoid unused warning 905 940 906 941 /* ここに処理本体を記述します #_TEFB_# */ … … 923 958 return(E_ID); 924 959 } 960 (void)p_cellcb; // to avoid unused warning 925 961 926 962 /* ここに処理本体を記述します #_TEFB_# */ … … 944 980 return(E_ID); 945 981 } /* end if VALID_IDX(idx) */ 982 (void)p_cellcb; // to avoid unused warning 946 983 947 984 /* ここに処理本体を記述します #_TEFB_# */ … … 966 1003 return(E_ID); 967 1004 } 1005 (void)p_cellcb; // to avoid unused warning 968 1006 969 1007 /* ここに処理本体を記述します #_TEFB_# */ … … 988 1026 return(E_ID); 989 1027 } 1028 (void)p_cellcb; // to avoid unused warning 990 1029 991 1030 /* ここに処理本体を記述します #_TEFB_# */ … … 1010 1049 return(E_ID); 1011 1050 } 1051 (void)p_cellcb; // to avoid unused warning 1012 1052 1013 1053 /* ここに処理本体を記述します #_TEFB_# */ … … 1031 1071 return(E_ID); 1032 1072 } /* end if VALID_IDX(idx) */ 1073 (void)p_cellcb; // to avoid unused warning 1033 1074 1034 1075 /* ここに処理本体を記述します #_TEFB_# */ … … 1051 1092 return(E_ID); 1052 1093 } /* end if VALID_IDX(idx) */ 1094 (void)p_cellcb; // to avoid unused warning 1053 1095 1054 1096 /* ここに処理本体を記述します #_TEFB_# */ … … 1071 1113 return(E_ID); 1072 1114 } /* end if VALID_IDX(idx) */ 1115 (void)p_cellcb; // to avoid unused warning 1073 1116 1074 1117 /* ここに処理本体を記述します #_TEFB_# */ … … 1091 1134 return(E_ID); 1092 1135 } /* end if VALID_IDX(idx) */ 1136 (void)p_cellcb; // to avoid unused warning 1093 1137 1094 1138 /* ここに処理本体を記述します #_TEFB_# */ … … 1112 1156 return(E_ID); 1113 1157 } /* end if VALID_IDX(idx) */ 1158 (void)p_cellcb; // to avoid unused warning 1114 1159 1115 1160 /* ここに処理本体を記述します #_TEFB_# */ … … 1134 1179 return(E_ID); 1135 1180 } /* end if VALID_IDX(idx) */ 1181 (void)p_cellcb; // to avoid unused warning 1136 1182 1137 1183 /* ここに処理本体を記述します #_TEFB_# */ … … 1156 1202 return(E_ID); 1157 1203 } /* end if VALID_IDX(idx) */ 1204 (void)p_cellcb; // to avoid unused warning 1158 1205 1159 1206 /* ここに処理本体を記述します #_TEFB_# */ … … 1178 1225 return(E_ID); 1179 1226 } /* end if VALID_IDX(idx) */ 1227 (void)p_cellcb; // to avoid unused warning 1180 1228 1181 1229 /* ここに処理本体を記述します #_TEFB_# */ … … 1199 1247 return(E_ID); 1200 1248 } 1249 (void)p_cellcb; // to avoid unused warning 1201 1250 1202 1251 /* ここに処理本体を記述します #_TEFB_# */ … … 1220 1269 return(E_ID); 1221 1270 } 1271 (void)p_cellcb; // to avoid unused warning 1222 1272 1223 1273 /* ここに処理本体を記述します #_TEFB_# */
Note:
See TracChangeset
for help on using the changeset viewer.