- Timestamp:
- May 22, 2019, 10:03:37 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
azure_iot_hub/trunk/asp3_dcre/tecsgen/tecs/rpc/tNBOTDR_inline.h
- Property svn:keywords deleted
-
Property svn:mime-type
changed from
text/x-chdr
totext/x-chdr;charset=UTF-8
r388 r389 5 5 * Copyright (C) 2008-2013 by TOPPERS Project 6 6 *-- 7 * ä¸è¨èä½æ¨©è 8 ã¯ï¼ä»¥ä¸ã®(1)(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ 9 * ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ã使ç¨ã»è¤è£½ã»æ¹ 10 * å¤ã»åé 11 å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼ 12 * (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½ 13 * 権表示ï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼ 14 * ã¹ã³ã¼ãä¸ã«å«ã¾ãã¦ãããã¨ï¼ 15 * (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 16 * ç¨ã§ããå½¢ã§åé 17 å¸ããå ´åã«ã¯ï¼åé 18 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨ 19 * è 20 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ 21 * ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 22 * (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ 23 * ç¨ã§ããªãå½¢ã§åé 24 å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã 25 * ã¨ï¼ 26 * (a) åé 27 å¸ã«ä¼´ãããã¥ã¡ã³ãï¼å©ç¨è 28 ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è 29 * ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼ 30 * (b) åé 31 å¸ã®å½¢æ 32 ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSããã¸ã§ã¯ãã« 33 * å ±åãããã¨ï¼ 34 * (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ 35 * 害ãããï¼ä¸è¨èä½æ¨©è 36 ããã³TOPPERSããã¸ã§ã¯ããå 37 責ãããã¨ï¼ 38 * ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç 39 * ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è 40 ããã³TOPPERSããã¸ã§ã¯ãã 41 * å 42 責ãããã¨ï¼ 7 * 上記著作権者は,以下の(1)(4)の条件を満たす場合に限り,本ソフトウェ 8 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改 9 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する. 10 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作 11 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー 12 * スコード中に含まれていること. 13 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使 14 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用 15 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記 16 * の無保証規定を掲載すること. 17 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使 18 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ 19 * と. 20 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著 21 * 作権表示,この利用条件および下記の無保証規定を掲載すること. 22 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに 23 * 報告すること. 24 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損 25 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること. 26 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理 27 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを 28 * 免責すること. 43 29 * 44 * æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è 45 ã 46 * ãã³TOPPERSããã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç 47 * ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ 48 * ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ害ã«é¢ãã¦ãï¼ã 49 * ã®è²¬ä»»ãè² ããªãï¼ 30 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お 31 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的 32 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ 33 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ 34 * の責任を負わない. 50 35 * 51 36 * $Id$ … … 53 38 54 39 /* #[<PREAMBLE>]# 55 * #[<...>]# ãã #[</...>]# ã§å²ã¾ããã³ã¡ã³ãã¯ç·¨éããªãã§ãã ãã56 * tecsmerge ã«ãããã¼ã¸ã«ä½¿ç¨ããã¾ã40 * #[<...>]# から #[</...>]# で囲まれたコメントは編集しないでください 41 * tecsmerge によるマージに使用されます 57 42 * 58 * å±æ§ã¢ã¯ã»ã¹ãã¯ã#_CAAM_#43 * 属性アクセスマクロ #_CAAM_# 59 44 * tmo TMO VAR_tmo 60 45 * 61 * å¼ã³å£é¢æ°#_TCPF_#46 * 呼び口関数 #_TCPF_# 62 47 * call port: cChannel signature: sChannel context:task 63 48 * ER cChannel_send( const int8_t* buf, int16_t size, TMO tmo ); … … 75 60 76 61 /* 77 * marhaler, unmarshaler ã使ç¨ãã STRLEN é¢æ°ãå®ç¾©ãã 78 * marshaler, unmarshaler ã¯å¿ 79 ã TDR 㯠ã«çµåããããã 62 * marhaler, unmarshaler が使用する STRLEN 関数を定義する 63 * marshaler, unmarshaler は必ず TDR は に結合されるため 80 64 */ 81 65 #include "rpc_string.h" … … 105 89 106 90 /* 107 * ç¡èª¿æ´åã ããããããæ«å®çãªå®è£ 108 ã«ãªã£ã¦ãã 109 * ã»ntohX(), htonX() 㯠int64_t åã«å®ç¾©ããã¦ãã (32bitãªããªã¼ãããã大) 110 * ã»int128_t, uint128_t 㯠tecs.h 㧠typedef ãããåã§ãã 111 * ã»BIGENDIAN å¤å®ã¯åçã«ãªã£ã¦ãã (æããæé©åã§å®æ°å¤å®ã«ããããã¨ã¯ãªã) 91 * 無調整型だが、いくらか暫定的な実装になっている 92 * ・ntohX(), htonX() は int64_t 型に定義されている (32bitならオーバヘッド大) 93 * ・int128_t, uint128_t は tecs.h で typedef された型である 94 * ・BIGENDIAN 判定は動的になっている (恐らく最適化で定数判定にされることはない) 112 95 */ 113 96 … … 120 103 #define IS_BIGENDIAN() (0) 121 104 #else 122 /* BIGENDIAN ãã©ããèªåå¤å®*/105 /* BIGENDIAN かどうか自動判定 */ 123 106 static const uint16_t endian_check = 0xff00; 124 107 #define IS_BIGENDIAN() (*(uint8_t *)&endian_check) … … 302 285 return d; 303 286 else{ 304 /* ãã®å®è£ 305 㯠tecs.h 㧠typedef ãã int128_t ã«é©å */ 287 /* この実装は tecs.h で typedef した int128_t に適合 */ 306 288 int128_t d1; 307 289 d1.hi = hton64( d.lo ); … … 370 352 } 371 353 372 /*** unsigned ç¨ã®é¢æ° (128 bit çã®ã¿ç¨æ) ***/354 /*** unsigned 用の関数 (128 bit 版のみ用意) ***/ 373 355 Inline int128_t 374 356 ntoh128( int128_t d ) … … 377 359 return d; 378 360 else{ 379 /* ãã®å®è£ 380 㯠tecs.h 㧠typedef ãã int128_t ã«é©å */ 361 /* この実装は tecs.h で typedef した int128_t に適合 */ 381 362 int128_t d1; 382 363 d1.hi = ntoh64( d.lo ); … … 392 373 return d; 393 374 else{ 394 /* ãã®å®è£ 395 㯠tecs.h 㧠typedef ãã int128_t ã«é©å */ 375 /* この実装は tecs.h で typedef した int128_t に適合 */ 396 376 uint128_t d1; 397 377 d1.hi = hton64( d.lo ); … … 407 387 return d; 408 388 else{ 409 /* ãã®å®è£ 410 㯠tecs.h 㧠typedef ãã int128_t ã«é©å */ 389 /* この実装は tecs.h で typedef した int128_t に適合 */ 411 390 uint128_t d1; 412 391 d1.hi = ntoh64( d.lo ); … … 417 396 418 397 /************************************************ 419 * htonX, ntohX 㯠16, 32, 64 ã«ã®ã¿å¯¾å¿ã§ãã*398 * htonX, ntohX は 16, 32, 64 にのみ対応できる * 420 399 ************************************************/ 421 400 Inline int64_t … … 441 420 } 442 421 443 /* åãå£é¢æ°#_TEPF_# */422 /* 受け口関数 #_TEPF_# */ 444 423 /* #[<ENTRY_PORT>]# eTDR 445 424 * entry port: eTDR … … 465 444 } 466 445 467 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */446 /* ここに処理本体を記述します #_TEFB_# */ 468 447 469 448 syslog( LOG_INFO, "TDR: resetting channel" ); … … 491 470 } 492 471 493 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */472 /* ここに処理本体を記述します #_TEFB_# */ 494 473 #ifdef RPC_DEBUG 495 474 syslog(LOG_INFO, "eTDR_sendSOP(b_client=%d)", b_client); … … 501 480 502 481 /* 503 * SOP ãã±ããã®éä¿¡504 * ãã±ããã·ã¼ã±ã³ã¹ãå¤å°å´©ãã¦ãå復ã§ããããã«ããã¤ãåä½ã§éã505 * ä¸ä½ãã¤ããä¸ä½ãã¤ãã®é ã«éã482 * SOP パケットの送信 483 * パケットシーケンスが多少崩れても回復できるように、バイト単位で送る 484 * 上位バイト、下位バイトの順に送る 506 485 */ 507 486 508 487 val = (uint8_t)(sopMagic>>8); 509 ercd = eTDR_putUInt8( idx, val ); /* ä¸ä½8ããã*/488 ercd = eTDR_putUInt8( idx, val ); /* 上位8ビット */ 510 489 if( ercd != E_OK ) 511 490 return ercd; 512 491 513 val = (uint8_t)(sopMagic&0xff); /* ä¸ä½8ããã*/492 val = (uint8_t)(sopMagic&0xff); /* 下位8ビット */ 514 493 ercd = eTDR_putUInt8( idx, val ); 515 494 … … 537 516 } 538 517 539 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */518 /* ここに処理本体を記述します #_TEFB_# */ 540 519 #ifdef RPC_DEBUG 541 520 syslog(LOG_INFO, "eTDR_receiveSOP(b_client=%d)", b_client); … … 582 561 } 583 562 584 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */563 /* ここに処理本体を記述します #_TEFB_# */ 585 564 #ifdef RPC_DEBUG 586 565 syslog(LOG_INFO, "eTDR_sendEOP(b_continue=%d)", b_continue); … … 592 571 magic = TDR_EOP_MAGIC2; 593 572 594 /* EOP magic ã®éä¿¡*/573 /* EOP magic の送信 */ 595 574 if( (ercd = eTDR_putUInt16( idx, magic )) != E_OK ) 596 575 return ercd; … … 618 597 } 619 598 620 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */599 /* ここに処理本体を記述します #_TEFB_# */ 621 600 #ifdef RPC_DEBUG 622 601 syslog(LOG_INFO, "eTDR_receiveEOP(b_continue=%d)",b_continue); … … 651 630 } 652 631 653 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */632 /* ここに処理本体を記述します #_TEFB_# */ 654 633 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); 655 634 } … … 671 650 } 672 651 673 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */652 /* ここに処理本体を記述します #_TEFB_# */ 674 653 in = hton16( in ); 675 654 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); … … 692 671 } 693 672 694 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */673 /* ここに処理本体を記述します #_TEFB_# */ 695 674 in = hton32( in ); 696 675 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); … … 713 692 } 714 693 715 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */694 /* ここに処理本体を記述します #_TEFB_# */ 716 695 in = hton64( in ); 717 696 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); … … 734 713 } 735 714 736 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */715 /* ここに処理本体を記述します #_TEFB_# */ 737 716 in = hton128( in ); 738 717 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); … … 756 735 } 757 736 758 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */737 /* ここに処理本体を記述します #_TEFB_# */ 759 738 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 760 739 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR ); … … 778 757 } 779 758 780 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */759 /* ここに処理本体を記述します #_TEFB_# */ 781 760 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 782 761 *out = ntoh16( *out ); … … 801 780 } 802 781 803 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */782 /* ここに処理本体を記述します #_TEFB_# */ 804 783 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 805 784 *out = ntoh32( *out ); … … 824 803 } 825 804 826 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */805 /* ここに処理本体を記述します #_TEFB_# */ 827 806 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 828 807 *out = ntoh64( *out ); … … 847 826 } 848 827 849 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */828 /* ここに処理本体を記述します #_TEFB_# */ 850 829 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 851 830 *out = ntoh128( *out ); … … 869 848 } /* end if VALID_IDX(idx) */ 870 849 871 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */850 /* ここに処理本体を記述します #_TEFB_# */ 872 851 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); 873 852 } … … 889 868 } /* end if VALID_IDX(idx) */ 890 869 891 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */870 /* ここに処理本体を記述します #_TEFB_# */ 892 871 in = hton16( in ); 893 872 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); … … 910 889 } /* end if VALID_IDX(idx) */ 911 890 912 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */891 /* ここに処理本体を記述します #_TEFB_# */ 913 892 in = hton32( in ); 914 893 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); … … 931 910 } /* end if VALID_IDX(idx) */ 932 911 933 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */912 /* ここに処理本体を記述します #_TEFB_# */ 934 913 in = hton64( in ); 935 914 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); … … 952 931 } /* end if VALID_IDX(idx) */ 953 932 954 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */933 /* ここに処理本体を記述します #_TEFB_# */ 955 934 in = hton128u( in ); 956 935 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); … … 974 953 } /* end if VALID_IDX(idx) */ 975 954 976 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */955 /* ここに処理本体を記述します #_TEFB_# */ 977 956 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 978 957 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR ); … … 996 975 } /* end if VALID_IDX(idx) */ 997 976 998 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */977 /* ここに処理本体を記述します #_TEFB_# */ 999 978 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 1000 979 *out = ntoh16( *out ); … … 1019 998 } /* end if VALID_IDX(idx) */ 1020 999 1021 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1000 /* ここに処理本体を記述します #_TEFB_# */ 1022 1001 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 1023 1002 *out = ntoh32( *out ); … … 1042 1021 } /* end if VALID_IDX(idx) */ 1043 1022 1044 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1023 /* ここに処理本体を記述します #_TEFB_# */ 1045 1024 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 1046 1025 *out = ntoh64( *out ); … … 1065 1044 } /* end if VALID_IDX(idx) */ 1066 1045 1067 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1046 /* ここに処理本体を記述します #_TEFB_# */ 1068 1047 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 1069 1048 *out = ntoh128u( *out ); … … 1087 1066 } 1088 1067 1089 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1068 /* ここに処理本体を記述します #_TEFB_# */ 1090 1069 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); 1091 1070 } … … 1108 1087 } 1109 1088 1110 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1089 /* ここに処理本体を記述します #_TEFB_# */ 1111 1090 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 1112 1091 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR ); … … 1130 1109 } /* end if VALID_IDX(idx) */ 1131 1110 1132 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1111 /* ここに処理本体を記述します #_TEFB_# */ 1133 1112 eTDR_putUInt8(idx, (uint8_t)(in != 0) ); 1134 1113 … … 1154 1133 } /* end if VALID_IDX(idx) */ 1155 1134 1156 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1135 /* ここに処理本体を記述します #_TEFB_# */ 1157 1136 ercd = eTDR_getUInt8(idx, &val ); 1158 1137 if( ercd != E_OK ) … … 1180 1159 } 1181 1160 1182 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1161 /* ここに処理本体を記述します #_TEFB_# */ 1183 1162 val = hton32( *(int32_t*)&in ); 1184 1163 return cChannel_send( (int8_t *)&val, (int16_t)sizeof( val ), VAR_tmo ); … … 1202 1181 } 1203 1182 1204 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1183 /* ここに処理本体を記述します #_TEFB_# */ 1205 1184 val = *(int64_t *)∈ 1206 1185 val = hton64( val ); … … 1226 1205 } 1227 1206 1228 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1207 /* ここに処理本体を記述します #_TEFB_# */ 1229 1208 er_sz = cChannel_receive( (int8_t *)&val, (int16_t)sizeof( val ), VAR_tmo ); 1230 1209 val = ntoh32( val ); … … 1251 1230 } 1252 1231 1253 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1232 /* ここに処理本体を記述します #_TEFB_# */ 1254 1233 er_sz = cChannel_receive( (int8_t *)&val, (int16_t)sizeof( val ), VAR_tmo ); 1255 1234 val = ntoh64( val ); … … 1274 1253 } /* end if VALID_IDX(idx) */ 1275 1254 1276 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1255 /* ここに処理本体を記述します #_TEFB_# */ 1277 1256 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); 1278 1257 } … … 1295 1274 } 1296 1275 1297 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1276 /* ここに処理本体を記述します #_TEFB_# */ 1298 1277 IN = HTONS( IN, sizeof IN ); 1299 1278 return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo ); … … 1317 1296 } 1318 1297 1319 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1298 /* ここに処理本体を記述します #_TEFB_# */ 1320 1299 IN = HTONI( IN, sizeof IN ); 1321 1300 return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo ); … … 1339 1318 } 1340 1319 1341 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1320 /* ここに処理本体を記述します #_TEFB_# */ 1342 1321 IN = HTONL( IN, sizeof IN ); 1343 1322 return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo ); … … 1361 1340 } /* end if VALID_IDX(idx) */ 1362 1341 1363 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1342 /* ここに処理本体を記述します #_TEFB_# */ 1364 1343 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 1365 1344 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR ); … … 1384 1363 } 1385 1364 1386 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1365 /* ここに処理本体を記述します #_TEFB_# */ 1387 1366 er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo ); 1388 1367 *out = NTOHS( OUT, sizeof OUT ); … … 1408 1387 } 1409 1388 1410 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1389 /* ここに処理本体を記述します #_TEFB_# */ 1411 1390 er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo ); 1412 1391 *out = NTOHI( OUT, sizeof OUT ); … … 1432 1411 } 1433 1412 1434 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1413 /* ここに処理本体を記述します #_TEFB_# */ 1435 1414 er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo ); 1436 1415 *out = NTOHL( OUT, sizeof OUT ); … … 1454 1433 } /* end if VALID_IDX(idx) */ 1455 1434 1456 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1435 /* ここに処理本体を記述します #_TEFB_# */ 1457 1436 return cChannel_send( (int8_t *)&in, (int16_t)sizeof( in ), VAR_tmo ); 1458 1437 } … … 1475 1454 } /* end if VALID_IDX(idx) */ 1476 1455 1477 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1456 /* ここに処理本体を記述します #_TEFB_# */ 1478 1457 IN = HTONS( IN, sizeof IN ); 1479 1458 return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo ); … … 1497 1476 } /* end if VALID_IDX(idx) */ 1498 1477 1499 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1478 /* ここに処理本体を記述します #_TEFB_# */ 1500 1479 IN = HTONI( IN, sizeof IN ); 1501 1480 return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo ); … … 1519 1498 } /* end if VALID_IDX(idx) */ 1520 1499 1521 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1500 /* ここに処理本体を記述します #_TEFB_# */ 1522 1501 IN = HTONL( IN, sizeof IN ); 1523 1502 return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo ); … … 1541 1520 } /* end if VALID_IDX(idx) */ 1542 1521 1543 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1522 /* ここに処理本体を記述します #_TEFB_# */ 1544 1523 er_sz = cChannel_receive( (int8_t *)out, (int16_t)sizeof( *out ), VAR_tmo ); 1545 1524 return er_sz < 0 ? er_sz : ( er_sz == sizeof( *out ) ? E_OK : E_BOVR ); … … 1564 1543 } /* end if VALID_IDX(idx) */ 1565 1544 1566 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1545 /* ここに処理本体を記述します #_TEFB_# */ 1567 1546 er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo ); 1568 1547 *out = NTOHS( OUT, sizeof OUT ); … … 1588 1567 } /* end if VALID_IDX(idx) */ 1589 1568 1590 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1569 /* ここに処理本体を記述します #_TEFB_# */ 1591 1570 er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo ); 1592 1571 *out = NTOHI( OUT, sizeof OUT ); … … 1612 1591 } /* end if VALID_IDX(idx) */ 1613 1592 1614 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1593 /* ここに処理本体を記述します #_TEFB_# */ 1615 1594 er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo ); 1616 1595 *out = NTOHL( OUT, sizeof OUT ); … … 1635 1614 } 1636 1615 1637 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1616 /* ここに処理本体を記述します #_TEFB_# */ 1638 1617 IN = HTONIP( IN, sizeof IN ); 1639 1618 return cChannel_send( (int8_t *)&IN, (int16_t)sizeof( IN ), VAR_tmo ); … … 1658 1637 } 1659 1638 1660 /* ããã«å¦çæ¬ä½ãè¨è¿°ãã¾ã#_TEFB_# */1639 /* ここに処理本体を記述します #_TEFB_# */ 1661 1640 er_sz = cChannel_receive( (int8_t *)&OUT, (int16_t)sizeof( OUT ), VAR_tmo ); 1662 1641 *ptr = NTOHIP( OUT, sizeof OUT ); … … 1665 1644 1666 1645 /* #[<POSTAMBLE>]# 1667 * ããããä¸ã«éåãå£é¢æ°ãæ¸ãã¾ã1646 * これより下に非受け口関数を書きます 1668 1647 * #[</POSTAMBLE>]#*/
Note:
See TracChangeset
for help on using the changeset viewer.