source: asp3_tinet_ecnl_rx/trunk/asp3_dcre/tecsgen/tecs/rpc/tTINETChannel.cdl@ 337

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

ASP3版ECNLを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/plain;charset=UTF-8
File size: 4.6 KB
Line 
1/*
2 * TECS Generator
3 * Generator for TOPPERS Embedded Component System
4 *
5 * Copyright (C) 2008-2013 by TOPPERS Project
6 *--
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 * 免責すること.
29 *
30 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
31 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
32 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
33 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
34 * の責任を負わない.
35 *
36 * $Id$
37 */
38
39import_C( "netinet/in.h" );
40
41const uint16_t TINETIPV4_DEFAULT_PORT_NO = 8931;
42
43signature sTINETClientOpenerIPV4 {
44 ER open( [in]const T_IPV4EP *clientAddr, [in]TMO tmo );
45 ER close( [in]TMO tmo );
46};
47
48signature sIPV4AcceptCheck {
49 bool_t check( [in]const T_IPV4EP *clientAddr );
50};
51
52celltype tTINETClient {
53 entry sChannel eC0;
54 entry sTINETClientOpenerIPV4 eOpener;
55 attr {
56 ID cep_id = C_EXP( "$id$_CEPID" );
57 [omit]
58 uint16_t recv_buf_size = C_EXP( "TCP_MSS" );
59 [omit]
60 uint16_t send_buf_size = C_EXP( "TCP_MSS" );
61 };
62 FACTORY {
63 write( "$ct$_factory.h", "#include \"netinet/tcp.h\"\n" );
64 write( "$ct$_tecsgen.h", "#include \"tinet_cfg.h\"\n" );
65 write( "tinet_tecsgen.cfg", "#include \"$ct$_factory.h\"\n" );
66 };
67 factory {
68 write( "$ct$_factory.h", "int8_t $id$_recv_buf[%s];\n", recv_buf_size );
69 write( "$ct$_factory.h", "int8_t $id$_send_buf[%s];\n", send_buf_size );
70 write( "tinet_tecsgen.cfg", "TCP_CRE_CEP ($id$_CEPID, {\n"
71 " 0,\n"
72 " $id$_send_buf,\n"
73 " %s,\n"
74 " $id$_recv_buf,\n"
75 " %s,\n"
76 " NULL \n"
77 " } );\n",
78 send_buf_size, recv_buf_size );
79 };
80};
81
82celltype tTINETServer {
83
84 entry sChannel eC1;
85 entry sServerChannelOpener eOpener;
86 [optional]
87 call sIPV4AcceptCheck cCheck;
88 attr {
89 ID cep_id = C_EXP( "$id$_CEPID" );
90 ID rep_id = C_EXP( "$id$_REPID" );
91 [omit]
92 int16_t portNo = TINETIPV4_DEFAULT_PORT_NO;
93 [omit]
94 uint16_t recv_buf_size = C_EXP( "TCP_MSS" );
95 [omit]
96 uint16_t send_buf_size = C_EXP( "TCP_MSS" );
97 };
98 FACTORY {
99 write( "$ct$_factory.h", "#include \"netinet/tcp.h\"\n" );
100 write( "$ct$_tecsgen.h", "#include \"tinet_cfg.h\"\n" );
101 write( "tinet_tecsgen.cfg", "#include \"$ct$_factory.h\"\n" );
102 };
103 factory {
104 write( "$ct$_factory.h", "int8_t $id$_recv_buf[%s];\n", recv_buf_size );
105 write( "$ct$_factory.h", "int8_t $id$_send_buf[%s];\n", send_buf_size );
106 write( "tinet_tecsgen.cfg", "TCP_CRE_REP ($id$_REPID, { 0, { IPV4_ADDRANY, %s } } );\n", portNo );
107 write( "tinet_tecsgen.cfg", "TCP_CRE_CEP ($id$_CEPID, {0, $id$_send_buf, %s, $id$_recv_buf, %s, NULL } );\n",
108 send_buf_size, recv_buf_size );
109 };
110};
Note: See TracBrowser for help on using the repository browser.