source: EcnlProtoTool/trunk/asp3_dcre/tinet/tinet.trb@ 429

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

ASP3, TINET, mbed を更新

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-ruby;charset=UTF-8
File size: 26.4 KB
Line 
1# ======================================================================
2#
3# TINET (TCP/IP Protocol Stack)
4#
5# Copyright (C) 2001-2007 by Dep. of Computer Science and Engineering
6# Tomakomai National College of Technology, JAPAN
7#
8# 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
9# ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
10# 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
11# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
12# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
13# スコード中に含まれていること.
14# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
15# 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
16# 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
17# の無保証規定を掲載すること.
18# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
19# 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
20# と.
21# (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
22# 作権表示,この利用条件および下記の無保証規定を掲載すること.
23# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
24# 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
25# また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
26# 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
27# 免責すること.
28#
29# 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
30# よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
31# に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
32# アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
33# の責任を負わない.
34#
35# @(#) $Id$
36#
37# =====================================================================
38
39# =====================================================================
40# tinet_cfg.h の生成
41# =====================================================================
42
43$tinetCfgH = GenFile.new("tinet_cfg.h")
44$tinetCfgH.add("/* tinet_cfg.h */")
45$tinetCfgH.add("#ifndef _TINET_CFG_H_")
46$tinetCfgH.add("#define _TINET_CFG_H_")
47$tinetCfgH.add()
48
49$tinetCfgH.add("#define TNUM_TCP6_REPID #{$cfgData[:TCP6_CRE_REP].size + $cfgData[:VRID_TCP6_REP].size}")
50$tinetCfgH.add("#define TNUM_TCP4_REPID #{$cfgData[:TCP_CRE_REP].size + $cfgData[:VRID_TCP_REP].size}")
51$tinetCfgH.add("#define TNUM_TCP_REPID #{$cfgData[:TCP6_CRE_REP].size + $cfgData[:VRID_TCP6_REP].size + $cfgData[:TCP_CRE_REP].size + $cfgData[:VRID_TCP_REP].size}")
52$tinetCfgH.add()
53
54$tinetCfgH.add("#define TNUM_TCP6_CEPID #{$cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}")
55$tinetCfgH.add("#define TNUM_TCP4_CEPID #{$cfgData[:TCP_CRE_CEP].size + $cfgData[:VRID_TCP_CEP].size}")
56$tinetCfgH.add("#define TNUM_TCP_CEPID #{$cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size + $cfgData[:TCP_CRE_CEP].size + $cfgData[:VRID_TCP_CEP].size}")
57$tinetCfgH.add()
58
59$tinetCfgH.add("#define TNUM_UDP6_CEPID #{$cfgData[:UDP6_CRE_CEP].size + $cfgData[:VRID_UDP6_CEP].size}")
60$tinetCfgH.add("#define TNUM_UDP4_CEPID #{$cfgData[:UDP_CRE_CEP].size + $cfgData[:VRID_UDP_CEP].size}")
61$tinetCfgH.add("#define TNUM_UDP_CEPID #{$cfgData[:UDP6_CRE_CEP].size + $cfgData[:VRID_UDP6_CEP].size + $cfgData[:UDP_CRE_CEP].size + $cfgData[:VRID_UDP_CEP].size}")
62$tinetCfgH.add()
63
64$cfgData[:TCP6_CRE_REP].each do |key, params|
65 $tinetCfgH.add("#define #{params[:tcp6_repid]} #{params[:tcp6_repid].val}")
66end
67$cfgData[:VRID_TCP6_REP].each do |key, params|
68 $tinetCfgH.add("#define #{params[:vrid_tcp6_repid]} #{params[:vrid_tcp6_repid].val + $cfgData[:TCP6_CRE_REP].size}")
69end
70$cfgData[:TCP_CRE_REP].each do |key, params|
71 $tinetCfgH.add("#define #{params[:tcp4_repid]} #{params[:tcp4_repid].val + $cfgData[:TCP6_CRE_REP].size + $cfgData[:VRID_TCP6_REP].size}")
72end
73$cfgData[:VRID_TCP_REP].each do |key, params|
74 $tinetCfgH.add("#define #{params[:vrid_tcp4_repid]} #{params[:vrid_tcp4_repid].val + $cfgData[:TCP_CRE_REP].size + $cfgData[:TCP6_CRE_REP].size + $cfgData[:VRID_TCP6_REP].size}")
75end
76$tinetCfgH.add()
77
78$cfgData[:TCP6_CRE_CEP].each do |key, params|
79 $tinetCfgH.add("#define #{params[:tcp6_cepid]} #{params[:tcp6_cepid].val}")
80end
81$cfgData[:VRID_TCP6_CEP].each do |key, params|
82 $tinetCfgH.add("#define #{params[:vrid_tcp6_cepid]} #{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}")
83end
84$cfgData[:TCP_CRE_CEP].each do |key, params|
85 $tinetCfgH.add("#define #{params[:tcp4_cepid]} #{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}")
86end
87$cfgData[:VRID_TCP_CEP].each do |key, params|
88 $tinetCfgH.add("#define #{params[:vrid_tcp4_cepid]} #{params[:vrid_tcp4_cepid].val + $cfgData[:TCP_CRE_CEP].size + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}")
89end
90$tinetCfgH.add()
91
92$cfgData[:UDP6_CRE_CEP].each do |key, params|
93 $tinetCfgH.add("#define #{params[:udp6_cepid]} #{params[:udp6_cepid].val}")
94end
95$cfgData[:VRID_UDP6_CEP].each do |key, params|
96 $tinetCfgH.add("#define #{params[:vrid_udp6_cepid]} #{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size}")
97end
98$cfgData[:UDP_CRE_CEP].each do |key, params|
99 $tinetCfgH.add("#define #{params[:udp4_cepid]} #{params[:udp4_cepid].val + $cfgData[:UDP6_CRE_CEP].size + $cfgData[:VRID_UDP6_CEP].size}")
100end
101$cfgData[:VRID_UDP_CEP].each do |key, params|
102 $tinetCfgH.add("#define #{params[:vrid_udp4_cepid]} #{params[:vrid_udp4_cepid].val + $cfgData[:UDP_CRE_CEP].size + $cfgData[:UDP6_CRE_CEP].size + $cfgData[:VRID_UDP6_CEP].size}")
103end
104$tinetCfgH.add()
105$tinetCfgH.add("#endif /* _TINET_CFG_H_ */")
106
107# =====================================================================
108# tinet_cfg.c の生成
109# =====================================================================
110
111$tinetCfgC = GenFile.new("tinet_cfg.c")
112$tinetCfgC.add(<<EOS)
113/* tinet_cfg.c */
114
115#include <kernel.h>
116#include <sil.h>
117#include "kernel_cfg.h"
118#include "tinet_cfg.h"
119#include <tinet_defs.h>
120#include <tinet_config.h>
121#include <net/if.h>
122#include <net/if_ppp.h>
123#include <net/if_loop.h>
124#include <net/ethernet.h>
125#include <net/net.h>
126#include <net/net_endian.h>
127#include <net/net_buf.h>
128#include <netinet/in.h>
129#include <netinet/in_var.h>
130#include <netinet/in_itron.h>
131#include <netinet/ip.h>
132#include <netinet/tcp.h>
133#include <netinet/tcp_var.h>
134#include <netinet/udp_var.h>
135
136EOS
137#
138# インクルードディレクティブ(#include)
139#
140$tinetCfgC.add()
141$tinetCfgC.add("/*")
142$tinetCfgC.add(" * Include Directives (#include)")
143$tinetCfgC.add(" */")
144$tinetCfgC.add()
145GenerateIncludes($tinetCfgC)
146
147$tinetCfgC.add()
148$tinetCfgC.add("const ID tmax_tcp_repid = (TMIN_TCP_REPID + TNUM_TCP6_REPID + TNUM_TCP4_REPID - 1);")
149
150$tinetCfgC.add()
151$tinetCfgC.add("#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)")
152$tinetCfgC.add("const ID tmax_tcp6_repid = (TMIN_TCP6_REPID + TNUM_TCP6_REPID - 1);")
153$tinetCfgC.add("const ID tmax_tcp4_repid = (TMIN_TCP4_REPID + TNUM_TCP4_REPID - 1);")
154$tinetCfgC.add("#endif")
155
156$tinetCfgC.add()
157$tinetCfgC.add("const ID tmax_tcp_cepid = (TMIN_TCP_CEPID + TNUM_TCP6_CEPID + TNUM_TCP4_CEPID - 1);")
158
159$tinetCfgC.add()
160$tinetCfgC.add("#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)")
161$tinetCfgC.add("const ID tmax_tcp6_cepid = (TMIN_TCP_CEPID + TNUM_TCP6_CEPID - 1);")
162$tinetCfgC.add("const ID tmax_tcp4_cepid = (TMIN_TCP_CEPID + TNUM_TCP4_CEPID - 1);")
163$tinetCfgC.add("#endif")
164
165$tinetCfgC.add()
166$tinetCfgC.add("const ID tmax_udp_cepid = (TMIN_UDP_CEPID + TNUM_UDP6_CEPID + TNUM_UDP4_CEPID - 1);")
167
168$tinetCfgC.add()
169$tinetCfgC.add("#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)")
170$tinetCfgC.add("const ID tmax_udp6_cepid = (TMIN_UDP6_CEPID + TNUM_UDP6_CEPID - 1);")
171$tinetCfgC.add("const ID tmax_udp4_cepid = (TMIN_UDP4_CEPID + TNUM_UDP4_CEPID - 1);")
172$tinetCfgC.add("#endif")
173
174# // TCP (IPv6) 受付口
175$sem_tcp_rep_lock_id = 0
176if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0
177 $tinetCfgC.add()
178 $tinetCfgC.add("T_TCP6_REP tcp6_rep[TNUM_TCP6_REPID] = {")
179 $cfgData[:TCP6_CRE_REP].each do |key, params|
180 $tinetCfgC.add("\t{")
181 $tinetCfgC.add("\t\t#{params[:tcp6_repatr]},")
182 $tinetCfgC.add("\t\t{ #{params[:ipv6addr]}, #{params[:portno]} },")
183 $tinetCfgC.add("#if defined(TCP_CFG_EXTENTIONS)")
184 $tinetCfgC.add("\t\tTCP_REP_FLG_VALID,")
185 $tinetCfgC.add("\t\tSEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id},")
186 $tinetCfgC.add("#endif")
187 $tinetCfgC.add("\t\t},")
188 $sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
189 end
190 $cfgData[:VRID_TCP6_REP].each do |key, params|
191 $tinetCfgC.add("\t{")
192 $tinetCfgC.add("\t\t0,")
193 $tinetCfgC.add("\t\t{ IPV6_ADDRANY, TCP_PORTANY },")
194 $tinetCfgC.add("#if defined(TCP_CFG_EXTENTIONS)")
195 $tinetCfgC.add("\t\tTCP_REP_FLG_DYNAMIC,")
196 $tinetCfgC.add("\t\tSEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id},")
197 $tinetCfgC.add("#endif")
198 $tinetCfgC.add("\t\t},")
199 $sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
200 end
201 $tinetCfgC.add("\t};")
202end
203
204# // TCP (IPv4) 受付口
205if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP_REP].size > 0
206 $tinetCfgC.add()
207 $tinetCfgC.add("T_TCP4_REP tcp4_rep[TNUM_TCP4_REPID] = {")
208 $cfgData[:TCP_CRE_REP].each do |key, params|
209 $tinetCfgC.add("\t{")
210 $tinetCfgC.add("\t\t#{params[:tcp4_repatr]},")
211 $tinetCfgC.add("\t\t{ #{params[:ipv4addr]}, #{params[:portno]} },")
212 $tinetCfgC.add("#if defined(TCP_CFG_EXTENTIONS)")
213 $tinetCfgC.add("\t\tTCP_REP_FLG_VALID,")
214 $tinetCfgC.add("\t\tSEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id},")
215 $tinetCfgC.add("#endif")
216 $tinetCfgC.add("\t\t},")
217 $sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
218 end
219 $cfgData[:VRID_TCP_REP].each do |key, params|
220 $tinetCfgC.add("\t{")
221 $tinetCfgC.add("\t\t0,")
222 $tinetCfgC.add("\t\t{ IPV4_ADDRANY, TCP_PORTANY },")
223 $tinetCfgC.add("#if defined(TCP_CFG_EXTENTIONS)")
224 $tinetCfgC.add("\t\tTCP_REP_FLG_DYNAMIC,")
225 $tinetCfgC.add("\t\tSEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id},")
226 $tinetCfgC.add("#endif")
227 $tinetCfgC.add("\t\t},")
228 $sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
229 end
230 $tinetCfgC.add("\t};")
231end
232
233# // TCP 通信端点
234if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0 || $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP_CEP].size > 0
235 $tinetCfgC.add()
236 $tinetCfgC.add("T_TCP_CEP tcp_cep[TNUM_TCP6_CEPID + TNUM_TCP4_CEPID] = {")
237 $cfgData[:TCP6_CRE_CEP].each do |key, params|
238 $tinetCfgC.add("\t{")
239 $tinetCfgC.add("\t\t#{params[:tcp6_cepatr]},")
240 $tinetCfgC.add("\t\t(void*)#{params[:sbuf]},")
241 $tinetCfgC.add("\t\t#{params[:sbufsz]},")
242 $tinetCfgC.add("\t\t(void*)#{params[:rbuf]},")
243 $tinetCfgC.add("\t\t#{params[:rbufsz]},")
244 $tinetCfgC.add("\t\t(t_tcp_callback)(FP)#{params[:callback]},")
245 $tinetCfgC.add("\t\tTCP_CEP_FLG_VALID,")
246 $tinetCfgC.add("\t\tSEM_TCP_CEP_LOCK#{params[:tcp6_cepid].val},")
247 $tinetCfgC.add("\t\tFLG_TCP_CEP_EST#{params[:tcp6_cepid].val},")
248 $tinetCfgC.add("\t\tFLG_TCP_CEP_SND#{params[:tcp6_cepid].val},")
249 $tinetCfgC.add("\t\tFLG_TCP_CEP_RCV#{params[:tcp6_cepid].val},")
250 $tinetCfgC.add("\t\t},")
251 end
252 $cfgData[:VRID_TCP6_CEP].each do |key, params|
253 $tinetCfgC.add("\t{")
254 $tinetCfgC.add("\t\t0,")
255 $tinetCfgC.add("\t\t(void*)NULL,")
256 $tinetCfgC.add("\t\t0,")
257 $tinetCfgC.add("\t\t(void*)NULL,")
258 $tinetCfgC.add("\t\t0,")
259 $tinetCfgC.add("\t\t(t_tcp_callback)(FP)NULL,")
260 $tinetCfgC.add("\t\tTCP_CEP_FLG_DYNAMIC,")
261 $tinetCfgC.add("\t\tSEM_TCP_CEP_LOCK#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size},")
262 $tinetCfgC.add("\t\tFLG_TCP_CEP_EST#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size},")
263 $tinetCfgC.add("\t\tFLG_TCP_CEP_SND#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size},")
264 $tinetCfgC.add("\t\tFLG_TCP_CEP_RCV#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size},")
265 $tinetCfgC.add("\t\t},")
266 end
267 $cfgData[:TCP_CRE_CEP].each do |key, params|
268 $tinetCfgC.add("\t{")
269 $tinetCfgC.add("\t\t#{params[:tcp4_cepatr]},")
270 $tinetCfgC.add("\t\t(void*)#{params[:sbuf]},")
271 $tinetCfgC.add("\t\t#{params[:sbufsz]},")
272 $tinetCfgC.add("\t\t(void*)#{params[:rbuf]},")
273 $tinetCfgC.add("\t\t#{params[:rbufsz]},")
274 $tinetCfgC.add("\t\t(t_tcp_callback)(FP)#{params[:callback]},")
275 $tinetCfgC.add("\t\tTCP_CEP_FLG_VALID|TCP_CEP_FLG_IPV4,")
276 $tinetCfgC.add("\t\tSEM_TCP_CEP_LOCK#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
277 $tinetCfgC.add("\t\tFLG_TCP_CEP_EST#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
278 $tinetCfgC.add("\t\tFLG_TCP_CEP_SND#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
279 $tinetCfgC.add("\t\tFLG_TCP_CEP_RCV#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
280 $tinetCfgC.add("\t\t},")
281 end
282 $cfgData[:VRID_TCP_CEP].each do |key, params|
283 $tinetCfgC.add("\t{")
284 $tinetCfgC.add("\t\t0,")
285 $tinetCfgC.add("\t\t(void*)NULL,")
286 $tinetCfgC.add("\t\t0,")
287 $tinetCfgC.add("\t\t(void*)NULL,")
288 $tinetCfgC.add("\t\t0,")
289 $tinetCfgC.add("\t\t(t_tcp_callback)(FP)NULL,")
290 $tinetCfgC.add("\t\tTCP_CEP_FLG_DYNAMIC|TCP_CEP_FLG_IPV4,")
291 $tinetCfgC.add("\t\tSEM_TCP_CEP_LOCK#{params[:vrid_tcp4_cepid].val + $cfgData[:TCP_CRE_CEP].size + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
292 $tinetCfgC.add("\t\tFLG_TCP_CEP_EST#{params[:vrid_tcp4_cepid].val + $cfgData[:TCP_CRE_CEP].size + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
293 $tinetCfgC.add("\t\tFLG_TCP_CEP_SND#{params[:vrid_tcp4_cepid].val + $cfgData[:TCP_CRE_CEP].size + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
294 $tinetCfgC.add("\t\tFLG_TCP_CEP_RCV#{params[:vrid_tcp4_cepid].val + $cfgData[:TCP_CRE_CEP].size + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
295 $tinetCfgC.add("\t\t},")
296 end
297 $tinetCfgC.add("\t};")
298end
299
300# // UDP (IPv6) 通信端点
301if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0
302 $tinetCfgC.add()
303 $tinetCfgC.add("T_UDP6_CEP udp6_cep[TNUM_UDP6_CEPID] = {")
304 $cfgData[:UDP6_CRE_CEP].each do |key, params|
305 $tinetCfgC.add("\t{")
306 $tinetCfgC.add("\t\t#{params[:udp6_cepatr]},")
307 $tinetCfgC.add("\t\t{ #{params[:ipv6addr]}, #{params[:portno]} },")
308 $tinetCfgC.add("\t\t(t_udp_callback)(FP)#{params[:callback]},")
309 $tinetCfgC.add("\t\tUDP_CEP_FLG_VALID,")
310 $tinetCfgC.add("\t\tSEM_UDP6_CEP_LOCK#{params[:udp6_cepid].val},")
311 $tinetCfgC.add("\t\tTA_NULL,")
312 $tinetCfgC.add("\t\tTA_NULL,")
313 $tinetCfgC.add("\t\tDTQ_UDP6_RCVQ#{params[:udp6_cepid].val},")
314 $tinetCfgC.add("\t\t},")
315 end
316 $cfgData[:VRID_UDP6_CEP].each do |key, params|
317 $tinetCfgC.add("\t{")
318 $tinetCfgC.add("\t\t0,")
319 $tinetCfgC.add("\t\t{ IPV6_ADDRANY, UDP_PORTANY },")
320 $tinetCfgC.add("\t\t(t_udp_callback)(FP)NULL,")
321 $tinetCfgC.add("\t\tUDP_CEP_FLG_DYNAMIC,")
322 $tinetCfgC.add("\t\tSEM_UDP6_CEP_LOCK#{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size},")
323 $tinetCfgC.add("\t\tTA_NULL,")
324 $tinetCfgC.add("\t\tTA_NULL,")
325 $tinetCfgC.add("\t\tDTQ_UDP6_RCVQ#{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size},")
326 $tinetCfgC.add("\t\t},")
327 end
328 $tinetCfgC.add("\t};")
329end
330
331# // UDP (IPv4) 通信端点
332if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP_CEP].size > 0
333 $tinetCfgC.add()
334 $tinetCfgC.add("T_UDP4_CEP udp4_cep[TNUM_UDP4_CEPID] = {")
335 $cfgData[:UDP_CRE_CEP].each do |key, params|
336 $tinetCfgC.add("\t{")
337 $tinetCfgC.add("\t\t#{params[:udp4_cepatr]},")
338 $tinetCfgC.add("\t\t{ #{params[:ipv4addr]}, #{params[:portno]} },")
339 $tinetCfgC.add("\t\t(t_udp_callback)(FP)#{params[:callback]},")
340 $tinetCfgC.add("\t\tUDP_CEP_FLG_VALID,")
341 $tinetCfgC.add("\t\tSEM_UDP4_CEP_LOCK#{params[:udp4_cepid].val},")
342 $tinetCfgC.add("\t\tTA_NULL,")
343 $tinetCfgC.add("\t\tTA_NULL,")
344 $tinetCfgC.add("\t\tDTQ_UDP4_RCVQ#{params[:udp4_cepid].val},")
345 $tinetCfgC.add("\t\t},")
346 end
347 $cfgData[:VRID_UDP_CEP].each do |key, params|
348 $tinetCfgC.add("\t{")
349 $tinetCfgC.add("\t\t0,")
350 $tinetCfgC.add("\t\t{ IPV4_ADDRANY, UDP_PORTANY },")
351 $tinetCfgC.add("\t\t(t_udp_callback)(FP)NULL,")
352 $tinetCfgC.add("\t\tUDP_CEP_FLG_DYNAMIC,")
353 $tinetCfgC.add("\t\tSEM_UDP4_CEP_LOCK#{params[:vrid_udp4_cepid].val + $cfgData[:UDP_CRE_CEP].size},")
354 $tinetCfgC.add("\t\tTA_NULL,")
355 $tinetCfgC.add("\t\tTA_NULL,")
356 $tinetCfgC.add("\t\tDTQ_UDP4_RCVQ#{params[:vrid_udp4_cepid].val + $cfgData[:UDP_CRE_CEP].size},")
357 $tinetCfgC.add("\t\t},")
358 end
359 $tinetCfgC.add("\t};")
360end
361
362# =====================================================================
363# tinet_kern.cfg の生成
364# =====================================================================
365
366# // TCP (IPv6) 受付口
367$sem_tcp_rep_lock_id = 0
368if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0
369 $cfgData[:TCP6_CRE_REP].each do |key, params|
370 cfgInfo = { APINAME: "CRE_SEM" }
371 cfgInfo["semid"] = "SEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id}"
372 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
373 cfgInfo["isemcnt"] = 1
374 cfgInfo["maxsem"] = 1
375 $cfgFileInfo.push(cfgInfo)
376
377 $sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
378 end
379 $cfgData[:VRID_TCP6_REP].each do |key, params|
380 cfgInfo = { APINAME: "CRE_SEM" }
381 cfgInfo["semid"] = "SEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id}"
382 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
383 cfgInfo["isemcnt"] = 1
384 cfgInfo["maxsem"] = 1
385 $cfgFileInfo.push(cfgInfo)
386
387 $sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
388 end
389end
390
391# // TCP (IPv4) 受付口
392if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP_REP].size > 0
393 $cfgData[:TCP_CRE_REP].each do |key, params|
394 cfgInfo = { APINAME: "CRE_SEM" }
395 cfgInfo["semid"] = "SEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id}"
396 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
397 cfgInfo["isemcnt"] = 1
398 cfgInfo["maxsem"] = 1
399 $cfgFileInfo.push(cfgInfo)
400
401 $sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
402 end
403 $cfgData[:VRID_TCP_REP].each do |key, params|
404 cfgInfo = { APINAME: "CRE_SEM" }
405 cfgInfo["semid"] = "SEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id}"
406 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
407 cfgInfo["isemcnt"] = 1
408 cfgInfo["maxsem"] = 1
409 $cfgFileInfo.push(cfgInfo)
410
411 $sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
412 end
413end
414
415# // TCP (IPv6) 通信端点
416if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0
417 $cfgData[:TCP6_CRE_CEP].each do |key, params|
418 cfgInfo = { APINAME: "CRE_SEM" }
419 cfgInfo["semid"] = "SEM_TCP_CEP_LOCK#{params[:tcp6_cepid].val}"
420 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
421 cfgInfo["isemcnt"] = 1
422 cfgInfo["maxsem"] = 1
423 $cfgFileInfo.push(cfgInfo)
424
425 cfgInfo = { APINAME: "CRE_FLG" }
426 cfgInfo["flgid"] = "FLG_TCP_CEP_EST#{params[:tcp6_cepid].val}"
427 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
428 cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_CLOSED, "TCP_CEP_EVT_CLOSED")
429 $cfgFileInfo.push(cfgInfo)
430
431 cfgInfo = { APINAME: "CRE_FLG" }
432 cfgInfo["flgid"] = "FLG_TCP_CEP_SND#{params[:tcp6_cepid].val}"
433 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
434 cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_SWBUF_READY, "TCP_CEP_EVT_SWBUF_READY")
435 $cfgFileInfo.push(cfgInfo)
436
437 cfgInfo = { APINAME: "CRE_FLG" }
438 cfgInfo["flgid"] = "FLG_TCP_CEP_RCV#{params[:tcp6_cepid].val}"
439 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
440 cfgInfo["iflgptn"] = 0
441 $cfgFileInfo.push(cfgInfo)
442 end
443 $cfgData[:VRID_TCP6_CEP].each do |key, params|
444 cfgInfo = { APINAME: "CRE_SEM" }
445 cfgInfo["semid"] = "SEM_TCP_CEP_LOCK#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}"
446 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
447 cfgInfo["isemcnt"] = 1
448 cfgInfo["maxsem"] = 1
449 $cfgFileInfo.push(cfgInfo)
450
451 cfgInfo = { APINAME: "CRE_FLG" }
452 cfgInfo["flgid"] = "FLG_TCP_CEP_EST#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}"
453 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
454 cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_CLOSED, "TCP_CEP_EVT_CLOSED")
455 $cfgFileInfo.push(cfgInfo)
456
457 cfgInfo = { APINAME: "CRE_FLG" }
458 cfgInfo["flgid"] = "FLG_TCP_CEP_SND#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}"
459 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
460 cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_SWBUF_READY, "TCP_CEP_EVT_SWBUF_READY")
461 $cfgFileInfo.push(cfgInfo)
462
463 cfgInfo = { APINAME: "CRE_FLG" }
464 cfgInfo["flgid"] = "FLG_TCP_CEP_RCV#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}"
465 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
466 cfgInfo["iflgptn"] = 0
467 $cfgFileInfo.push(cfgInfo)
468 end
469end
470
471# // TCP (IPv4) 通信端点
472if $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP_CEP].size > 0
473 $cfgData[:TCP_CRE_CEP].each do |key, params|
474 cfgInfo = { APINAME: "CRE_SEM" }
475 cfgInfo["semid"] = "SEM_TCP_CEP_LOCK#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
476 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
477 cfgInfo["isemcnt"] = 1
478 cfgInfo["maxsem"] = 1
479 $cfgFileInfo.push(cfgInfo)
480
481 cfgInfo = { APINAME: "CRE_FLG" }
482 cfgInfo["flgid"] = "FLG_TCP_CEP_EST#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
483 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
484 cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_CLOSED, "TCP_CEP_EVT_CLOSED")
485 $cfgFileInfo.push(cfgInfo)
486
487 cfgInfo = { APINAME: "CRE_FLG" }
488 cfgInfo["flgid"] = "FLG_TCP_CEP_SND#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
489 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
490 cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_SWBUF_READY, "TCP_CEP_EVT_SWBUF_READY")
491 $cfgFileInfo.push(cfgInfo)
492
493 cfgInfo = { APINAME: "CRE_FLG" }
494 cfgInfo["flgid"] = "FLG_TCP_CEP_RCV#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
495 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
496 cfgInfo["iflgptn"] = 0
497 $cfgFileInfo.push(cfgInfo)
498 end
499 $cfgData[:VRID_TCP_CEP].each do |key, params|
500 cfgInfo = { APINAME: "CRE_SEM" }
501 cfgInfo["semid"] = "SEM_TCP_CEP_LOCK#{params[:vrid_tcp4_cepid].val + $cfgData[:TCP_CRE_CEP].size + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
502 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
503 cfgInfo["isemcnt"] = 1
504 cfgInfo["maxsem"] = 1
505 $cfgFileInfo.push(cfgInfo)
506
507 cfgInfo = { APINAME: "CRE_FLG" }
508 cfgInfo["flgid"] = "FLG_TCP_CEP_EST#{params[:vrid_tcp4_cepid].val + $cfgData[:TCP_CRE_CEP].size + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
509 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
510 cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_CLOSED, "TCP_CEP_EVT_CLOSED")
511 $cfgFileInfo.push(cfgInfo)
512
513 cfgInfo = { APINAME: "CRE_FLG" }
514 cfgInfo["flgid"] = "FLG_TCP_CEP_SND#{params[:vrid_tcp4_cepid].val + $cfgData[:TCP_CRE_CEP].size + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
515 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
516 cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_SWBUF_READY, "TCP_CEP_EVT_SWBUF_READY")
517 $cfgFileInfo.push(cfgInfo)
518
519 cfgInfo = { APINAME: "CRE_FLG" }
520 cfgInfo["flgid"] = "FLG_TCP_CEP_RCV#{params[:vrid_tcp4_cepid].val + $cfgData[:TCP_CRE_CEP].size + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
521 cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
522 cfgInfo["iflgptn"] = 0
523 $cfgFileInfo.push(cfgInfo)
524 end
525end
526
527# // UDP (IPv6) 通信端点
528if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0
529 $cfgData[:UDP6_CRE_CEP].each do |key, params|
530 cfgInfo = { APINAME: "CRE_SEM" }
531 cfgInfo["semid"] = "SEM_UDP6_CEP_LOCK#{params[:udp6_cepid].val}"
532 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
533 cfgInfo["isemcnt"] = 1
534 cfgInfo["maxsem"] = 1
535 $cfgFileInfo.push(cfgInfo)
536
537 cfgInfo = { APINAME: "CRE_DTQ" }
538 cfgInfo["dtqid"] = "DTQ_UDP6_RCVQ#{params[:udp6_cepid].val}"
539 cfgInfo["dtqatr"] = NumStr.new($TA_TFIFO, "TA_TFIFO")
540 cfgInfo["dtqcnt"] = NumStr.new($NUM_DTQ_UDP_RCVQ, "NUM_DTQ_UDP_RCVQ")
541 #cfgInfo["dtqmb"] = NumStr.new($NULL, "NULL")
542 $cfgFileInfo.push(cfgInfo)
543 end
544 $cfgData[:VRID_UDP6_CEP].each do |key, params|
545 cfgInfo = { APINAME: "CRE_SEM" }
546 cfgInfo["semid"] = "SEM_UDP6_CEP_LOCK#{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size}"
547 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
548 cfgInfo["isemcnt"] = 1
549 cfgInfo["maxsem"] = 1
550 $cfgFileInfo.push(cfgInfo)
551
552 cfgInfo = { APINAME: "CRE_DTQ" }
553 cfgInfo["dtqid"] = "DTQ_UDP6_RCVQ#{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size}"
554 cfgInfo["dtqatr"] = NumStr.new($TA_TFIFO, "TA_TFIFO")
555 cfgInfo["dtqcnt"] = NumStr.new($NUM_DTQ_UDP_RCVQ, "NUM_DTQ_UDP_RCVQ")
556 #cfgInfo["dtqmb"] = NumStr.new($NULL, "NULL")
557 $cfgFileInfo.push(cfgInfo)
558 end
559end
560
561# // UDP (IPv4) 通信端点
562if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP_CEP].size > 0
563 $cfgData[:UDP_CRE_CEP].each do |key, params|
564 cfgInfo = { APINAME: "CRE_SEM" }
565 cfgInfo["semid"] = "SEM_UDP4_CEP_LOCK#{params[:udp4_cepid].val}"
566 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
567 cfgInfo["isemcnt"] = 1
568 cfgInfo["maxsem"] = 1
569 $cfgFileInfo.push(cfgInfo)
570
571 cfgInfo = { APINAME: "CRE_DTQ" }
572 cfgInfo["dtqid"] = "DTQ_UDP4_RCVQ#{params[:udp4_cepid].val}"
573 cfgInfo["dtqatr"] = NumStr.new($TA_TFIFO, "TA_TFIFO")
574 cfgInfo["dtqcnt"] = NumStr.new($NUM_DTQ_UDP_RCVQ, "NUM_DTQ_UDP_RCVQ")
575 #cfgInfo["dtqmb"] = NumStr.new($NULL, "NULL")
576 $cfgFileInfo.push(cfgInfo)
577 end
578 $cfgData[:VRID_UDP_CEP].each do |key, params|
579 cfgInfo = { APINAME: "CRE_SEM" }
580 cfgInfo["semid"] = "SEM_UDP4_CEP_LOCK#{params[:vrid_udp4_cepid].val + $cfgData[:UDP_CRE_CEP].size}"
581 cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
582 cfgInfo["isemcnt"] = 1
583 cfgInfo["maxsem"] = 1
584 $cfgFileInfo.push(cfgInfo)
585
586 cfgInfo = { APINAME: "CRE_DTQ" }
587 cfgInfo["dtqid"] = "DTQ_UDP4_RCVQ#{params[:vrid_udp4_cepid].val + $cfgData[:UDP_CRE_CEP].size}"
588 cfgInfo["dtqatr"] = NumStr.new($TA_TFIFO, "TA_TFIFO")
589 cfgInfo["dtqcnt"] = NumStr.new($NUM_DTQ_UDP_RCVQ, "NUM_DTQ_UDP_RCVQ")
590 #cfgInfo["dtqmb"] = NumStr.new($NULL, "NULL")
591 $cfgFileInfo.push(cfgInfo)
592 end
593end
Note: See TracBrowser for help on using the repository browser.